agentleFS
tristanphvntristanphvn/keel/skills/help/SKILL.md

help

Skill1 starsChanged 39 days agoMITView on GitHub

Guides users through keel setup, the lead, and picking the skill, playbook, principle, agent, or hook for a task. Use for /keel:help, or when the user asks how to install, set up, or use keel, or which keel skill fits. Not for requests to do work, even ones that name keel.

  • Deletes or force-pushes
  • Commits and pushes

76 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use create-stories, story-done and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • lilangMaxSkill

    create-stories

    Break a single epic into implementable story files. Reads the epic, its GDD, governing ADRs, and control manifest. Each story embeds its GDD requirement TR-ID, ADR guidance, acceptance criteria, story type, and test evidence path. Run after /create-epics for each epic.

    Also in 9 projects that use this

  • lilangMaxSkill

    story-done

    End-of-story completion review. Reads the story file, verifies each acceptance criterion against the implementation, checks for GDD/ADR deviations, prompts code review, updates story status to Complete, and surfaces the next ready story from the sprint.

    Also in 9 projects that use this

  • +10 more from lilangMax

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 57 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Start a task with the lead

    line 19
  2. Distinctive:

    Check the state that changes the answer, and mention it only when it does:

    line 23
  3. Very specific:

    Run /keel:setup. It checks for the Codex CLI, maps a model alias to each role, and writes keel-models.md in the active Claude config …

    line 31
  4. Very specific:

    Start a real task with a goal and a check that can pass or fail.

    line 32
  5. Very specific:

    If a skill directory next to this one is missing from the table, read its frontmatter and route by its description.

    line 90

“Common” is measured: kept by at least 6 in 10 of the 57 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

keel help

Answer the user's question about keel, hand them a prompt they can send, and link the file the answer came from. For a help question, don't start the work. The user asked how, and a keel run spends real tokens, so let them send the prompt.

A message that asks for work, such as "use keel to fix this bug", is not a help question. Read lead and do the work under it.

This file maps questions to the skills and guide pages that hold the answers. Those files own the details. Read the file you route to before you quote it, and trust it when it disagrees with this map. The links here point into the installed plugin, which the user may not be able to open, so give the user the file's public copy: https://github.com/tristanphvn/keel/blob/main/ followed by its path.

Find out what they need

Infer the need from the message and the conversation. A named situation, such as "which skill reviews a PR?", goes straight to its section. If the need is still unclear, ask one AskUserQuestion with these four options, then answer only the section they pick. Its built-in Other choice covers Make keel my own.

  • Get set up
  • Start a task with the lead
  • Pick a skill for a situation
  • Fix a run that went wrong

Check the state that changes the answer, and mention it only when it does:

  • No ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/keel-models.md means /keel:setup hasn't run for this profile, so every role uses its default model.
  • No verify-* skill or other app harness in the project means agents have no scripted way to drive the app. Mention /keel:create-verification-skill when the question is about proving a change works.

Get set up

  1. Install with claude plugin marketplace add tristanphvn/keel, then claude plugin install keel@keel. To try keel for one session, clone the repository and run claude --plugin-dir ./keel.
  2. Run /keel:setup. It checks for the Codex CLI, maps a model alias to each role, and writes keel-models.md in the active Claude config directory. keel skills read it on their next spawn, in this session and new ones.
  3. Start a real task with a goal and a check that can pass or fail. The main session loads the lead on its own, or the user types /keel:lead.

keel needs git, the GitHub CLI gh signed in, python3 for the hooks, bun for the playbook scripts, and node for the plan checker. Only lead and help load from the user's words, and typescript-best-practices loads when the agent touches a .ts or .tsx file. The other skills load when the user types them or when the lead reads them for a step. The README and guide page 1 have the details. Offer to word their first prompt with them.

If cost is the worry, say where the tokens go and how to spend fewer. keel spends extra tokens on subagents and review panels. Rerun /keel:setup and pick cheaper models, such as sonnet or haiku, for the roles that matter least. A role set to inherit runs on the session's model. A shorter panel list runs fewer subagents, one for each entry. Once the lead is loaded, small asks run directly without the loop, so they cost no subagents.

keel also installs in Codex, with codex plugin marketplace add tristanphvn/keel and codex plugin add keel@keel. There the user invokes $keel:lead, which reads the same playbooks through its Codex adapter. This help skill and the other /keel:<name> commands are Claude Code only. The README's Codex section covers the sandbox approvals.

