Development
Hook
Hooks
What goalkeeper runs automatically, and when. A hook is a command Claude Code fires at a fixed moment, without you asking for it.
Claude Code
> /plugin marketplace add bonfire-systems/goalkeeper> /plugin install goalkeeper@goalkeeper
Cursor
Cursor also runs Claude Code hooks from .claude/settings.json, so copy these hooks there to use them in Cursor.
What fires, and when
PreToolUse
- Matches
Edit|Write|NotebookEditpython3 "${CLAUDE_PLUGIN_ROOT}/scripts/gk.py" hook-guard
In the plugin's words
How goalkeeper describes its own hook set.
Goalkeeper invariant enforcement: blocks direct Edit/Write to an active goal's contract.md, log.md, state.json, to active.json/chain.json, and to the live mission's mission.json/mission-log.md/mission-completed.md — those files are managed exclusively by the gk CLI so the audit
Stats
13
Stars
2
Forks
Maintained
Maintenance
Python
Language
MIT
License
Last commit
Created
Ships withgoalkeeper
Durable contract-driven goal execution for Claude Code. A subagent judge gates completion against an explicit Definition of Done.
138 skills
Questions about the hooks in goalkeeper.
- Which coding agents can use the hooks in goalkeeper?
- The hooks in goalkeeper install in Claude Code and Cursor: each runs Claude Code hooks from .claude/settings.json, so copy the hooks there.

