claude / user
CLAUDE.md18 starsChanged 25 days agoMITView on GitHub
Before adding a skill, hook, rule, or CLAUDE.md line, define what evidence shows it works, what shows it doesn't, and where that evidence surfaces. Override a Claude Code default only as an experiment with removal criteria. Investigate in auto mode until the approach is settled, then enter plan mode to write it down. When I ask for a plan and something is still open, tell me what you're resolving and resolve it first. Inside an isolated worktree, write files with…
- Commits and pushes
In this repository4 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- agent-ideasSkill
- cliSkill
- prose-labSkill
The file
We split this CLAUDE.md into the rules it gives an agent
11 rules. About 0 are common, 5 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 5
Don't join independent clauses with semicolons or em dashes.
- Distinctive: line 8
Don't hard-wrap markdown prose you author.
- Distinctive: line 10
Put explanation of code you're writing in a message before the edit.
- Very specific: line 15
Don't create or extend catch-all modules like utils.
- Distinctive: line 17
Don't number steps or phases in code ("Phase 1:", "Step 2:").
- Very specific: line 21
Before adding a skill, hook, rule, or CLAUDE.md line, define what evidence shows it works, what shows it doesn't, and where that evidence …
- Very specific: line 26
Prefer analyst over general-purpose for read-only spawns.
- Very specific: line 27
When debugging Claude Code itself (harness, classifier, hooks, plugins, startup), launch the observed session with DEBUG_SDK=1 claude, …
- Distinctive: line 37
Never git push to the default branch unless I say so.
- Very specific: line 39
Write commit messages with one -m per paragraph, or a heredoc for complex ones.
- Very specific: line 40
Update a checkout with git merge --ff-only <ref>.
≈ “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
Style
- Don't join independent clauses with semicolons or em dashes. End the sentence instead. A colon or other connector in their place is not a fix.
- Wrap filenames and code identifiers with
backticksin any markdown context. - In chat replies, write PR, issue, MR, and tracker-key (
ABC-123) references as links, like[dotfiles#827](https://github.com/bendrucker/dotfiles/pull/827), because the terminal doesn't autolink them. Take the URL thatgh,glab, or the tracker tool printed, or build it from the repo's remote. With no known URL, keep the bare ID. - Don't hard-wrap markdown prose you author. In an existing file, follow its wrapping.
- Include a trailing newline in all new files.
- Put explanation of code you're writing in a message before the edit.
- Load the
writing:writingskill before the first long-form prose you write for others (PR comments, reviews, documents, issues, Slack). One load covers the session.
Organization
- Don't create or extend catch-all modules like
utils. Name modules for what they hold. - Split code into files before splitting it across directories.
- Don't number steps or phases in code ("Phase 1:", "Step 2:"). Use descriptive function names called in sequence.
Customizations
Before adding a skill, hook, rule, or CLAUDE.md line, define what evidence shows it works, what shows it doesn't, and where that evidence surfaces. Override a Claude Code default only as an experiment with removal criteria.
Workflow
- A skill that instructs a subagent fan-out or background dispatch carries my authorization for
Agent. Run it as written. WhenAgentis absent, run it inline and say so. - Prefer
analystovergeneral-purposefor read-only spawns. Passmodel: haikufor pure lookup. - When debugging Claude Code itself (harness, classifier, hooks, plugins, startup), launch the observed session with
DEBUG_SDK=1 claude, which writes~/.claude/debug/<session-id>.txt. Set it in the launch environment, since Claude Code ignores it insettings.jsonenv. - Open a PR with
pull-request:create, or with an empty body when it's unavailable. Open PRs ready for review. Use draft only for speculative changes. - Send build output to
/dev/null. Store temporary files intmp/.
Planning
Investigate in auto mode until the approach is settled, then enter plan mode to write it down. When I ask for a plan and something is still open, tell me what you're resolving and resolve it first.
Git
- Never
git pushto the default branch unless I say so. - Name topic branches short and hyphenated.
- Write commit messages with one
-mper paragraph, or a heredoc for complex ones. Wrap bodies at ~72 columns. - Update a checkout with
git merge --ff-only <ref>. Revert your own edits withgit restore <path>. Run a tree-wide reset, checkout, or clean only when I name it.
Worktrees
Inside an isolated worktree, write files with Write or Edit and keep each Bash command a single plain command. The isolation guard refuses heredocs, $(...), loops, and a cd into the main checkout before git.
Claude Configuration
My Claude Code setup lives in bendrucker/claude. The ~/.claude symlinks point into ~/.claude-repo, a deployed clone of main, so an edit through the symlinks lands outside any branch. Settings that apply everywhere live in managed/settings.json, installed as managed settings. user/settings.json is the local machines' user file, and platforms/local/ and platforms/remote/ hold the entries a local machine or a remote session links in place of or beside user/'s. Project-scoped .claude/ directories stay with their repo.
Dotfiles
Machine setup lives in bendrucker/dotfiles. Anything the machine or shell must provide needs a merged dotfiles PR first, because the Claude repo installs nothing. That covers binaries, $PATH entries, aliases and functions, exported env vars, install steps, symlinks, launchd agents, macOS permission grants, and recurring jobs. Claude-only env vars go in settings.json instead.
Personal Details
My username is @bendrucker. Refer to actions by that user as "you."
@~/.claude/platform.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.

