Skip to content
Development
Skill

/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).

From plugin
goalkeeper
138 skills1 hook
Install
$ npx -y skills add bonfire-systems/goalkeeper --skill goal-resume --agent claude-code

How 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.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • 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.md
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. The gk CLI is `python3 "${CLAUDE_PLUGIN_ROOT}/scripts/gk.py"`, abbreviated `gk`.

Flow

1. Run `gk status`. It shows the active goal (if any) and the **Parked** queue — parked goals hold no slot, so "no active goal" does not mean "nothing to resume." If the user named a goal, target it; otherwise the active goal, or the single parked goal if that is unambiguous. Nothing to resume → tell the user and stop. 2. Branch on the target's status:

  • `active` — already running; `gk resume` will say so. No-op.
  • `done` — goals don't reopen; suggest `/goal-clear` to archive, then a new contract.
  • `paused` — run `gk resume --keep-count`.
  • `needs_human`, rejection count 0 (parked on a human-gated blocker) — confirm the recorded `needs` is actually provided, then `gk resume <slug>`.
  • `needs_human`, rejections > 0 (judge rejected too many times) — **Ask the user via AskUserQuestion** whether to:
  • **Reset rejection counter and continue (Recommended)** — user confirms they fixed the flagged issues → `gk resume <slug> --reset-rejections`.
  • **Continue without reset** — one more rejection re-parks it → `gk resume <slug> --keep-count`.
  • **Abandon** — route to `/goal-clear`.

gk refuses a bare `resume` in that case precisely so this question cannot be skipped. 3. gk restores the slot and, if the goal heads a `waiting` chain, re-arms the chain. If another goal holds the slot, gk refuses — finish, park, or clear that one first (one loop at a time). 4. On success, **re-enter the goal skill execution loop immediately.** Do not just schedule a wakeup — do real work in this turn. If the goal is a chain link (see `gk status`), re-spawn the executor subagent per `goal-chain/SKILL.md` instead.

Hard rules

  • Never silently reset the rejection counter — the AskUserQuestion step is mandatory for needs_human (and gk enforces the explicit flag).
  • Never resume a `done` goal.
Read more
Ships withgoalkeeper

Durable contract-driven goal execution for Claude Code. A subagent judge gates completion against an explicit Definition of Done.

Get the whole plugin
Stats
13
Stars
2
Forks
Active
Maintenance
Python
Language
MIT
License
19d ago
Last commit
4mo ago
Created

Repo: bonfire-systems/goalkeeper

Other skills on goalkeeper.