Write a Minimal, High-Leverage CLAUDE.md

Added Dec 1, 2025
Article: PositiveCommunity: PositiveMixed
Write a Minimal, High-Leverage CLAUDE.md

CLAUDE.md should onboard Claude to your codebase with only the essential and universally relevant WHY/WHAT/HOW. Because instruction-following declines with instruction count (and the harness already adds many), keep it short and rely on Progressive Disclosure for task-specific details via separate, referenced docs. Use linters/formatters and hooks instead of stuffing style rules into CLAUDE.md, and avoid auto-generating this high-leverage file.

Key Points

  • LLMs are stateless; CLAUDE.md is the persistent, session-wide way to onboard the agent with your project’s WHY/WHAT/HOW.
  • Claude often ignores CLAUDE.md if it’s not clearly relevant; include only universally applicable information.
  • Instruction-following degrades as instructions increase; keep CLAUDE.md very concise, given the harness already adds ~50 instructions.
  • Use Progressive Disclosure: keep task-specific guidance in separate docs and reference them via pointers instead of copying content.
  • Don’t use CLAUDE.md as a linter; rely on deterministic tools (linters/formatters, hooks, slash commands), and avoid auto-generating CLAUDE.md.

Sentiment

The community is generally supportive of the article's core thesis that CLAUDE.md should be minimal and data-driven. The praise centers on the instruction-following research and the practical progressive disclosure approach. However, there is meaningful pushback from two camps: those who believe CLAUDE.md is unnecessary entirely (just write good docs), and those who have found success with larger, more detailed files. The overall tone is constructive and experience-sharing rather than hostile.

In Agreement

  • The 'Mr. Tinkleberry' canary test validates the article's claim that Claude stops following instructions as CLAUDE.md grows — keeping it minimal is essential for reliability
  • Progressive disclosure via directory-specific CLAUDE.md files and pointers to separate docs is the most effective way to provide rich context without overwhelming the model's instruction budget
  • The research graph showing instruction-following quality degrades uniformly with instruction count is a genuinely novel and useful data point that most developers haven't seen before
  • Code style rules belong in deterministic linters and formatters, not in CLAUDE.md — hooks and slash commands can enforce this without burning context
  • Claude Code's system-reminder injection explains why CLAUDE.md sometimes gets ignored, making the case for brevity even stronger

Opposed

  • CLAUDE.md is unnecessary if you simply document your code well — good README files, inline comments, and standard engineering practices give LLMs all the context they need
  • The only good Claude.md is a deleted Claude.md — the entire concept of writing special instructions for an LLM is a waste of engineering effort
  • Large, detailed CLAUDE.md files with targeted context for agents, hooks, and skills work well in practice, contradicting the minimalist thesis
  • Newer frontier models like Opus 4.5 already infer coding style and preferences from existing code, making explicit CLAUDE.md instructions increasingly redundant
  • Prompt instability across model versions means any carefully crafted CLAUDE.md may break when models are updated, undermining the investment in hand-crafting it
  • The article lacks a concrete example of an actual good CLAUDE.md, which is what most readers actually want
Write a Minimal, High-Leverage CLAUDE.md | TD Stuff