Start a task with the lead

The lead matches the task to a playbook, copies the playbook's steps into the todo list, and runs the other skills as the steps need them. A step it skips stays in the list as skip: <reason>. A good prompt states the goal and how to tell it's done. It doesn't list skills, because a hand-written sequence tends to drop or reorder steps the playbook would keep. Guide page 2 has examples.

The lead stays on across turns. The hooks/lead-reminder.sh hook re-injects one line on every prompt, and hooks/lead-gate.py denies every tool except Skill, ToolSearch and AskUserQuestion until the session loads the lead. Set KEEL_LEAD_GATE=off to turn the gate off. Once loaded, the lead runs small asks directly, without the loop. To opt out of the lead entirely, set KEEL_LEAD_GATE=off and KEEL_REMINDER=off. Mid-chat, "new task" makes the lead match a fresh playbook.

The lead delegates code-writing to keel:ponytail builders and reviews with keel:critic, a read-only reviewer with one lens per spawn. To get the same builder from a subagent of your own, spawn it with subagent_type: "keel:ponytail".

Subagents live only as long as their session. Before closing the terminal on running work, type /bg. Start unattended work with claude --bg "<brief>".

Pick a skill

The default answer is the lead, which runs most of the others when its steps need them. Name a skill directly when the user wants more or less of something than the playbook gives. Read the skill before you recommend it, and give one example prompt.

The user wants toSkill
Do any non-trivial task with rigor/keel:lead
Know how code works now, or where new code should live/keel:how
Know why code is shaped this way, or where a number came from/keel:why
Understand a change or subsystem, explained plainly/keel:teach
Catch up on their own recent work on a topic/keel:recall
Catch up on what changed in this chat since their last message, and what waits on them/keel:ketchup
Watch that catch-up as a short silent video instead of reading it/keel:ketchup-video
Know what a small diff could break outside itself/keel:blast-radius
Settle types and module shape before code that crosses a function boundary/keel:architect
Get several attempts at one brief, merged into the best one/keel:arena
Run parallel checks over slices, or race workers, as subagents/keel:swarm
Have several models review a diff and try to break it/keel:interrogate
Fix a bug test-first when a cheap local test exists/keel:tdd
Apply TypeScript rules to .ts or .tsx work/keel:typescript-best-practices
Strip comments before review, using a reviewer that didn't write them/keel:no-comments
Clean AI tells out of prose/keel:unslop
Write docs, an RFC, a README, a PR description, or a commit message to a standard/keel:technical-writing
Hear the last reply again in plain words/keel:bro
Have the agent play back their goal and the problem before it starts/keel:in-your-own-words
Make a prompt deeper, not bigger, before sending it/keel:sharpen
Give agents a scripted way to drive the app and prove behavior/keel:create-verification-skill
Bring a verification skill and its feature map back in line with the app/keel:maintain-verification-skill
Prove a property tests can't reach, such as a race, retry, state machine, or parser/keel:create-formal-verification-skill
Bring formal verification back in line after the code it covers changed/keel:maintain-formal-verification-skill
Vet a performance number before reporting or acting on it/keel:benchmark-checklist
Run a large or cross-cutting change, or one to review after stepping away/keel:figure-it-out
Keep a decision log during a run, and review it afterward/keel:show-me-your-work
Pick a model for each role/keel:setup
Search their notes, vaults, or auto-memory from every project with one local qmd index/keel:qmd
Turn their own working habits into a personal mode skill/keel:automate-me
Turn what a finished task taught into skill edits/keel:reflect
Stop agents from repeating the same mistakes in this repo/keel:correct
Find their way around keel/keel:help

If a skill directory next to this one is missing from the table, read its frontmatter and route by its description. The principle-* directories are covered under principles below.

Close calls:

  • /keel:how explains what the code does. /keel:why explains the reasons. /keel:teach runs one or both and explains the result plainly.
  • /keel:arena gives every worker the same brief and merges the best parts. /keel:swarm splits work into slices or a race and returns one report.
  • /keel:architect implements right after it settles the design. Add "with checkpoint" to review the design before it writes code.
  • /keel:interrogate reviews the diff. /keel:blast-radius looks for breakage outside the diff and proves the one fact that makes the change safe.
  • /keel:ketchup catches up on this chat since the last message. /keel:recall rebuilds context across recent chats. Resuming one specific chat or branch is the Session pickup playbook. /keel:ketchup-video is the same catch-up shown as a video, with the calls waiting on them as text under it.
  • /keel:figure-it-out designs one rigorous run. The Orchestrate playbook runs a program that spans days and many PRs. The Autonomous run playbook drives one task to a finish condition.
  • /keel:correct mines history for repeated mistakes and fixes each at the highest level that works.

