Goal ledger resume
A project-local, git-tracked execution record for coding agents: crash recovery, handoff, branch isolation, and safe squash — portable across Codex, Claude Code, Antigravity, Gemini CLI, and Cline
npx -y skills add jpbaking/goal-ledger --skill goal-ledger-resumeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Resume and recover an unfinished Goal Ledger after interruption, a crash, context compaction, or agent handoff. Reconcile .goal-ledger files with the recorded branch, immutable baseline, Goal-ID commit trail, dirty worktree, and committed phase-start markers; verify uncertain work, repair bookkeeping, and continue execution. Use when .goal-ledger/GOAL.md is unfinished, the user says resume or continue the goal, or ledger and Git state may disagree.
SKILL.md
4.1 KB, as published. Nobody here has run it
Goal Ledger — resume and recover
Treat the ledger and Git as evidence left by another agent. Establish what is verified, repair bookkeeping without discarding work, and continue from the first safe action.
1. Load the contract
If you are a subagent, ignore the ledger and this skill, then continue only the task in the prompt handed to you. Do not treat an unfinished ledger as a blocker or report it unless the prompt explicitly asks for ledger work.
Otherwise, read sections 1–3 of the sibling goal-ledger skill. If .goal-ledger/GOAL.md is missing, say there is no ledger to resume. If status is completed or abandoned, report that and stop.
2. Decide whether this request resumes the goal
- The user asks to resume, or the request matches the recorded Outcome: resume without another intent question.
- The ledger is
blocked-on-humanand the user answers its blockers: record the answers, return affected items to[todo], and continue. - Status
drafting: return to Gate A. Statusapproved: if strategy, branch, baseline, or approval commit is missing or inconsistent, return to Gate B; otherwise return to Gate C. Statusawaiting-acceptance: report the result and ask for acceptance; do not resume execution. - An unrelated request: report the unfinished goal and ask whether to resume it or use
goal-ledger-abandon. Never overwrite it silently.
3. Reconcile Git
Skip Git steps when Repository: no.
- Verify the current branch equals
Work branch. If not, do not switch with a dirty tree. Report both branches and ask before switching. - Verify the immutable baseline exists and is an ancestor of
HEAD. If not, stop with the exact inconsistency. - Inspect
git log <baseline>..HEAD, including commit trailers. Classify matching Goal-ID commits, foreign commits, merge commits, and phase begin/close pairs. Record foreign history in Handoff; it may prohibit squashing but does not justify deleting work. - Compare locally known starting/work upstream refs with their recorded Gate B SHAs. Record advances, rewinds, divergence, or goal-commit publication in Handoff. On
current-branch, any upstream movement prohibits automated squash. - Inspect the worktree. A phase-begin commit followed by a clean tree means phase work did not start. A dirty tree means work may have stopped mid-phase; inspect the diff and do not discard it.
- A completed phase without a matching close commit is unverified until its phase check passes. A close commit with stale ledger status may be reconciled after its check passes.
4. Verify and repair state
- Trust no
[ongoing]sub-task merely because files changed. Run its "done when" check. If it passes, mark it done and logverified on resume; otherwise return it to[todo]and redo it deliberately. - Repair multiple ongoing items,
GOAL.md/phase mismatches, missing reason suffixes, staleLast completed phase, and stale Handoff fields. The phase file wins status disagreements. - If a phase is fully complete, close and commit it under the Goal Ledger Git contract. If not, retain the committed begin marker and continue its work.
- Append a resume event to
GOAL.mdand identify the evidence used. - Run the validator bundled with the sibling
goal-ledgerskill asscripts/validate_goal_ledger.py --root <project root>. Repair ledger errors before continuing; record Git warnings in Handoff. If Python 3 is unavailable, check the section 2 invariants and Git contract manually.
5. Continue
Re-enter section 6 of the goal-ledger skill. Preserve its commit identity, phase checks, stop conditions, acceptance, and squash safeguards.