Teach test-writer the mutation handoff field and remove the dead already-satisfied route #877
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.
Depends on
Reference
jared/cc-os#877
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
plugins/os-sdlc/agents/test-writer.md:46tells test-writer to list a case that the current code already satisfies asalready satisfied: <case>and says "The reviewer routes it." No reviewer or map edge routes that disclosure, so the route is dead. ADR-0258 decision 12 replaces it: on the guard map the test is green by design, and test-writer proves it with a mutation in the handoff (mutation: { path:, patch: }). test-writer.md does not describe that field.Reproduce
n/a: prose change, nothing to reproduce.
Approach
Edit
plugins/os-sdlc/agents/test-writer.mdonly. Keep it short.already-satisfied casetext in the step 4disclosurescomment.mutationfield to the step 4 handoff shape. Say when to supply it: when the node instructions ask for a mutation (the guard map).pathis one production file under the code path.patchis a unified diff against that file that breaks the behavior the new test guards. test-writer never applies the patch; the mutation gate applies and restores it.Required work:
already satisfiedinplugins/os-sdlc/agents/test-writer.mdmutation:inplugins/os-sdlc/agents/test-writer.mdAcceptance criteria
already satisfieddisclosure route.mutation: { path:, patch: }and says what each key holds.Owner sketch
n/a: prose only (
plugins/os-sdlc/agents/test-writer.md).Authoring guidance (user ruling, verbatim)
Use existing project agents/skills (plugins/os-sdlc/agents/.md, plugins/os-sdlc/skills/) as examples, plus the orwell-writing skill, the os-sdlc:technical-communication skill, cc-architect (plugins/cc-architect, incl. references/conventions/cc-os-naming.md: never
name:in SKILL.md frontmatter, no commands/ dir), and the mattpocock-skills:writing-for-agents skill, to guide language and structure.Origin
Parent: #859
Blocked by: #875
Work started: os-sdlc pipeline on branch ticket-877 (worktree .claude/worktrees/ticket-877).
Resolution
Done: test-writer.md: removed the already-satisfied disclosure paragraph and its disclosures-comment text; added mutation: {path:, patch:} to the step 4 handoff shape with when to supply it and what each key holds; step 3 says the guard map expects the test gate green.
Evidence: Commit
1e6a5fc6on main. Required-work checks: absent 'already satisfied' (grep -ci = 0), present 'mutation:' (line 141). bin/test 9 suites passed. Hand-finished: implementation 10 escalated unexpected_pass:test-writer/diff-test (escalation 4) because the ticket is prose-only (#892).Follow-ups: none