claude-config
CLAUDE.md1 starsChanged 4 months agoMITView on GitHub
Layered, reusable development standards for Claude Code, packaged as a plugin. This file is always loaded. The stack-agnostic rules live under .claude/rules/common/; language and framework standards load on demand as skills. Each layer is a delta over the one above — no rule is duplicated downward. See .claude/rules/README.md for the taxonomy and the reasoning behind putting language layers in skills/ rather than in scoped rule files. On-demand content is absent in two windows: while a new file is being created,…
In this repository14 other files it gives its agents.
- .claude/rules/common/agents.mdAGENTS.md
- docs/agents.mdAGENTS.md
- standards-<layer>Skill
- add-agentSkill
- add-standards-layerSkill
- audit-configSkill
- plan-featureSkill
- research-reuseSkill
- review-changesSkill
- shipSkill
- standards-fastapiSkill
- standards-pythonSkill
- standards-typescriptSkill
- tddSkill
The file
We split this CLAUDE.md into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 57
No hardcoded secrets: Use environment variables / a secret manager.
- Distinctive: line 59
Validate all input at system boundaries: before use; never trust external data.
≈ “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 Standards
Layered, reusable development standards for Claude Code, packaged as a plugin. This file is always
loaded. The stack-agnostic rules live under .claude/rules/common/; language and framework standards
load on demand as skills.
Map of the repository
CLAUDE.md ← you are here (always loaded entry point)
.claude-plugin/
plugin.json plugin manifest
marketplace.json marketplace catalogue (this repo is its own marketplace)
agents/ 9 specialist subagents (planner, reviewers, tdd-guide, …)
skills/
research-reuse/ workflow: find what already exists before writing code
plan-feature/ workflow: phased implementation plan
tdd/ workflow: RED → GREEN → refactor with a coverage floor
review-changes/ workflow: quality + security review of the current diff
ship/ workflow: pre-commit gate, then a conventional commit
add-standards-layer/ maintenance: scaffold a new language/framework layer
add-agent/ maintenance: scaffold an agent and register it in the roster
audit-config/ maintenance: audit this repo for drift
standards-python/ Python delta over common/
standards-typescript/ TypeScript delta over common/
standards-fastapi/ FastAPI delta over Python
hooks/hooks.json PostToolUse format hook (delegates to scripts/format.sh)
scripts/format.sh self-guarding formatter runner
.claude/
settings.json permission allowlist for the documented toolchain
rules/
README.md taxonomy + how to add a layer
common/ stack-agnostic rules — NO frontmatter → always loaded
_template/ blank canonical stubs to copy when adding a layerHow the layers load
| Layer | Loaded when |
.claude/rules/common/ | Always — no frontmatter |
skills/standards-<language>/ | On demand, when the skill description matches the work |
skills/standards-<framework>/ | On demand, same mechanism, narrower description |
Each layer is a delta over the one above — no rule is duplicated downward. See
.claude/rules/README.md for the taxonomy and the reasoning behind putting
language layers in skills/ rather than in scoped rule files.
On-demand content is absent in two windows: while a new file is being created, and immediately after
/compact. Non-negotiable invariants therefore live in this file and incommon/, never only in a layer.
Security baseline (always applies — including when creating new files)
These hold regardless of which layers are loaded:
- No hardcoded secrets. Use environment variables / a secret manager; validate required secrets at startup.
- Validate all input at system boundaries before use; never trust external data.
- Parameterized queries only — never build SQL by string concatenation.
- Escape/sanitize any user-controlled value rendered into HTML or a shell.
- Never leak sensitive data in errors or logs (credentials, tokens, cookies, auth headers).
Full checklist: .claude/rules/common/security.md.
Core conventions (full text in common/)
- Immutability — return new objects, never mutate in place. (coding-style.md)
- KISS / DRY / YAGNI; small focused files (≤800 lines) and functions (≤50 lines); early returns over deep nesting.
- TDD, 80% coverage minimum — test first (RED → GREEN → refactor). (testing.md)
- Review before merge —
code-reviewer+security-reviewer; block on CRITICAL. (code-review.md) - Research & reuse first — search existing code/libraries before writing new. (development-workflow.md)
Workflow
Research & reuse → plan → TDD → code review → commit. Each step has a skill that executes it:
/research-reuse → /plan-feature → /tdd → /review-changes → /ship.
Agents and orchestration: agents.md — that table is the
authoritative reviewer roster; do not invoke a reviewer that is not listed there. Commits use
<type>: <description> (feat/fix/refactor/docs/test/chore/perf/ci);
git-workflow.md.
Commands referenced by the rules
These appear in the rules and assume the relevant toolchain is installed in the target project:
- Python format/lint:
black,isort,ruff - Python types:
mypy/pyright - Python security scan:
bandit -r <package>/ - Python tests + coverage:
pytest --cov=<package> --cov-report=term-missing - TypeScript format/lint/types:
prettier,eslint,tsc --noEmit - TypeScript tests:
vitest/jest
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.

