collaborator-pass: prescribe per concept with an owners-that-exist list #1094
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1094
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
prescribe-briefhands the prescriber one finding.It asks who should own that finding's attributes.
The prescriber cannot see that
Projectalready ownsroot,lib_root, andtest_root.It also cannot see that three sibling clumps share the same sites.
In run 20261017T165147Z, the loop would have filed three tickets for one refactor.
It would never have named
Projectas the owner.The measure is fine.
The brief lacks the perspective.
Reproduce
n/a: design ticket
Approach
Measure stays whole-tree.
Prescription takes one top-level concept at a time.
Concepts are taken in order of summed finding score per concept.
The brief for a concept carries every finding whose sites sit in that concept, side by side.
It also carries an
owners_that_existlist.That list holds Project and its attributes, the concept's own objects, and the shared objects the sites already receive as parameters.
The prescriber answers two questions.
Which findings vanish if the sites take an existing owner?
Which findings need a new owner?
The recipe may name several findings as subjects.
record-ruling writes one row per named subject, so skip logic still keys on exact subjects.
This replaces the open sub-clump grouping question.
Required work:
prescribe-brief --concept NAMEbuilds the per-concept brief. check: present--conceptinplugins/os-sdlc/lib/os_sdlc/collaborator_pass/**/*.rbowners_that_existsection listing Project attributes, concept objects, and shared parameters. check: presentowners_that_existinplugins/os-sdlc/lib/os_sdlc/collaborator_pass/**/*.rbsubjects. validate-recipe accepts it. record-ruling writes one row per subject. check: presentsubjectsinplugins/os-sdlc/lib/os_sdlc/collaborator_pass/**/*.rbconceptinplugins/os-sdlc/skills/collaborator-pass/SKILL.mdAcceptance criteria
crc_census, then the brief lists root+test_root, lib_root+test_root, and lib_root+root together with their shared sites.owners_that_existnames Project withroot,target.path, andtarget.test.path.Owner sketch
Non-goals
Origin
plugins/os-sdlc/skills/collaborator-pass/SKILL.md)Work started via /os-sdlc:implement (map poodr-ticket-implementation, target os-sdlc). Branch: ticket-1094.
Skeptic dropped the Project-lists-its-own-attributes part of the inflection follow-up (speculative hardening: Owners works today). Re-file only when a second project shape breaks it.
Resolution
Done: prescribe-brief --concept NAME builds ConceptBrief: every finding of one top-level concept side by side, with owners_that_exist (Project attributes, concept objects, shared parameter objects). Recipes may list several subjects; validate-recipe checks each; record-ruling takes repeated --subject and writes one row per subject. Skill loop and prescribe prompt iterate concepts. AC 3 wording corrected from 'verdict and ticket' to 'verdict and recipe' (the rulings TSV has no ticket column). Hand-finished after implementation 63 escalated (bound_exhausted:test-reviewer/fail).
Evidence: main
17d4c688. Full suite: 2094 runs, 4720 assertions, 0 failures, 0 errors (39.5s, budget 47s). rubocop: 16 changed files, no offenses. One opus design audit (12 findings): F1-F4, F6, F8-F12 fixed; F7 answered (spec-owned literal check is acceptable); F5 filed/dropped below. prescribe-brief --concept crc_census on run 20261017T165147Z lists root+test_root, lib_root+test_root, lib_root+root and names OsSdlc::Project with root, target.path, target.test.path.Follow-ups: #1100 verifier-fail routing to red-first test-writer (map defect; skeptic CREATE). #1101 multi-subject recipes checked only against main finding (CREATE). #1102 two Sdlc cops crash on destructured params (CREATE). #1103 one owner for underscore/camelize (skeptic SPLIT; part 2 'Project lists its own brief attributes' dropped as speculative, reason commented on #1094). Dropped: findings spanning two concepts appear in both briefs — per-subject rulings make the second brief skip them; no observed defect.