AIToday
AI Coding AssistantsZenn AI/MLPublished: Oct 12, 2026, 22:00 JST

subagent-driven-development adds progress.md ledger to stop rework

subagent-driven-development adds progress.md ledger to stop rework

3 Key Points

  1. What happened

    The subagent-driven-development skill writes a progress.md ledger under .superpowers/sdd/ for each plan, logging tasks as complete with their commit ranges. SKILL.md says conversation memory does not survive compaction.

  2. Why it matters

    Without the ledger, an AI controller can lose its place after compaction and redo finished work — a failure the skill's documentation calls its most expensive observed. Commits stay in git even when memory does not.

Not sure about something? Ask the AI

Questions and answers are published on this page.

Summaries like this, in your inbox every morning.

Context & Analysis

The workspace itself exists in a specific place for a specific reason: bash scripts/sdd-workspace PLAN_FILE prints an absolute path under the repository root, one directory per plan file base name. The script's comments explain that it is kept out of .git/ because Claude Code treats .git/ as a protected path and refuses agent writes, which would leave implementation subagents unable to write their reports.

The ledger's first line identifies which plan file the ledger belongs to, and that line drives what happens on a resume. If it points at your plan, tasks with a complete line are treated as done and not re-dispatched, and work restarts from the first task with no complete line. A final line that is a fix-round entry means the repair loop is mid-flight and continues from the next round. A ledger pointing at a different plan, or one left in the old .superpowers/sdd/progress.md path, is left alone as another plan's progress and you create a fresh ledger. Where two plans share a file name, the script records the owning plan's path in a plan-path marker per working directory, splitting directories by parent folder name or by a sequential number if those also collide.

Beyond completion entries, the ledger also carries a pre-start plan-collision scan table, per-round fix results, parked findings, and Ruling lines. A Ruling line records three things: what was decided, why, and what is lost if it turns out wrong, and every adjudication must leave a ledger entry — silently discarding a finding is not allowed. This pairs with the skill's design of not checking in with a human between tasks. The documentation's reasoning is that a wrong ruling costs visible rework, while a paused session asking a question costs the other person a full day. Only four situations are allowed to stop the controller: irreversible or destructive operations, security-related operations, side effects outside the worktree that customarily get prior confirmation (merges, pushes to shared branches, publishing), and a plan so broken that any path forward would be guesswork. At the end, the controller gathers every line containing "Ruling:" and lists them chronologically under "Rulings I made," so a developer can redo only the bad decisions.

Separately, the skill's routing logic matters for anyone reading the ledger format: when there is an implementation plan, the tasks are largely independent, and subagents are available, this skill applies; in-line execution or an environment without subagent tools branches to executing-plans. Both share the same working directory and ledger, so the way the ledger is read is common to both.

FAQ
Why not just rely on the AI's own memory of what it has done?
The skill's SKILL.md states in one line that conversation memory does not survive compaction. It also notes that a controller that loses its place can re-dispatch a whole column of finished tasks, which it calls the most expensive failure observed. The ledger is written alongside plain to-dos for exactly that reason.
Does version-controlling the ledger get recommended by the skill?
No. SKILL.md still describes the workspace as git-ignored, and tracking the ledger is a repository-side choice rather than a practice the skill recommends. It became possible only after v7.0.0 changed sdd-workspace to write the default .gitignore just when no file exists.
What gets lost if someone runs git clean -fdx during a plan?
The workspace is covered by .superpowers/sdd/.gitignore, whose default content is '*', so the ledger, task briefs and reports all disappear together. Committed work survives in git and can be traced through git log, but ruling entries and parked findings exist only in the ledger.

AI news that matters for your work, delivered every morning.

Pick your industry and the AI tools you use, and get news related to your work every day.

Free · 30 seconds with Google · unsubscribe anytimeWhat is AIToday? →

Ask AI

Ask AI anything about this article. The AI reads this article, earlier AIToday articles, and Wikipedia, and cites its sources. Q&As are published on this page for other readers too.

Questions and answers are published on this page.

Related Articles

Next articleOpenAI's o1 impresses game designer with scratch and sniff board game idea