Takedown design must list every existing test that pins changed behavior #1004
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#1004
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
The takedown design phase proves new tests red at base (final-red, #995). It does not run the whole target suite against the complete design. An existing test that pins the old behavior therefore fails only at implement time.
Design
/home/jared/dev/cc-os/.claude/worktrees/prism-architect/docs/takedown/1004-20261014-124517/final-design.json
Approach
Add a final-suite gate (FinalSuiteStep over SuiteCheck) that applies the complete design with FilePatch and runs every target's test_command from .sdlc/project.yaml, the same source as the implement-side suite gate. Takedown::Flow writes final-design.json only after final-red, final-check and final-suite pass.
Required work:
plugins/os-sdlc/eval/ticket-takedown/lib/takedown/adapter/file_patch.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/adapter/project_suites.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/adapter/suite_runner.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/model/suite_run.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/model/suite_check.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/command/final_suite_step.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/model/red_check.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/command/step_list.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/command/flow.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/model/run_plan.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/model/run_state.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/model/collaborators.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/command/run_builder.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/controller/run_cli.rbplugins/os-sdlc/eval/ticket-takedown/test/controller/run_cli_test.rbplugins/os-sdlc/eval/ticket-takedown/lib/takedown/adapter/test_patch.rbplugins/os-sdlc/eval/ticket-takedown/test/command/final_suite_test.rbAcceptance criteria
final-suitefails, names the test path; no final-design.json; no gradefinal-design.jsonhassuite_checkwith green, and each target's command, pass flag and failing paths.sdlc/project.yaml, its targets, or atest_commandis missing: Failure, loudlyfinal-redorfinal-checkfails: Stops beforefinal-suite; no final-design.jsonsuitefalse): No final-suite step; unchanged;final_recordhas nosuite_checkkeyOwner sketch
final-design.jsonwritten only after they pass; the gate runs only when the plan asks for itTakedown::FlowTakedown::RunPlan#suite?Takedown::FilePatch(replacesTestPatch; one patcher).sdlc/project.yaml; fail loudly when missingTakedown::ProjectSuites(new, adapter)Takedown::SuiteRunner(new, adapter)Takedown::SuiteRun(new, model)Takedown::SuiteCheck(new, model)run.suite_checksTakedown::FinalSuiteStep(new, command)Takedown::RunStateTakedown::Collaborators,RunBuilder,RunCLI.collaboratorsplugins/os-sdlc/eval/ticket-takedown/test/command/final_suite_test.rbWork started: /os-sdlc:implement 1004 takedown-implement on branch prism-architect. Design: docs/takedown/1004-20261014-124517/final-design.json (
db9dea98). ADR-0291 (Proposed, predicted ruling) amends ADR-0283.Implementation 43 (takedown-implement) abandoned: escalation 22 at place-tests; test-lint found 10+ offenses in the design test final_suite_test.rb; the takedown design phase never lints. Per the integration brief, #1004 now runs on poodr-ticket-implementation, branch prism-architect. Lint defect captured separately.
Lens follow-up dropped (skeptic DROP, depth-1, speculative hardening): move apply-and-run out of model SuiteCheck.run and RedCheck.run into the command layer (A11). Effects in a model, no observed failure.
Lens follow-up dropped (skeptic DROP, depth-1, speculative hardening): nest single-caller top-level objects RunOptions, SuiteRunner, ProjectSuites per A2/ADR-0237. Same root as the A11 note; one takedown conformance sweep if ever wanted.
Resolution
Done: Takedown design phase now runs a final-suite gate: after final-red and final-check it applies the complete design (code_files, failing_tests, deleted_files) to the scratch copy and runs every target's test_command from .sdlc/project.yaml; final-design.json is written only after all three pass and records suite_check; a failing existing test is named and the design is not final. Live plans only; eval-case plans skip it via RunPlan suite field. ADR-0291 (Proposed, predicted ruling at 65%, awaiting Jared) amends ADR-0283.
Evidence: Commit
d3cfd3e6(implementation 44, poodr-ticket-implementation, 13 dispatches, 21 min 28 s; suite-check green twice, behavior-verifier pass on all 12 AC, contract-auditor pass). Recordse2b6d485(README step table, os-sdlc leaf row),a059ba70(lens signals), ADR643b5b97, takedown rundb9dea98. Implementation 43 (takedown-implement) escalated at place-tests on test-lint (escalation 22) and was abandoned; implementation 44 needed one orchestrator test hand-fix in run_cli_test.rb (escalation 23) and one reroute to programmer.Follow-ups: #1005 captured (VERDICT: CREATE): takedown design phase must lint design tests and code. A11 and A2 lens follow-ups dropped by skeptic (DROP, depth-1), reasons posted as comments on this ticket. ADR-0291 confirmation is Jared's ruling, recorded in docs/takedown/integration-plan.md Rulings table.