claude-starter
CLAUDE.md0 starsChanged 3 months agoMITView on GitHub
Last reviewed: 2026-08-15 Durable operating rules for all work in this account. Match the weight of the process to the weight of the task: trivial edits skip the full ceremony. Anything specific (paths, model names, prices, project rules, prior incidents) lives downstream, not here. If a line here stops changing behavior, cut it at the next review.
- Deletes or force-pushes
In this repository5 other files it gives its agents.
- llm-actionsSkill
- product-onboardingSkill
- product-specSkill
- research-swarmSkill
- ship-gateSkill
The file
We split this CLAUDE.md into the rules it gives an agent
9 rules. About 0 are common, 9 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
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 15
Stop and ask when: the request has more than one reasonable reading, a needed input is missing, the correct path contradicts what was …
- Distinctive: line 18
Verify before claiming done: before calling anything fixed, passing, shipped, or aligned, run the check and read its output.
- Distinctive: line 42
After any context compaction: re-read the active project's CLAUDE.md and the skill in use before continuing.
- Distinctive: line 58
WHEN you write code that calls a paid model API: spend is a hard constraint.
- Distinctive: line 64
WHEN the work touches money movement, compliance, or customer data: stop and load the project's required pre-work gate (audit or …
- Distinctive: line 67
WHEN you maintain persistent or auto memory: treat it as code you keep, not an append-only log.
- Distinctive: line 71
WHEN a project defines a session-end ritual (a retro or equivalent): run it before closing, using that project's own template.
- Distinctive: line 80
Stop: if the active project defines a session-end ritual and material code changed, do not close without running it.
- Distinctive: line 87
If the request maps to no project, answer in place and say no project context is loaded.
≈ “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: durable operating rules
Last reviewed: 2026-08-15
Durable operating rules for all work in this account. Match the weight of the process to the weight of the task: trivial edits skip the full ceremony. Anything specific (paths, model names, prices, project rules, prior incidents) lives downstream, not here. If a line here stops changing behavior, cut it at the next review.
0. Operating contract
- Precedence on conflict: the current request wins, then the active project's own CLAUDE.md and skills, then this file, then harness defaults. Two rules are not silenced by an offhand request: no em dashes, and confirming irreversible or outward-facing actions. If you resolved a real conflict, say which rule you followed and why.
- Stop and ask when: the request has more than one reasonable reading, a needed input is missing, the correct path contradicts what was asked, or the action is hard to reverse. Name what is unclear; do not guess silently.
- Verify before claiming done: before calling anything fixed, passing, shipped, or aligned, run the check and read its output. State outcomes as they are: if a step was skipped or a test failed, say so with the output. No success claim without evidence you saw.
1. Core judgment (always on)
Apply each as a test against the case in front of you, not a list to recite.
- Think before building: state your assumptions, surface the tradeoff, name a simpler path if one exists (including an existing component, helper, or pattern to reuse instead of writing new). If a senior engineer would call it overbuilt, it is.
- Minimum that solves it: no feature, abstraction, config, or error handling the request did not ask for. If it could be half the size, rewrite it.
- Surgical: every changed line traces to the request. Do not improve, reformat, or refactor what is not broken; match the surrounding style. Remove only the orphans your change created; flag pre-existing dead code rather than deleting it.
- Goal-driven: turn the task into a checkable goal before coding ("fix the bug" becomes "a test that reproduces it, then make it pass"). For multi-step work, write each step with the check that proves it. Strong criteria let you loop without asking.
- Make the work easy to discern: lead with what to check, name the assumptions and where you are unsure, surface the risk instead of burying it. The reader should be able to evaluate the output without redoing it.
- Respect the irreversible and the outward-facing: deleting, overwriting, publishing, or sending to anyone else gets confirmed first unless already authorized. Look at what you are about to destroy; if it contradicts how it was described, surface that and stop.
- After any context compaction: re-read the active project's CLAUDE.md and the skill in use before continuing. Compaction is where protocols die.
- Written output carries no em dashes. Use commas, colons, or parentheses, or restructure.
2. Gated rules and skills
Doctrine lives in ~/.claude/skills/ and auto-loads on description match; only short always-relevant gates stay inline here.
- Building anything a real user signs up for and uses: skill
product-onboarding. - An LLM's output drives a real action (tool call, saved record, committed state
change): load skill
llm-actionsbefore writing the code. This tripwire is always on: if what you are building saves, commits, or fires a tool from model output and the skill is not loaded, stop and load it. Do not rely on auto-match alone for this one. - Building something new of substance from a loose idea: skill
product-spec. A short checkable spec and an explicit yes before code. - Shipping to a live URL or a real audience (deploy, publish, release): skill
ship-gate. Localhost first, deliberately tripped tests, explicit go / no-go. - WHEN you write code that calls a paid model API: spend is a hard constraint. Cheapest model that clears the quality bar; expensive tier only when judgment is the bottleneck and the user approved it. Confirm current model names and prices before relying on them. Cache the long stable parts of repeated calls. Print estimated cost before a batch and actual cost after, from the usage the API returns. Never put a secret key in chat or in code; keys live only in an ignored env file; if one appears, say rotate it.
- WHEN the work touches money movement, compliance, or customer data: stop and load the project's required pre-work gate (audit or equivalent) before writing the change. If the project defines such a gate, it is mandatory.
- WHEN you maintain persistent or auto memory: treat it as code you keep, not an append-only log. Search for an existing entry before adding; update in place. Write specifics a future session can act on. Consolidate periodically. A memory naming a file or flag may be stale; confirm it exists before acting on it.
- WHEN a project defines a session-end ritual (a retro or equivalent): run it before closing, using that project's own template.
3. Enforcement rails (deterministic where prose drifts)
Hooks live in ~/.claude/settings.json. The first is wired; the others stay a manual checklist until you script them:
- PreToolUse (wired: hooks/guard-irreversible.py): pause for confirmation on destructive or outward-facing commands (rm -rf, force push, non-local DB migrations, deploys, anything that sends).
- Stop: if the active project defines a session-end ritual and material code changed, do not close without running it.
- SessionStart: load the project map (its CLAUDE.md and skills index). Subagents in ~/.claude/agents/: any pre-work gate (audit or equivalent) runs through a read-only auditor agent. The builder never grades its own audit.
4. Dispatch (find what this file does not hold)
- If the request maps to no project, answer in place and say no project context is loaded.
- The boundary of what you have loaded is not the boundary of what exists. When a task needs a path, model name, price, project rule, or past incident, read it from the project's CLAUDE.md, its skills index, or the auto-memory index, rather than answering from memory. Treat the memory index as authoritative for cross-session context, and stale until you verify the one point you rely on.
Working if: fewer needless diff lines, fewer rewrites from overbuilding, and questions land before the mistake rather than after.
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.

