Tasks: retire the execution log
The last spec artifact (requirements → design → testing plan → tasks). A DAG of implementation tasks derived from the approved design and testing plan.
Task list
[x] 1. Bundle the evidence templates that replace the log's gated sections
skills/the-loop/templates/evidence/:self-review.md,critic-review.md,security-review.md,design-critic-review.md,verification.md,final-validation.md,documentation.md,pull-requests.md- Each carries exactly the section(s) its gate demands and nothing else — no phase table, no progress entries, no front-matter phase mirror
- Depends on: none
- Requirements: R2.1, R1.2
- Test: T3 —
test_p3_every_gated_name_has_a_template_that_can_satisfy_it(red→green)
[x] 2. Re-target the five shipped graphs
pdlc-work-item-loop,pdlc-pr-loop,pdlc-contribution-loop: everyvalidates: execution-log.mdbecomes the mappedevidence/*.md— the verb is unchanged, only the target moves (design D1)- Remove
log-entryfrom all 47 entry chains across all five graphs - Depends on: 1
- Requirements: R1.4, R2.1, R2.3
- Test: T1, T3, T4 (red→green)
[x] 3. Delete the
log-entryhookcli/the_loop/graph/hooks/sideeffects.py; update the docstring inruntime.pythat lists the best-effort hooks- Depends on: 2
- Requirements: R1.4
- Test: T1 (red→green)
[x] 4. Move
repos:totasks.mdhooks/loops.py:declared_reposreadstasks.md's front matter; the docstring states the absence rule unchanged- Depends on: none
- Requirements: R3.1, R3.2, R3.3
- Test: T2, T7 (red→green)
[x] 5. Re-seed the dead-session fallback
runtime.py:resolve_sessionseedsrequirements.md,design.md,tasks.md- Depends on: none
- Requirements: R4.2
- Test: T10 (red→green)
[x] 6. Retire the artifact from the manifest and the template tree
.the-loop/manifest.yaml: drop theexecution-logrole, add the eight evidence entries;skills/the-loop/templates/execution-log.mddeleted- Widen
_SPEC_FILEintest_graph_parity.pyso apathPatternwith one directory segment (evidence/x.md) is matched rather than silently excluded - Depends on: 1, 2
- Requirements: R1.1, R1.2, R2.5
- Test: T3 (red→green)
[x] 7. Update the tests that assert the old shape
test_graph_hooks,test_graph_loops,test_graph_skips,test_graph_cleanup,test_graph_review_chain_integration,test_graph_verification_integration,test_graph_multirepo_integration,test_graphlink_integration,test_bus_integration,test_writing_parity- New: the skip-isolation case (T5), the legacy-log-on-disk case (T8)
- Depends on: 2, 3, 4, 5, 6
- Requirements: R2.3, R5.3
- Test: T4, T5, T6, T7, T8 (red→green)
[x] 8. Update the e2e scenario fixtures
cli/tests/test_pdlc_e2e/:runner.py, the three scenarios'scenario.yamlandartifacts/—execution-log.mdfixtures become theevidence/*.mdthe loop now gates- Depends on: 2, 6
- Requirements: A7
- Test: T9 (red→green)
[x] 9. Rewrite the operating model
skills/the-loop/SKILL.mdandreference/{workflow,context,reviewing,security, token-economy,tooling,instructions,automation,design-artifacts}.mdreference/context.mdcarries the new reset protocol (D4): checkmarks + commit, no prose checkpoint- Depends on: 2
- Requirements: R1.5, R4.1, R4.3
- Test: T18, T19
[x] 10. Rewrite the commands
commands/{work-on,work-status,execute-tasks,finish-tasks,verify-work,create-design, create-testing-plan,contribute-to,init}.md;upgrade-the-loop.mdgains the "no longer read, never deleted" note (D5)- Depends on: 2
- Requirements: R1.3, R1.5, R5.1, R5.2
- Test: T18, T19
[x] 11. Update the docs site and capability docs
docs/capabilities/{spec-workflow,process-graph,review-loop,capability-docs, documentation,token-economy,testing-and-contracts}.md— requirement lines updated, one history row eachdocs/{guide,reference,architecture,config},docs/specs/index.md,docs/.vitepress/config.mts,README.md,CLAUDE.md,.the-loop/harness-config.schema.json'sonMissingdescription- Depends on: 2
- Requirements: R1.5, R6.2
- Test: T18, T19
[x] 12. Record the decision
docs/decisions/decision-126.md+ a row indecisions.md: the log retired, the proofs rehoused, the rejected alternative (D6)- Depends on: none
- Requirements: R6.1
- Test: T18
[x] 13. Verify and present evidence
- Run the matrix; record rows in
evidence/verification.md, the security round inevidence/security-review.md, the review rounds, docs and PRs in their own files - Depends on: 1–12
- Requirements: all
- Test: T18 (
make check)
- Run the matrix; record rows in
Review round 1 — the owner's review of PR #366
[x] 14. Rename the state file and the concept
graph-state.json→work-item-state.json,GraphState→WorkItemState, the lock with them; the pre-rename name is read and never written, and the inner-loop scan globs both- Depends on: 13
- Requirements: R7.1, R7.2, R7.3
- Test: T20 (red→green)
[x] 15. Move
reposoff artifacts — first attempt, reverted- A repository section on the
phase-selectionchecklist. Rejected in review round 2: that gate runs before requirements, design and tasks exist, so it asks at the one moment nobody can answer - Depends on: 14
- Requirements: R3.1
- Test: superseded by task 17
- A repository section on the
[x] 17.
the-loop graph repos— the agent declares, once the DAG existsdeclare_reposin the runtime (shape boundary + the instance'srepositories, full set not an append, all-or-nothing);core.graphs.repos; the OpenAPI route authored first, thenPOST /api/v1/graph/repos; the CLI verb routed through the service;graph.repos_declaredin the event catalogue;repositoriesreachesRuntime.config- The agent is told: the skill's multi-repo rule,
reference/workflow.md,create-tasks-plan(the moment) andexecute-tasks(the fallback), plus the CLI page - Depends on: 15
- Requirements: R3.1, R3.2, R3.3, R7.4, R7.5
- Test: T21, T22, T23 (red→green)
[x] 16. Record the decision and re-document both
docs/decisions/decision-127.md+ index row, rewritten after round 2 rather than amended — its reasoning was what was wrong; decision-126's superseded bullet cross-linked; capability history rows; the skill, commands, site and.gitignore- Depends on: 14, 17
- Requirements: R6.1, R6.2
- Test: T18, T19
Execution DAG
flowchart LR
T1["1 templates"] --> T2["2 graphs"]
T2 --> T3["3 delete log-entry"]
T1 --> T6["6 manifest"]
T2 --> T6
T4["4 repos: → tasks.md"] --> T7["7 tests"]
T5["5 seed artifacts"] --> T7
T3 --> T7
T6 --> T7
T6 --> T8["8 e2e fixtures"]
T2 --> T9["9 skill"]
T2 --> T10["10 commands"]
T2 --> T11["11 docs"]
T12["12 decision"] --> T13["13 verify"]
T7 --> T13
T8 --> T13
T9 --> T13
T10 --> T13
T11 --> T13