Not in keel:

  • /simplify, /loop, /bg, and plan mode are Claude Code built-ins. The lead runs /simplify before each commit.
  • Browser and desktop driving comes from the anthropic-skills browser and computer-use skills when available, else Playwright through Bash. anthropic-skills:skill-creator writes skills when available.
  • keel has no /keel:orchestrate skill. Orchestrate is a lead playbook. If the slash menu shows /orchestrate, another plugin provides it.

Playbooks and principles

Playbooks are step lists inside the lead, not skills, so they have no slash command. Describing the task picks one, and these phrases name one directly:

  • "babysit this pr" or "check on pr 123" runs Babysit. It drives the PR to merge-ready and stops there. It doesn't merge unless the user asks to merge, land, or ship.
  • "land the stack" runs Shipping.
  • "take over this branch" runs Session pickup.
  • "pause safely" runs Pause safely.
  • "full autopilot on this queue" runs Autopilot-full. "stack them, don't ship" runs Autopilot-stack.
  • "run the eval playbook" runs Eval.

The Playbooks section of lead lists every playbook and when it applies. Guide page 6 covers opening, babysitting, and landing a PR.

keel has no planning skill. Claude Code's plan mode works alongside it. For work that spans phases or stacked PRs, asking the lead for a plan runs the Multi-phase plan playbook, which writes the plan and doesn't implement it. For a design question, the Prototype playbook or /keel:architect settles it in code first.

Principles are one-rule skills that the lead reads and cites in its replies. The user rarely invokes one. They steer with the names instead, as in "apply prove it works. show me the real output." Typing /keel:principle-<name> still loads one on demand. Guide page 8 lists them.

Fix a run that went wrong

SymptomFix
The lead stopped applying after a few turnsCheck that KEEL_REMINDER and KEEL_LEAD_GATE are not off, or type /keel:lead at the start of each task.
Every tool call is denied with "keel lead gate"The session has not loaded the lead yet. Load keel:lead (or type /keel:lead), or set KEEL_LEAD_GATE=off to turn the gate off.
A question got treated as the next step of the last taskSay "new task", or say the turn doesn't need the loop.
A new model choice had no effectCheck that /keel:setup wrote keel-models.md under ${CLAUDE_CONFIG_DIR:-$HOME/.claude} for the profile in use. Subagents already running keep their model.
Runs cost more than expectedSee the cost paragraph under Get set up.
A skill didn't load on its ownOnly lead and help load from the user's words, and typescript-best-practices loads on .ts and .tsx files. The others load when the user types them or when the lead reads them, and it doesn't run every skill.
Parallel agents overwrote each otherGive each agent its own worktree with isolation: "worktree", or a separate claude --worktree session.
Subagents stopped mid-taskClosing the terminal stops them. Type /bg first next time. To recover, follow the Session pickup playbook against their worktrees.
The git guard blocked a commandIt blocks force-pushes, reset --hard, clean -f, and whole-tree discards on purpose. An owner publishes its own rebased branch with git push --force-with-lease=<branch>:<sha> origin <branch>, pinned to the SHA it last pushed. See hooks/git-guard.py.
An overnight run moved but finished nothing/loop needs a check that can pass or fail, not a duration. See guide page 7.
The reply claims success from a green buildAsk for the real command, flow, stored value, or profile. That's the prove-it-works principle.

Guide page 10 has more pitfalls and the recipes worth copying.

Make keel my own

  • /keel:automate-me drafts a personal mode skill from the user's own history, to use alongside the lead.
  • /keel:reflect after a session turns its lessons into skill edits the user approves.
  • /keel:lead write a skill for <workflow> runs the authoring playbook. The eval playbook tests a skill change blind.
  • Fix a misbehaving skill in its own PR, not inside the feature work where it went wrong.

Guide page 9 covers each of these.

Reply

Lead with the answer. Give at most one example prompt in a code block, then the link to that file. Keep it short unless the user asked for the whole map.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.