implementation-open refuses a ticket-map run whose ticket lacks Owner sketch or Cases; ticket map becomes the implement default (ADR-0190) #587
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#587
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?
Context
Per ADR-0190,
poodr-ticket-implementation.yamlbecomes the implement skill's defaultimplementation-openmap.implementation-openmust refuse a ticket-map run when the ticket body lacks## Owner sketchor## Cases, or when## Caseslists no case.Owner sketch
Cases
## Owner sketch, when implementation-open runs with the ticket map, then it raises HarnessError naming "Owner sketch" and no implementation row is created.## Casessection with prose and no numbered or bulleted line, when opened with the ticket map, then HarnessError names "Cases (no listed case)".Observed
plugins/os-sdlc/skills/implement/SKILL.md(lines ~52-54) currently reads:"Pick
maps/poodr-ticket-implementation.yamlwhen the ticket body carries a class sketch and an expected-test-case list; it runs one red round for all listed cases. Otherwise usepoodr-implementation.yaml."This makes the ticket map opt-in and leaves
implementation-open(plugins/os-sdlc/lib/os_sdlc/runner/open_implementation.rb) silent about missing sections.Reproduce
n/a: design/feature ticket, not a reproduced bug
Expected
implementation-openraises HarnessError listing missing sections when opening a ticket-map run against an incomplete ticket body. SKILL.md is updated to:"This map runs one red round for all the ticket's listed cases. It requires
## Owner sketchand## Casesin the ticket body;implementation-openrefuses the run if either is missing. Usemaps/poodr-implementation.yamlonly for a ticket with no test-shaped increment: docs, config, an ADR-only change, or a spike. Report the substitution as a deviation."Origin
VERDICT: CREATE (ticket-skeptic, os-backlog:ticket-skeptic dispatch)
Work started via /os-sdlc:implement on branch ticket-587 (worktree .claude/worktrees/ticket-587), map poodr-ticket-implementation.yaml.
Resolution
Done: Runner::TicketShape + OpenImplementation#check_ticket_shape! refuse a poodr-ticket-implementation run whose body lacks '## Owner sketch' or '## Cases' or lists no case; implement SKILL.md opens with the ticket map by default and reports the per-increment map as a deviation. ADR-0190.
Evidence: Branch ticket-587 commit
01cd658; 4 new Minitest cases in tests/runner/open_implementation_ticket_shape_test.rb; suite 1194 runs 0 failures; rubocop clean on changed files. Pipeline implementation 17: 7 dispatches, 752 s, escalated with unexpected_pass after behavior-verifier failed a documentation-only case; orchestrator hand-finished: deleted a raw-text SKILL.md test (3 RawFileContentAssertion offenses), moved TicketShape above the OpenImplementation comment and dropped a what-comment. refactorer, suite-check, and contract-auditor nodes did not run.Follow-ups: Escalation cause captured as its own ticket (documentation-only case under ## Cases); #588 os-backlog validator side is the sibling ticket; none other.