setup
Skill1 starsChanged 39 days agoMITView on GitHub
Configure which models keel uses per role. Checks for the Codex CLI, offers Claude Code's model aliases, and writes keel-models.md in the active Claude config directory, which every keel skill reads to override its defaults. Use for /keel:setup, "configure keel models", or changing keel's model choices.
191 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- hydra-db/hydradb-claude-codetheir own version, first seen Nov 8, 2026
- WALKERKILLER/Look-Tongji-Notestheir own version, first seen Nov 8, 2026
- steerlabs/opensteertheir own version, first seen Nov 8, 2026
- ansvisor/ansvisortheir own version, first seen Nov 8, 2026
- dsifry/metaswarmtheir own version, first seen Nov 8, 2026
- anombyte93/prd-taskmastertheir own version, first seen Nov 8, 2026
Used with
Projects with it also use add-voice-transcription, add-discord 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.
juancruzmunozalbeloSkilladd-voice-transcription
Add voice message transcription to NanoClaw using OpenAI's Whisper API. Automatically transcribes WhatsApp voice notes so the agent can read and respond to them.
Also in 5 projects that use this
MicrosoftSkilladd-discord
Add Discord bot channel integration via Chat SDK.
Also in 11 projects that use this
MicrosoftSkilladd-slack
Add Slack channel integration via Chat SDK.
Also in 11 projects that use this
juancruzmunozalbeloSkilladd-telegram-swarm
Add Agent Swarm (Teams) support to Telegram. Each subagent gets its own bot identity in the group. Requires Telegram channel to be set up first (use /add-telegram). Triggers on "agent swarm", "agent teams telegram", "telegram swarm", "bot pool".
Also in 7 projects that use this
- +8 more from microsoft
Other versions191 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- alexnthnz/keel★ 596% same
Wrote their own version · 190
- anthropics/knowledge-work-plugins★ 35ksame name
- garrytan/gbrain★ 32ksame name
- gavrielc/nanoclaw★ 31ksame name
- nanocoai/nanoclaw★ 31ksame name
- qwibitai/nanoclaw★ 31ksame name
- Q00/ouroboros★ 6.3ksame name
- pytorch/executorch★ 5.2ksame name
- agenticnotetaking/arscontexta★ 3.5ksame name
- aws/agent-toolkit-for-aws★ 3.4ksame name
- spotify/portal-ai-plugins★ 2.8ksame name
180 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository56 other files it gives its agents.
- architectSkill
- arenaSkill
- automate-meSkill
- benchmark-checklistSkill
- blast-radiusSkill
- broSkill
- correctSkill
- create-formal-verification-skillSkill
- create-verification-skillSkill
- figure-it-outSkill
- helpSkill
- howSkill
- interrogateSkill
- in-your-own-wordsSkill
- ketchupSkill
- ketchup-videoSkill
- leadSkill
- maintain-formal-verification-skillSkill
- maintain-verification-skillSkill
- no-commentsSkill
- principle-attack-the-premiseSkill
- principle-boundary-disciplineSkill
- principle-build-the-leverSkill
- principle-encode-lessons-in-structureSkill
- principle-exhaust-the-design-spaceSkill
- principle-experience-firstSkill
- principle-explain-the-numberSkill
- principle-fix-root-causesSkill
- principle-foundational-thinkingSkill
- principle-guard-the-context-windowSkill
- principle-laziness-protocolSkill
- principle-make-operations-idempotentSkill
- principle-migrate-callers-then-delete-legacy-apisSkill
- principle-minimize-reader-loadSkill
- principle-model-the-domainSkill
- principle-never-block-on-the-humanSkill
- principle-outcome-oriented-executionSkill
- principle-prove-it-worksSkill
- principle-redesign-from-first-principlesSkill
- principle-separate-before-serializing-shared-stateSkill
- principle-sequence-verifiable-unitsSkill
- principle-subtract-before-you-addSkill
- principle-test-behavior-not-implementationSkill
- principle-type-system-disciplineSkill
- qmdSkill
- recallSkill
- reflectSkill
- sharpenSkill
- show-me-your-workSkill
- swarmSkill
- tddSkill
- teachSkill
- technical-writingSkill
- typescript-best-practicesSkill
- unslopSkill
- whySkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 0 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 171 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 9
Write ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/keel-models.md, a plain file that sets keel's model per role.
- Very specific: line 33
Every value written must be opus, sonnet, haiku, fable, inherit, inherit-parent, or auto, or codex inside interrogate reviewers when step 1 …
- Very specific: line 37
Write ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/keel-models.md with one line per role, using the same labels the lead skill uses.
- Very specific: line 62
When step 1 found no codex, write interrogate reviewers: opus, fable, sonnet.
“Common” is measured: kept by at least 6 in 10 of the 171 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.
Files
Setup keel
Write ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/keel-models.md, a plain file that sets keel's model per role. Claude Code has no always-applied rule outside CLAUDE.md, so each keel skill that spawns a subagent reads this file itself.
The file lives in the active Claude config directory, so each profile run through CLAUDE_CONFIG_DIR keeps its own models. Resolve the path in Bash with echo "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/keel-models.md" and never hard-code ~/.claude.
Steps
1. Detect available models
Claude Code subagents take a model alias, not a vendor slug. The valid values are opus, sonnet, haiku, and fable. The aliases inherit, inherit-parent, and auto are always valid and all mean the same thing: omit the Agent call's model so the role runs on the parent model. That is how a user who picks the model per session keeps that choice.
Then check the cross-vendor lane with command -v codex. When it succeeds, codex is also a valid panel entry. It is not a subagent. The interrogate skill runs it from Bash with the OpenAI Codex CLI. When the check fails, leave codex out of every list and say so.
2. Load current state
The default role-to-model mapping is the file shape shown in step 5 below. If ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/keel-models.md already exists, read it and treat its role values as the current choices. Otherwise start from those defaults. A line whose role is not in step 5, such as how critics, is from a retired role. Drop it. A # budget line is from the Cursor version. Drop it too, since Claude Code subagents have no reasoning budget to set.
3. Map and confirm
(a) Build the table. Start from the skill defaults, and on a re-run keep any role the user changed. A value that is not one of the aliases in step 1 (such as a vendor slug copied from the Cursor rule) needs a choice. Suggest the default for that role.
(b) Show the roles and confirm. Show every role with its model, marking any value that needs a choice. Also list each line step 2 dropped. Ask whether to accept as-is or change specific roles, offering opus, sonnet, haiku, fable, and inherit, plus codex for panel roles when step 1 found it. Prefer AskUserQuestion over free text. It takes at most four options per question and adds an "Other" choice itself, so put the four most likely values first. For panel roles (arena runners, architect runners, interrogate reviewers) the value is a list, and one reviewer runs per entry, alias entries included, so the list length sets the count. Three different Claude models give a panel its diversity. codex belongs only in interrogate reviewers, since arena and architect runners must write files through the Agent tool. arena cross-judge pool is also a list, but Arena selects one value from it that differs from the parent's model when possible. swarm workers is the default model for every worker unless a race or comparison assigns another model per arm.
4. Validate
Every value written must be opus, sonnet, haiku, fable, inherit, inherit-parent, or auto, or codex inside interrogate reviewers when step 1 found it. If a chosen value is not valid, stop and ask again.
5. Write the file
Write ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/keel-models.md with one line per role, using the same labels the lead skill uses. Overwrite the whole file so re-runs stay idempotent. Shape:
# keel model configuration. One line per role. Delete a line to fall back to the skill default.
# Values: opus, sonnet, haiku, fable. `inherit` (or `inherit-parent`, `auto`): the role runs on the parent model (omit the Agent call's `model`). Alias entries in a panel list still count toward its fan-out.
# `codex` (interrogate reviewers only): a cross-vendor reviewer run from Bash with the OpenAI Codex CLI.
feature, refactoring: inherit
bug-fix: inherit
perf-issue: inherit
hillclimb: inherit
judgment and prose: inherit
hardest tasks: inherit
how explorer: sonnet
how explainer: opus
why investigators: sonnet
why synthesizer: opus
reflect tooling: sonnet
reflect judgment, divergent, synthesizer: opus
arena runners: opus, fable, sonnet
arena cross-judge pool: opus, fable, sonnet
swarm workers: sonnet
architect runners: opus, fable, sonnet
interrogate reviewers: opus, fable, sonnet, codexWhen step 1 found no codex, write interrogate reviewers: opus, fable, sonnet.
6. Confirm
Tell the user the file was written and that keel skills read it on their next spawn, in this session and new ones. Re-running this skill updates it.
7. Offer a verification skill (optional)
Check whether the project has a way to drive the real app for proof (a verify-* skill, or an existing harness). If not, offer once: "want a project-local verification skill, so agents can drive the app the way a user does and prove changes work? I can generate one with /keel:create-verification-skill." On yes, run the create-verification-skill skill. The Skill tool refuses keel skills, so read ${CLAUDE_SKILL_DIR}/../create-verification-skill/SKILL.md and follow it. On no, move on without pushing.
8. Offer a formal verification skill (optional)
Check whether the project already has a formal verification skill (a project skill that runs a model checker, a proof, or another verifier against the code). If not, offer once: "want a formal verification skill, so agents can prove a key property of your code holds in every case in scope, not only the cases tests reach? I can generate one with /keel:create-formal-verification-skill." On yes, run the create-formal-verification-skill skill. The Skill tool refuses keel skills, so read ${CLAUDE_SKILL_DIR}/../create-formal-verification-skill/SKILL.md and follow it. On no, move on without pushing.
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
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.

