Define durable, contract-driven goals with a definition-of-done, then execute them autonomously while a judge subagent validates completion, rejects incomplete work with a structured fix-list, and chains goals into missions that gate progression on approval.
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 executor subagent returns (subagent mode, v0.3+). Can also be invoked on demand via /goal-judge for advisory review.
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.
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.
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.
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 command, and non-goals.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Contract-driven autonomous goal execution for Claude Code.
A subagent judge gates completion against an explicit Definition of Done.
Real reject-cycle, 3 minutes wall-clock. Goalkeeper caught a
MAX_RUNTIME_MS = 9999 // TODOsentinel placeholder in a benchmark test where the validator passed both rounds. Round 1: validator green, judge reject on DoD #3 + #7 with a 3-step fix-list. Round 2: real threshold (500ms = 10x measured baseline) with justification, validator green, judge approve. Full transcript with quoted verdicts:docs/demo.md. Long-form writeup on dev.to.
OpenAI Codex /goal | Ralph loop | goalkeeper | |
|---|---|---|---|
| Durable goal across many turns | ✓ | ✓ | ✓ |
| Validator back-pressure | optional | core | core |
| Independent judge gate against an explicit Definition of Done | — | — | core |
Anti-placeholder rule (stubs / .todo / it.only auto-reject) | — | informal | enforced |
| Linear chains of role-specific goals with judge-gated handoff | — | — | /goal-chain |
| Auto-pauses after N consecutive rejections | — | — | 5 (configurable) |
| Append-only checkpoint log per goal | — | informal | enforced |
| Spec lives in | CLI prompt | PROMPT.md | contract.md (validated against JSON Schema) |
| Pre-existing validator failures distinguished from goal-caused | — | — | validator_baseline_* |
Inspired by OpenAI Codex /goal and Geoffrey Huntley's Ralph loop, with one key addition: the judge.
Codex /goal runs autonomously until a stop-condition is met. The Ralph loop runs while :; do cat PROMPT.md | claude-code; done and leans on validators (compile, test, lint) to back-pressure the model. Both work, but both have the same failure mode: a passing validator is not the same as a finished feature. Tests can pass on stubs. Linters can pass on .todos. Codex can declare victory the moment its stop-condition string matches.
goalkeeper adds a second gate. After your validator passes, a fresh subagent — independent context, no rationalizations from the executing agent — reviews the diff and the progress log against your written Definition of Done, and either approves or returns a structured fix-list. After 5 rejections it pauses and asks for human help.
Add the goalkeeper marketplace, then install the plugin:
# inside Claude Code
/plugin marketplace add bonfire-systems/goalkeeper
/plugin install goalkeeper@goalkeeper
Skills become available under the goalkeeper: namespace. Invoke as /goalkeeper:goal "<objective>", /goalkeeper:goal-prep, /goalkeeper:goal-judge, etc. (Most users alias the namespace away — see "Aliasing" below.)
If you primarily use goalkeeper and want shorter commands, add aliases to ~/.claude/settings.json:
{
"aliases": {
"/goal": "/goalkeeper:goal",
"/goal-prep": "/goalkeeper:goal-prep",
"/goal-pause": "/goalkeeper:goal-pause",
"/goal-resume": "/goalkeeper:goal-resume",
"/goal-clear": "/goalkeeper:goal-clear",
"/goal-judge": "/goalkeeper:goal-judge",
"/goal-chain": "/goalkeeper:goal-chain"
}
}
/goal-prep "Migrate the test suite from Jest to Vitest"
goalkeeper reads your repo, asks a few targeted questions (objective, definition-of-done, validator command, non-goals), writes .claude/goals/<slug>/contract.md, and offers to start. Once running, it:
npx claudepluginhub bonfire-systems/goalkeeper --plugin goalkeeperTurn broad Codex and Claude Code work into pressured /goal runs with oracles, local boards, receipts, and verification.
Tell Claude what you want once; it works until the job is verifiably done, then saves what it learned. Goals with checkable specs, independent verification, and a memory that grows.
A no-nonsense goal workflow engine for Claude Code and Codex: turn a plain-English goal into tracked steps with plain-language decisions and evidence-based done.
Draft or activate compact Codex goals for verifiable long runs. Defines the result, evidence, constraints, stop rules, limited clarification, and only worthwhile extra review or separate threads.
Plan and autonomously build a software task end-to-end. Recons the codebase, applies preloaded memory, decomposes into the right number of phases, gets one confirmation, then prepares a single ready-to-paste /goal command — one paste between you and done — that drives execution to completion with built-in retry, fix-spec recovery, and per-phase memory writeback. Works on Claude Code and Codex.
Agent discipline engine — locks the goal, enforces PLAN-DO-VERIFY-FINALIZE-OUTPUT loop, detects 11 success masquerading patterns.