From Writing CLAUDE.md
Use when creating or updating CLAUDE.md, AGENTS.md, or project context files for LLMs. Use when the user asks to document their project, improve project context, or reduce re-explanation across sessions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/writing-claude-md:writing-claude-mdThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
CLAUDE.md is project context for an LLM that already knows every framework, language, and tool. Its only job: teach what the code CAN'T.
CLAUDE.md is project context for an LLM that already knows every framework, language, and tool. Its only job: teach what the code CAN'T.
For every line, ask: "Can an LLM learn this by reading the code?"
npm run dev, rails server, go run . are universal → omit "how to run"If yes → delete it. The LLM reads files. You're wasting tokens and creating maintenance debt.
Only things invisible from the code:
| Category | Example (language-agnostic) |
|---|---|
| Gotchas | "Admin panel uses its own JS bundle — framework components won't mount there" |
| Non-obvious defaults | "Auth middleware skips verification in test — all requests pass as admin" |
| Hidden coupling | "Config reads from env var SECRET which is set by the CI, not the code" |
| Custom conventions | "Local fork of upstream lib at ../upstream, revert before release" |
| Derivation gaps | "The router macro silently overrides handler methods — inline your logic" |
| Non-standard setup | "Two separate build configs: one for the app, one for the admin dashboard" |
ls or find)README.md# One-line summary
## Stack highlights
Only non-standard choices. Not every dependency — just the ones with gotchas.
## Gotchas & conventions
Grouped by subsystem. Each entry: what it is + WHY it matters to working here.
## Key files (optional)
Only files where PURPOSE isn't obvious from the path. Don't list every file.
Aim for under 60 lines. More than that and you're documenting what the code already says.
| Mistake | Fix |
|---|---|
| Listing routes | Read the router file instead |
| Documenting model fields | Read the schema/model instead |
| Explaining what libraries do | LLM knows. Only note non-default config. |
| "How to run" section | LLM knows the platform's dev command |
| Test tool listing | Only note project-specific conventions (e.g. "Chrome required for E2E") |
| Too many key files | If the path is self-explanatory, skip it |
## Stack
- **React 18**, **TypeScript 5**, **Vite**
- **Vitest** — test runner
- **Playwright** — E2E tests
- **Prisma** — ORM
## Routes
/ → HomePage
/settings → SettingsPage
...
## Development
- `npm run dev` starts the dev server
- `npm test` runs tests
## Stack highlights
- **Prisma** — migrations are manually written SQL, not generated
## Gotchas
- Admin panel is a separate Vite build — shared components need explicit exports
- Auth middleware returns 200 (not 401) for unauthenticated API calls (legacy clients)
- Local instance of `shared-ui` at `../shared-ui` via `file:` protocol
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.
npx claudepluginhub codxse/case-solvers --plugin writing-claude-md