test-reviewer must judge only the test-writer's own diff, not the whole working tree against HEAD #597
Labels
No labels
P0
P1
P2
P3
bug
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
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#597
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?
VERDICT: CREATE — Data-loss hard floor: unrecoverable destructive git checkout of un-committed production work, distinct scope from #556.
test-reviewer must judge only the test-writer's own diff, not the whole working tree against HEAD [capture]
Context
In the poodr-ticket-implementation map, a failed behavior-verifier sends the run back to test-writer for a second red round. At that point the working tree can hold the programmer's production changes from the first increment. These changes are uncommitted, because the ADR-0171 commit step is opt-in and off. The test-reviewer charter says the test set "changes no production code". The reviewer checks this against HEAD. It sees the programmer's production diff and rejects the round for a reason the test-writer did not cause. Ticket #556 already proposes a
start_commitcolumn so runner diffs (code_changes,test_changes) use the implementation's open commit instead of HEAD. This ticket covers the test-reviewer and test-writer charters, and the destructive action the test-writer took in response.Observed
Implementation 21 on ticket #595, session 3affeb44-19f4-4275-8c3a-d51963d17139, 2026-09-15.
Dispatch 268 (programmer) passed green: gate diff-test exit 0, lint exit 0. It modified
plugins/os-sdlc/lib/os_sdlc/project.rbandplugins/os-sdlc/lib/os_sdlc/project/config.rb.Dispatch 269 (behavior-verifier) failed on outstanding tasks and routed the run back to test-writer.
Dispatches 271, 273, and 275 (test-reviewer) each returned fail. The reviewer ran
git diff -- plugins/os-sdlc/liband saw the programmer's production changes still in the tree.Dispatch 274 (test-writer) ran the command below and reported: "Reverted the illegal production changes".
The run ended
implementation_failed, reasonbound_exhausted:test-reviewer/fail, after 12 dispatches. The programmer's increment was never committed or stashed, so it is unrecoverable from git.Reproduce
Expected
The test-reviewer must compare the tree against the test-writer dispatch's own start point, not HEAD, once #556's
start_commitexists. Until then, the test-reviewer and test-writer charters must state plainly: production changes present in the tree before the dispatch started are not the test-writer's, and must never be reverted, checked out, or restored by any pipeline agent that did not itself write them.Owner sketch
The reviewer half shipped 2026-09-15 (commit on main: maps enrich test_changes for test-reviewer; charter judges only supplied facts and settles error with MISSING when a fact is absent). What remains is the mechanical invariant "test-writer changed nothing under code_path", enforced by the test-writer gate against a per-dispatch base:
Map: test-writer gates gain
{ gate: code-untouched, expect: empty }(name open). Charter test-writer: "Never checkout, restore, or reset any file. Files changed before your dispatch are not yours."Cases
Origin
implementation_failedon ticket #595.git checkoutobeying the reviewer's fail ← reviewer diffed the whole tree against HEAD, not its own dispatch's start point ← DESIGN: no per-dispatch diff base for judgment agents (ADR-0171 commit step is opt-in and off).Scope narrowed 2026-09-15: the reviewer-side fix shipped on main (test_changes enriched, charter forbids commands, MISSING error). Remaining scope is the gate-side code-untouched invariant on a per-dispatch start_tree.