/goal-resume
Resume a paused or needs_human goalkeeper goal. Use when the user invokes /goal-resume after they've manually unblocked the goal (e.g. fixed a problem the judge flagged).
$ npx -y skills add bonfire-systems/goalkeeper --skill goal-resume --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/goal-resume
Context preview
The summary Claude sees to decide when to auto-load this skill.
Resume a paused or needs_human goalkeeper goal. Use when the user invokes /goal-resume after they've manually unblocked the goal (e.g. fixed a problem the judge flagged).
SKILL.md
goal-resume.SKILL.mdname: goal-resume
description: Resume a paused or needs_human goalkeeper goal. Use when the user invokes /goal-resume after they've manually unblocked the goal (e.g. fixed a problem the judge flagged).
You are operating the **goal-resume** skill.
Flow
1. Read `.claude/goals/active.json`. If no active goal, tell the user and stop. 2. Read `.claude/goals/<slug>/state.json`. 3. Branch on current status:
- `active` — already running, no-op. Tell user.
- `done` — already complete. Tell user; suggest `/goal-clear` to archive.
- `paused` — proceed to step 4.
- `needs_human` — the judge rejected too many times. Before resuming, **ask the user via AskUserQuestion** whether to:
- **Reset rejection counter and continue (Recommended)** — user confirms they fixed the issues; reset `rejection_count = 0`.
- **Continue without reset** — keep counter; one more rejection will re-trigger needs_human.
- **Abandon** — route to `/goal-clear`.
4. Set `state.status = active`, set `resumed_at: <ISO8601>`. If the user opted to reset, also set `rejection_count = 0`. 5. Append to `log.md`:
## <ISO8601> — resumed
Resumed by user.<conditional: " Rejection counter reset.">
6. Re-enter the **goal** skill execution loop immediately. Do not just schedule a wakeup — do real work in this turn.
Hard rules
- Never silently reset the rejection counter. Always ask when resuming from `needs_human`.
- Never resume a `done` goal. Goals don't reopen — start a new contract instead.
- The log entry is append-only.
Read more
name: goal-resume description: Resume a paused or needs_human goalkeeper goal. Use when the user invokes /goal-resume after they've manually unblocked the goal (e.g. fixed a problem the judge flagged).
You are operating the **goal-resume** skill.
Flow
1. Read `.claude/goals/active.json`. If no active goal, tell the user and stop. 2. Read `.claude/goals/<slug>/state.json`. 3. Branch on current status:
- `active` — already running, no-op. Tell user.
- `done` — already complete. Tell user; suggest `/goal-clear` to archive.
- `paused` — proceed to step 4.
- `needs_human` — the judge rejected too many times. Before resuming, **ask the user via AskUserQuestion** whether to:
- **Reset rejection counter and continue (Recommended)** — user confirms they fixed the issues; reset `rejection_count = 0`.
- **Continue without reset** — keep counter; one more rejection will re-trigger needs_human.
- **Abandon** — route to `/goal-clear`.
4. Set `state.status = active`, set `resumed_at: <ISO8601>`. If the user opted to reset, also set `rejection_count = 0`. 5. Append to `log.md`:
## <ISO8601> — resumed Resumed by user.<conditional: " Rejection counter reset.">
6. Re-enter the **goal** skill execution loop immediately. Do not just schedule a wakeup — do real work in this turn.
Hard rules
- Never silently reset the rejection counter. Always ask when resuming from `needs_human`.
- Never resume a `done` goal. Goals don't reopen — start a new contract instead.
- The log entry is append-only.
Durable contract-driven goal execution for Claude Code. A subagent judge gates completion against an explicit Definition of Done.
Repo: bonfire-systems/goalkeeper
Other skills on goalkeeper.
- /goal-chain
Run a linear sequence of goalkeeper goals where the judge gates progression between them. Use when the user invokes /goal-chain "<file>" to start a chain. Also auto-invoked by the judge skill on approval to advance the chain cursor.
Open skill - /goal-clear
Stop and archive the currently active goalkeeper goal. Use when the user invokes /goal-clear to abandon or finalize a goal. Files are moved to .claude/goals/_archive/, never deleted.
Open skill - /goal-judge
The gate. Reviews the active goalkeeper goal against its definition-of-done and either approves (advance / mark done) or rejects (with a structured fix-list). Auto-fired by the goal skill when the validator passes (inline mode), or invoked by the goal-chain orchestrator after
Open skill - /goal-pause
Pause the currently active goalkeeper goal without losing state. Use when the user invokes /goal-pause. The goal can later be resumed with /goal-resume.
Open skill - /goal-prep
Interactively draft a goalkeeper contract before executing. Use this skill when the user invokes /goal-prep "<rough idea>", or when /goal is called for a slug that has no contract yet. Produces a well-formed contract.md with explicit objective, definition-of-done, validator
Open skill - /goal-supervisor
The mission-level supervisor. One level above goals. Reads the user's mission charter and the most-recently-completed goal's artifacts, then decides whether to PROCEED (draft + activate the next goal), declare the mission DONE, or ESCALATE to the user. Use this skill when the
Open skill

