This guide takes you from a fresh Claude Code session to a fully configured Keel Skills installation. By the end, your agent will have a written rule for when it may act alone and when it must stop and ask — enforced by both a reasoning layer (the skills) and a deterministic hook (theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/quitohooded/keel-skills/llms.txt
Use this file to discover all available pages before exploring further.
PreToolUse enforcer) that fires before any hot tool call runs.
Add the marketplace
Keel Skills ships as a single-plugin marketplace hosted on GitHub. Add it to Claude Code with one command:This registers the Keel Skills marketplace in your Claude Code instance. No credentials are required — the repository is public and MIT-licensed.
Install the plugin
With the marketplace registered, install the plugin:The format is
<marketplace-name>@<plugin-name>. Here, both are keel-skills because the repo exposes a single-plugin marketplace. This installs the three skills, the policy-init command, and the two hooks (SessionStart and PreToolUse) into your Claude Code environment.Generate your project policy
Navigate to your project root and run the policy initialization command:The command interviews you about your project and writes an
Run
AGENT_POLICY.md at your project root. It covers six sections:| Section | Required | What it captures |
|---|---|---|
| Hot zones | Yes | Concrete paths, surfaces, and actions that need a green light before the agent touches them |
| Source-of-truth files | Yes | Files other work depends on — changes need a green light except when following through on an approved decision |
| Where decisions are recorded | Yes | The decisions log, project-state file, and per-task notes location |
| Model tier overrides | Optional | Project-specific overrides of the delegation defaults |
| Definitions | Optional | Pin down what “undoable”, “internal”, or “release” means in your project |
| Standing approvals | Optional | Written decisions that grant a green light in advance for a defined scope |
/keel-skills:policy-init once per project. The skills are generic — all your specifics live in this file.Verify it's working
Enforcement is active immediately after installation. Open a new Claude Code session in your project and the Each line is a JSON record containing the timestamp, the tool that was called, the rule that matched, and the verdict (
SessionStart hook fires automatically, injecting your AGENT_POLICY.md into context — the policy no longer depends on the agent choosing to read it.From that point on, the PreToolUse hook intercepts every tool call before it runs. When it detects a hot command or a write to a hot path, it returns an explicit approval prompt (or, in CI, an outright deny). You can review every decision the hook made in the audit trail:allow, ask, or deny).What happens next
After installation, when the agent encounters a vague “do it” instruction, it runs the four-step check before acting:- Is it read-only, or a clearly-labeled proposal? → Free. Act.
- Does it touch a hot zone? → Needs a green light.
- Does it build or reconfigure a system, or is it a chain whose combined effect rebuilds something? → Needs a green light, even if each individual step is small.
- Otherwise (undoable, internal, isolated, low-impact) → Free: act and report.
PreToolUse hook intercepts the tool call before it runs.
Alternative: use a policy pack
If you’re working on a common stack, ready-madeAGENT_POLICY.md packs give you a complete policy without going through the interview. Packs are available for:
- Next.js / Vercel — hot zones covering the Vercel deployment surface,
next.config.*, and public routes - Supabase — hot zones covering migrations, RLS policies, edge functions, and the Supabase dashboard
- Web app deploy — a general-purpose deploy policy covering production branches, CI/CD config, and outward API calls