goalforge-recaplisted
Install: claude install-skill Truncuso/cogwright
Maintains `recap.md` — a living, idempotent execution trace for a feature's WP
loop. Each WP section records which tasks ran (task list, **no per-task commit
column**), any loop-backs (retries), and a finalized green/yellow/red status line
**carrying the single WP commit** at WP altitude. A `## Feature rollup` section at
the bottom tallies the per-color WP counts. The commit moved from per-task rows to
the per-WP Status line — the recap shows **one commit per WP**, the direct answer
to "trace too many commits" (it holds even when git history stays per-task).
Script: `${CLAUDE_PLUGIN_ROOT}/scripts/recap.sh`
---
## Trigger
Invoked by `goalforge-execute` (after each task, after each loop-back) and
`goalforge-verify` (at WP finalization). Also callable directly for manual audits.
---
## recap.md Lifecycle
```
init → create the file with header (no-op if already present)
record-wp → AUTHORITATIVE one-call WP record: ensure section + task rows +
Status line carrying the single WP commit (green/yellow/red)
append-task → OPTIONAL live-progress: add/UPDATE a task row (no commit column)
append-loopback → add a loop-back entry under the WP section
finalize → write/UPDATE the WP Status line without a commit (legacy/manual)
rollup → regenerate ## Feature rollup from all per-WP Status lines
```
Each operation is **idempotent**: running it twice with the same arguments
produces the same file. Task rows are never duplicated — the same
`<task