crc-refactor split trigger misses mixed-job classes: the "and" test never fires #944
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#944
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
/os-sdlc:crc-refactormarks a ledger rowsplitonly when the file's job sentence needs "and". The rule sits inplugins/os-sdlc/skills/crc-refactor/references/ledger.md:38,references/prompts/role-morph.md:22, andprompts/inventory.md:12. The agent writes purpose-level sentences, so the test never fires on a mixed-job class.Observed
In the os-adr run (
docs/crc/os-adr/ledger.tsv, branchcrc-os-adr-2026-10-04), wave 1 wrote purpose-level sentences. Example: Migrator (142 lines, two entry pointsmigrate!andapply_fills!) got "This object owns the conversion of legacy decision records to ADR format." The verdict wasmove.CLI::New (90 lines), Finder (72 lines), and Index (60 lines) got the same treatment.
Two independent Codex reviews judged all four classes mixed-job. The run's own R5 lens challenge ruled that Index must split.
Only 2 of 11 lib files split. Haiku also broke the "and" rule in 7 of 23 sentences (
docs/crc/os-adr/HANDOFF.md:51).Evidence on candidate deterministic triggers (scratch Prism prototypes):
@repositoryconnects every method.plugins/os-sdlc/lib/.../model/dispatch.rb(27 methods). It is not usable alone. Adding exemptions or name lists was rejected as tuned heuristics.Reproduce
n/a: design gap in a skill rule; evidence is the os-adr ledger and HANDOFF.
Approach
Build a harness first. Run the candidate trigger on the 14 os-adr lib classes and the 10 os-sdlc classes. Compare it with reviewer judgments from haiku and sonnet. Report precision and recall.
Then bring the ADR-0270 amendment to the user for a ruling. ADR-0270 decision 2 reads: "The job sentence finds the mixed job." Make no skill edits before the ruling.
Required work: none beyond the acceptance criteria.
Orchestrator work: harness run, precision/recall report, ADR-0270 amendment decision memo to the user.
Acceptance criteria
Non-goals
The os-adr extractions themselves. They run separately as wave 5 on the known
splitrows.Origin
/os-sdlc:crc-refactorrun on os-adr; reviewers disagreed with themoveverdicts.move← job sentence written at purpose level ← the "and" test depends on sentence wording (DESIGN: ADR-0270 decision 2)Resolution
Done: Predicted ruling (g), 75%, flagged for Jared: no amendment to ADR-0270 decision 2. The job sentence stays the finder of a mixed job; the noun-pair test is a brief rule (inventory-brief.md and role-morph.md step 5,
ebe3a71e). No script trigger (ruling c).Evidence: os-backlog 'and' test, docs/crc/os-backlog/HANDOFF.md section '"and" test (Phase 3, ruling c)' on branch crc-os-backlog-2026-10-16: 10 lib files, blind opus read vs wave 1 'and' signal; split side 3/5 agree (precision 0.6), keep side 5/5 (no under-firing, recall 1.0 on this sample). Phases 5-7: the wave 5 re-run loop found one more mixed class (CliExit, split in #1037) and kept 22 parts. Limits: n=10, not the 14 os-adr + 10 os-sdlc classes the acceptance criteria name; the os-sdlc target run is the larger check.
Follow-ups: none: the os-sdlc run (PLAN.md Phase 5) measures the trigger on a larger sample; no separate ticket