Compare commits

..

3 Commits

Author SHA1 Message Date
Drew Ritter
d1f1ae1f1e sdd: never commit the plan workspace to the project repo 2026-07-20 16:38:11 -07:00
Drew Ritter
4334ff508a sdd: persist plan constraints at setup for closed-plan dispatches 2026-07-20 03:06:04 -07:00
Drew Ritter
ce6bdd4f4a sdd: controller context diet (terse checkpoints, ledger-based finish) 2026-07-20 02:58:07 -07:00

View File

@@ -133,6 +133,15 @@ a ledger file, not only in todos.
plan's progress: leave it in place and start your own, fresh. plan's progress: leave it in place and start your own, fresh.
- Create the ledger with its identity as the first line: - Create the ledger with its identity as the first line:
`# SDD ledger — plan: <plan file path>`. `# SDD ledger — plan: <plan file path>`.
- During that same Setup read, copy the plan's Global Constraints section
verbatim into `<workspace>/constraints.md`. Every dispatch's binding
constraint values paste from that file — the plan itself stays closed
after Setup, even across compaction.
- The workspace is never committed to the project repo. Do not `git add`
anything under it, and never write a commit whose purpose is to record,
correct, or tidy a workspace artifact — reports and ledgers are session
records, not deliverables. If the repo lacks a `.gitignore` entry for
`.superpowers/`, leave the directory untracked rather than committing it.
- The ledger is your recovery map: the commits it names exist in git even - The ledger is your recovery map: the commits it names exist in git even
when your context no longer remembers creating them. After compaction, when your context no longer remembers creating them. After compaction,
trust the ledger and `git log` over your own recollection. trust the ledger and `git log` over your own recollection.
@@ -140,7 +149,11 @@ a ledger file, not only in todos.
that happens, recover from `git log`. that happens, recover from `git log`.
Read the plan once, note its context and Global Constraints, and create a Read the plan once, note its context and Global Constraints, and create a
todo per task. todo per task. That is the plan's one full read for the whole session:
after Setup, the ledger and `scripts/task-brief` extracts are your working
memory — re-reading the plan or spec late in the run (to "double-check"
completion, to rebuild the final-review dispatch) re-buys context you
already paid for and is forbidden.
Before dispatching Task 1, scan the plan once for conflicts: Before dispatching Task 1, scan the plan once for conflicts:
@@ -195,7 +208,10 @@ that implementer. Single-file mechanical fixes also take the cheapest tier.
Everything you paste into a dispatch prompt — and everything a subagent Everything you paste into a dispatch prompt — and everything a subagent
prints back — stays resident in your context for the rest of the session prints back — stays resident in your context for the rest of the session
and is re-read on every later turn. Hand artifacts over as files. and is re-read on every later turn. Hand artifacts over as files. The same
tax applies to your own words: checkpoint in one short line, keep
bookkeeping in the ledger file, and never paste back into the conversation
what a file already holds.
### 1. Dispatch the implementer ### 1. Dispatch the implementer
@@ -423,9 +439,12 @@ on the most capable available model (see Model Selection), using
superpowers:requesting-code-review's superpowers:requesting-code-review's
[code-reviewer.md](../requesting-code-review/code-reviewer.md). Point it at [code-reviewer.md](../requesting-code-review/code-reviewer.md). Point it at
the ledger's deferred-minor and parked lines so it can triage which must be the ledger's deferred-minor and parked lines so it can triage which must be
fixed before merge. Write the returned review to `<workspace>/final-review.md` fixed before merge. Build that dispatch from the ledger alone — the
before dispatching any fix wave — the merge decision cites the artifact, not a completion lines, parked rulings, and deferred minors are the whole-run
recollection. summary; do not re-read the plan, the spec, or per-task reports to
reconstruct what the ledger already states. Write the returned review to
`<workspace>/final-review.md` before dispatching any fix wave — the merge
decision cites the artifact, not a recollection.
If the final whole-branch review returns findings, dispatch ONE fix subagent If the final whole-branch review returns findings, dispatch ONE fix subagent
with the complete findings list and the binding constraint values with the complete findings list and the binding constraint values