claude-skills
CLAUDE.md1 starsChanged 20 days agoMITView on GitHub
Repo-specific rules. The global ~/.claude/CLAUDE.md style rules still apply; they are not repeated here. - One directory per skill. SKILL.md frontmatter name matches the directory. - description says when to use the skill and lists concrete trigger phrases. - Keep SKILL.md short: it is loaded whenever the skill triggers. Put detail in reference/ files that SKILL.md points to by path. - Add every skill to the table in README.md. If a skill depends on a process (gates, file formats, state…
In this repository8 other files it gives its agents.
- .team/CLAUDE.mdCLAUDE.md
- agile-teamSkill
- example-skillSkill
- house-rulesSkill
- render-markdownSkill
- routed-group-chatSkill
- six-hatsSkill
- unattendedSkill
The file
We split this CLAUDE.md into the rules it gives an agent
11 rules. About 0 are common, 3 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 10
Keep SKILL.md short: it is loaded whenever the skill triggers.
- Distinctive: line 12
Add every skill to the table in README.md.
- Distinctive: line 16
If a skill depends on a process (gates, file formats, state transitions, approvals), code enforces it.
- Distinctive: line 20
Treat frontmatter and TOML as data, validated on load.
- Very specific: line 21
Prefer tables over branching.
- Very specific: line 26
Use uv and Python ≥ 3.12. Dependencies install on first use through uv run --project <runner>, so add few of them.
- Very specific: line 29
Use pytest with coverage fail_under = 95.
- Very specific: line 30
Before committing, run the same checks as CI: uv run ruff check .
- Very specific: line 33
No code in the global scope.
- Very specific: line 41
Use POSIX sh that passes shellcheck.
- Very specific: line 48
Never read or write anything under the real home directory (~)
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
claude-skills: how skills here are developed
Repo-specific rules. The global ~/.claude/CLAUDE.md style rules still apply;
they are not repeated here.
Layout
- One directory per skill.
SKILL.mdfrontmatternamematches the directory. descriptionsays when to use the skill and lists concrete trigger phrases.- Keep
SKILL.mdshort: it is loaded whenever the skill triggers. Put detail inreference/files thatSKILL.mdpoints to by path. - Add every skill to the table in
README.md.
Process lives in code
If a skill depends on a process (gates, file formats, state transitions, approvals), code enforces it. A prompt states the rule and the code checks it. A rule that exists only in a prompt is a wish.
- Treat frontmatter and TOML as data, validated on load.
- Prefer tables over branching. See
cli.COMMANDS,gates.STEP_ROLESandpo_tools.SCHEMASinagile-team/runner.
Python runners
- Use
uvand Python ≥ 3.12. Dependencies install on first use throughuv run --project <runner>, so add few of them. - Lint with ruff (line length 100, rules in
pyproject.toml). - Use pytest with coverage
fail_under = 95. - Before committing, run the same checks as CI:
uv run ruff check . && uv run ruff format --check . && uv run pytest --cov. - Each module gets a matching
tests/test_<module>.py. - No code in the global scope. A module or script holds only its docstring,
imports, constants, function and class definitions, and an
if __name__ == "__main__":guard that calls one entry function (main, orjust_do_itwhenmaindoesn't fit). Loops,withblocks and calls belong in functions.
Shell
- Use POSIX
shthat passes shellcheck. It must run under dash and under bash 3.2 as/bin/sh(macOS). CI tests both. tests/install_test.shcoversinstall.sh. Every test works in a scratch directory.
Never touch the real home directory
- Never read or write anything under the real
home directory (
~) - Tests and manual checks use a scratch
HOME(HOME=$(mktemp -d)) orCLAUDE_SKILLS_DIR. Never use the real~/.claudeor~/.config. - chezmoi pins
~/code/claude-skillsto a commit. A change ships as a commit here, then a pin bump in the dotfiles repo, which is a separate step the human runs.
Cross-platform
Behaviour that differs on Windows must be a deliberate branch that is tested and documented, for example the agile-team dashboard binding to localhost only on Windows.
Docs move with behaviour
A change in behaviour updates, in the same commit series, the skill's
SKILL.md, its reference/ docs and its row in README.md.
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.

