Add the takedown-implement map and make takedown designs emit complete code #972
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#972
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
A takedown design ends at a failing test plus a sketch, so implementation must run the front half of
poodr-ticket-implementationagain (change-auditor, seam-designer, test-writer, programmer). Past implement failures were mostly in that front half. The owner ruled on 2026-10-09 (handoffdocs/handoffs/2026-10-09-takedown-implement-path.md, rulings 1, 2, 3, 7) that the design holds complete code and that a new map places it.Reproduce
n/a: design and feature ticket.
Approach
Handoff build-order steps 2 to 5. Ruling 1:
design.jsonholdsfailing_tests: [{path, content}],code_files: [{path, content}](whole files) anddeleted_files. Ruling 2: reuse the existingos-sdlc-gategates; build no gate-check command. Ruling 3: map selection only;poodr-ticket-implementationstays the default. Ruling 7: the map is data and needs no ADR; one ADR amends ADR-0276 §5 and §9.Required work:
plugins/os-sdlc/maps/takedown-implement.yamlwith nodes place-tests, place-code, programmer-repair, behavior-verifier, suite-check, contract-auditor, refactorer, as in the handoff table — check: presentplace-testsinplugins/os-sdlc/maps/takedown-implement.yamlplugins/os-sdlc/skills/implement/SKILL.md; the default stayspoodr-ticket-implementation.design.json,revision.json,blind-designer.md,blind-designer-apply.md,reviser.md,skills/ticket-takedown/references/design-template.md) to emit complete code.--implementmode (Flow#implement,red_check_step.rb,green_check_step.rb,model/test_batch.rb,adapter/changed_tests.rb,cards/implementer.md,schemas/implement.json,StepProfile.implementation) — check: absentStepProfile.implementationinplugins/os-sdlc/eval/ticket-takedown/**/*.rbfinal-design.json(## ApproachwithRequired work:,## Acceptance criteria,## Owner sketch); the skill calls implement withtakedown-implement.Orchestrator work: record one ADR that amends ADR-0276 §5 and §9, through
/os-adr:create. Prove the map on one smallcode-changeticket with a hand-writtenfinal-design.json(tracer) before steps 3 to 6.Acceptance criteria
/os-sdlc:implementwith no map argument, when it opens a ticket, then it usespoodr-ticket-implementation./os-sdlc:implementwith the argumenttakedown-implement, when it opens a ticket, then the first node is place-tests.failing_testsandcode_files, when place-tests and place-code run, then the tests are red first and green after, with the design tests unmodified.--implementmode exists.Owner sketch
Non-goals
Live grading (separate ticket). Ticket categories (separate ticket). Trial runs (separate ticket).
Origin
docs/handoffs/2026-10-09-takedown-implement-path.md.docs/adr/0276-ticket-takedown-runs-one-pipeline-the-eval-harness-flow-is-the-production-pipeline-live-mode.md)plugins/os-sdlc/eval/ticket-takedown/,plugins/os-sdlc/maps/,plugins/os-sdlc/skills/implement/SKILL.mdVERDICT: CREATE
Step 2 tracer done (main
fe5584e0+ status commit). Maptakedown-implementand/os-sdlc:implement <ticket> [map]shipped inf2196435. #839 ran implementation 35 to merge-ready: 5 dispatches, 0 retries, 108 s; placed files byte-identical to the design. Triage for step 1: docs/triage/2026-10-09-ticket-categories.json (57 of 163 code-change). Next: steps 3-5.Step 3 done (2026-10-09).
4666804c: design.json and revision.json emit whole files: code_files [{path, content}], failing_tests [{path, content}], deleted_files []. test_files removed. Cards blind-designer, blind-designer-apply, reviser and design-template.md updated. DesignText gives critic and grader full file contents.ca702689: final design record stamps ticket and base. base = ScratchRepo#base_sha, resolved once at setup.94e110b3: ADR-0283 amends ADR-0276 decisions 5 and 9. The step-4 red-check question is recorded as open.Open: the grader input changed (full file contents), so grader calibration (ADR-0278) is likely invalid. Proposed for step 4. 01-setup.json does not record base. --implement mode still uses the old shape and is slated for deletion.
Step 4 done (2026-10-09).
2165dd78: the eval red check calls OsSdlc::Gate::StepOutcome#classify(expect_red: true) through Takedown::GateRed. There is one classifier. The gate is stricter: a nonzero exit with 0 failures and 0 errors, or with 0 runs, is no longer red.b5d7eefe: the harness --implement mode is deleted (38 files, -561 lines).af859df7: ADR-0283 decision 4 records Jared's ruling of 2026-10-09: keep the design-time red check, with one classifier.## Code changesand## Testsprose versus the full ruling prose.Follow-up: StepProfile and ClaudeExecutor edits/acceptEdits plumbing is now always false.
Step 5 done on branch prism-architect (not merged): presenter bin/takedown-implement-body (
0c91ad0a); requires_section map header + reroute refusal without ## Design (f97cd11b); design-base guard in implementation-open (77e8fe5d); place-code card transforms (1c3518a9); edits plumbing deleted (fc4b0c66). Tests: takedown 447/0, os-sdlc 1513/0. Live checks: #976, #977.Resolution
Done: Steps 2-5 and acceptance criteria 1-5 done; stale-base guard is in implementation-open, not place-code
Evidence: commits fe5584e0..40ac5805 on prism-architect; takedown rake test 447/0; os-sdlc tests 1513/0
Follow-ups: #976 #977
AC4 says the stale-base check runs when place-code runs. ADR-0284 supersedes that wording. The check (OsSdlc::DesignBase) runs at implementation-open, before any dispatch. Jared ruled this on 2026-10-10. Uncommitted edits to a design's code_files or deleted_files also count as changes.