skills/claude-md-authoring/SKILL.md
Creates and reviews CLAUDE.md configuration files for Claude Code. Applies HumanLayer guidelines including instruction budgets (~50 user-level, ~100 project-level), WHAT/WHY/HOW framework, and progressive disclosure. Identifies anti-patterns like using Claude as a linter for style rules.
npx skillsauth add ratacat/claude-skills claude-md-authoringInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
~/.claude/) or project-level (.claude/)?"The only thing that the model knows about your codebase is the tokens you put into it."
CLAUDE.md is the highest-leverage point for context transfer. Every instruction competes for limited attention. Include only what Claude cannot infer and must apply universally.
~/.claude/CLAUDE.md)Applies to ALL projects. Include only:
Never include:
.claude/CLAUDE.md)Applies to ONE project. Use the WHAT/WHY/HOW framework:
WHAT (2-5 lines)
WHY (optional, 2-3 lines)
HOW (3-7 lines)
LLMs reliably follow ~150-200 instructions. Claude Code's system prompt uses ~50, leaving limited budget.
| Scope | Target | Maximum | |-------|--------|---------| | User-level | ~30-40 | 60 | | Project-level | ~50-80 | 120 | | Combined | ~80-120 | 150 |
Counting instructions: Each actionable directive counts as one instruction.
❌ Never rely on Claude for style enforcement:
✓ Use deterministic tools instead:
Why this matters: LLMs follow style rules inconsistently. A linter fails deterministically; Claude fails silently and unpredictably.
Exception: High-level philosophy is acceptable:
For complex guidance, don't embed everything in CLAUDE.md.
Pattern: Reference external docs, let Claude decide relevance.
## Reference Documentation
- Code conventions: See `docs/conventions.md`
- API patterns: See `docs/api-design.md`
- Testing philosophy: See `docs/testing.md`
Read these when the task involves the relevant area.
Benefits:
[Opening persona/philosophy - 1-2 lines]
## Working Together
[Relationship dynamics, communication preferences]
## Proactiveness
[When to proceed vs. pause for confirmation]
## Development Philosophy
[Universal principles: YAGNI, debugging approach, etc.]
## Guardrails
[Version control, testing principles - kept brief]
## Project Overview
[WHAT: Purpose, stack, structure]
## Development
[HOW: Build, test, lint commands]
## Architecture
[WHY: Key decisions, constraints - if non-obvious]
## Conventions
[Brief pointers to detailed docs if needed]
Before finalizing, verify:
/init instead of hand-craftingBefore (problematic user-level):
## Naming
NEVER use names like ZodValidator, MCPWrapper, JSONParser...
[20 more lines of specific examples]
## Comments
All files MUST start with ABOUTME: header...
After (improved user-level):
## Code Style
Names should describe purpose, not implementation details.
Use project linters for formatting; don't rely on manual enforcement.
Why better: Philosophy over specifics. Linter handles enforcement deterministically.
After authoring CLAUDE.md:
~/.claude/CLAUDE.md or place directly.claude/CLAUDE.md in repository roottools
Build and test iOS apps on simulator using XcodeBuildMCP
development
Produces concise, clear documentation by applying Elements of Style principles. Use when writing or improving any technical documentation (READMEs, guides, API docs, architecture docs). Not for code comments.
testing
Use when user asks to create, write, edit, or test a skill. Also use when documenting reusable techniques, patterns, or workflows for future Claude instances.
testing
Execute work plans efficiently while maintaining quality and finishing features