claude-code-starter-kit
CLAUDE.md9 starsChanged 51 days agoMITView on GitHub
Claude Code reads this first every session. The four @-imports below auto-load the working rules, the running handover, the lessons database, and the task board — always in context, re-injected from disk after every compaction. Keep this file lean (< ~200 lines); push sometimes-relevant knowledge into .claude/skills/ and deterministic checks into .claude/hooks/. Fill in the <...> blanks. @rules.md @HANDOVER.md @LESSONS.md @TASKS.md
- Reads credentials
In this repository17 other files it gives its agents.
- keel-adoptSkill
- keel-agent-team-createSkill
- keel-agent-team-startSkill
- keel-auditSkill
- keel-autopilotSkill
- keel-compactSkill
- keel-continueSkill
- keel-distillSkill
- keel-handoverSkill
- keel-phase-reviewSkill
- keel-pilotSkill
- keel-planSkill
- keel-researchSkill
- keel-statsSkill
- keel-teamSkill
- keel-tidySkill
- keel-updateSkill
The file
We split this CLAUDE.md into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
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
- Very specific: line 14
Start: run /keel-continue (cross-checks the loaded memory against PLAN.md + git, then RESUMES half-done work, TAKES the lane's next …
- Very specific: line 41
NO hard-coding. Secrets + machine-local values come from .env (key list: .env.example).
- Very specific: line 58
Every structural change → docs/architecture.md.
≈ “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.md — <PROJECT NAME> project constitution (TEMPLATE)
Claude Code reads this first every session. The four
@-imports below auto-load the working rules, the running handover, the lessons database, and the task board — always in context, re-injected from disk after every compaction. Keep this file lean (< ~200 lines); push sometimes-relevant knowledge into.claude/skills/and deterministic checks into.claude/hooks/. Fill in the<...>blanks.
@rules.md @HANDOVER.md @LESSONS.md @TASKS.md
Session protocol (rules.md §9)
- Start: run
/keel-continue(cross-checks the loaded memory against PLAN.md + git, then RESUMES half-done work, TAKES the lane's next assigned item via the comprehension gate, or reports IDLE) — or by hand: read the TOP block ofHANDOVER.md+LESSONS.md+TASKS.md ## Now+ recentgit log; pick ONE## Nowitem; verify tests pass before new work. - During: the moment a rule / must-run test / gotcha / failed approach is agreed or discovered — ask
"shall I note this?" and append it to
LESSONS.mdimmediately (don't wait for compaction). - End (or before compact):
/keel-handover(new HANDOVER block) · delete done TASKS items · commit with approval. If any memory file exceeds its cap →/keel-distill. About to compact manually? Run/keel-compact— it bundles all of the above, verifies freshness, then hands off to/compact. - When compacting, always preserve: the list of modified files, open
TASKS.md ## Nowitems, test commands, and any agreement not yet written toLESSONS.md(write it there first).
What we're building
<Purpose of the project in 2-3 sentences. What problem it solves, who uses it.>
Architecture (summary)
<Components and how they talk to each other. E.g.: API (FastAPI) + Worker + DB + Vector DB + LLM. A text diagram.>
Key decisions (ADRs in docs/adr/)
- <ADR-0001: ...>
- <ADR-0002: ...>
(Every significant technical decision becomes an ADR; copy
docs/adr/0000-adr-template.md.)
Stack & versions
<Languages, frameworks, libraries — with exact versions (rules.md §7: pinning).>
Configuration
NO hard-coding. Secrets + machine-local values come from .env (key list: .env.example); non-secret
parameters from config/<env>.yaml selected by ENV (see config/README.md).
Commands
<setup / run / test / migration commands — also wired into the Makefile>Conventions
- All application code lives under the source tree (
src/<app|package>/perdocs/layouts.md) — never loose at the repo root; the root holds only the discipline/config scaffold. New modules →src/. - Runtime LLM prompts (LLM apps only) live in versioned files under
src/and are read from disk — code never embeds prompt strings. (Prompts that steer Claude Code go in.claude/skills/or.claude/agents/, not here.) - Reusable Claude Code workflows live in
.claude/skills/<name>/SKILL.md(e.g./keel-handover,/keel-phase-review). - Side tasks that would clutter the thread run as subagents in
.claude/agents/(e.g.researcher,verifier). Which mechanism for what (skill vs subagent vs rule vs hook) →docs/steering.md. - Throwaway/experimental code only in
scratch/<subfolder>/, with a 1-line purpose comment at the top. - Every structural change →
docs/architecture.md. Every phase end → docs + HANDOVER.md (approved commit+push). - Tests live in
tests/{unit,integration,e2e,fixtures}/. Detailed rules:rules.md. - Enforcement lives in
.claude/:settings.jsonpermissions +hooks/(block dangerous/secret commands, handover reminder, pre-compact snapshot, session-start re-ground). Rules are guidance; hooks/permissions are enforced.
Directory map
See docs/architecture.md (live module map).
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.

