---
name: julien-dev-claude-md-documenter
version: 1.0.0
description: "Guide for creating CLAUDE.md files. Use when: user asks to create CLAUDE.md, document project, add project instructions, or mentions CLAUDE.md."
category: development
license: Apache-2.0
triggers:
  - "CLAUDE.md"
  - "claude.md"
  - "create CLAUDE.md file"
  - "créer un CLAUDE.md"
  - "document project"
  - "project documentation"
  - "project context"
  - "project instructions"
  - "documenter projet"
  - "documentation projet"
  - "contexte projet"
  - "instructions projet"
  - "create claude"
  - "créer claude"
  - "setup project documentation"
  - "fichier claude.md"
  - "add project context"
---

# CLAUDE.md Documenter

Create effective CLAUDE.md files that give Claude project context without over-documenting.

## What is CLAUDE.md?

## Observability

**First**: At the start of execution, display:
```
🔧 Skill "julien-dev-claude-md-documenter" activated
```

A markdown file that Claude automatically loads at the start of every conversation. It provides project context so you don't have to repeat yourself.

**Location:** `./CLAUDE.md` (project root) or `~/.claude/CLAUDE.md` (global)

## Core Principles

### 1. Keep It Short
- **Target:** 50-200 lines
- **Maximum:** 500 lines
- **Why:** Content is prepended to EVERY message (costs tokens)

### 2. Link, Don't Duplicate
```markdown
❌ Don't:
## API Endpoints
POST /api/users - Creates user...
[50 more endpoints]

✅ Do:
## API
See: docs/api.md or visit /api-docs when running
```

### 3. Project-Specific Only
**Include:**
- Unique workflows
- Critical gotchas
- Common commands
- File structure

**Don't include:**
- Code style (use linters)
- General programming knowledge
- Complete API docs (link to them)

## Minimal Template

```markdown
# [Project Name]

[2 sentences: What is this? What problem does it solve?]

## Tech Stack
- [Primary language/framework]
- [3-5 key dependencies]

Full deps: package.json

## Structure
```
app/        # Routes
components/ # UI
lib/        # Utils
```

## Commands
```bash
npm run dev    # Start dev server
npm test       # Run tests
```

All: Run `npm run` or see package.json

## Important
- [Project-specific gotcha #1]
- [Project-specific gotcha #2]

## References
- Architecture: [link]
- Contributing: CONTRIBUTING.md
- Style: .eslintrc
```

## Best Practices

**Source:** [Anthropic Engineering - Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices)

1. **~150-200 instructions max** - LLMs can follow ~150 instructions reliably
2. **Avoid code style rules** - "Never send an LLM to do a linter's job"
3. **Iterate over time** - Start minimal, add only what Claude misses
4. **Be specific** - "Run `npm test` before commit" > "Test your code"
5. **Provide motivation** - Explain WHY, not just WHAT

## File Locations

```
~/.claude/CLAUDE.md              # Global (lowest priority)
/project/CLAUDE.md                # Project root
/project/packages/api/CLAUDE.md   # Subdirectory (highest priority)
```

Closer to working directory = higher priority.

## Common Mistakes

❌ **Too long** - 1000+ lines nobody reads
❌ **Duplicates docs** - Repeats README, API specs
❌ **Code style rules** - That's what linters are for
❌ **General knowledge** - Claude already knows React basics

## Quick Start

1. Create `CLAUDE.md` in project root
2. Start with the minimal template above
3. Fill in only unique project details
4. Link to existing docs (don't duplicate)
5. Keep under 200 lines

## External Resources

**Official:**
- [Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices)
- [Using CLAUDE.MD Files](https://www.claude.com/blog/using-claude-md-files)
- [Prompting Best Practices](https://docs.claude.com/en/docs/build-with-claude/prompt-engineering/claude-4-best-practices)

**Community:**
- [Writing a Good CLAUDE.md - HumanLayer](https://www.humanlayer.dev/blog/writing-a-good-claude-md)
- [Complete Guide - Sid Bharath](https://www.siddharthbharath.com/claude-code-the-complete-guide/)

**More:** See [references/external-resources.md](references/external-resources.md)

## Usage

When user asks to create/improve a CLAUDE.md:

1. Ask about their project (tech stack, structure, key workflows)
2. Use the minimal template above
3. Fill in only project-specific details
4. Point to existing docs (README, CONTRIBUTING, etc.)
5. Keep it under 200 lines
6. Remind: iterate based on usage

## Skill Chaining

### Skills Required Before
- None (entry point skill)

### Input Expected
- User request to create/improve CLAUDE.md
- Project context (tech stack, structure, workflows)
- Optional: existing CLAUDE.md to improve

### Output Produced
- **Format**: CLAUDE.md file in project root
- **Side effects**: Creates or modifies CLAUDE.md
- **Duration**: 5-10 minutes

### Compatible Skills After
**Recommandés:**
- **julien-dev-tools-skill-creator-pro**: If creating project-specific skills
- Git workflow: Commit the new CLAUDE.md

### Called By
- Direct user invocation: "Create a CLAUDE.md", "Improve my CLAUDE.md"
- New project setup workflows

### Tools Used
- `Read` (usage: read existing CLAUDE.md, README, package.json)
- `Write` (usage: create/update CLAUDE.md)
- `Glob` (usage: discover project structure)

### Visual Workflow

```
User: "Create CLAUDE.md for this project"
    ↓
[THIS SKILL]
    ├─► Ask about project (tech, structure)
    ├─► Use minimal template
    ├─► Fill project-specific details
    ├─► Link to existing docs
    └─► Keep under 200 lines
    ↓
CLAUDE.md created
    ↓
[Optional] Git commit
```

### Usage Example

**Scenario**: Create CLAUDE.md for a React project

**Command**: "Create a CLAUDE.md for this project"

**Result**:
- CLAUDE.md created with ~100 lines
- Tech stack, structure, commands documented
- Links to README, CONTRIBUTING for details

---

**Remember:** The best CLAUDE.md is concise, specific, and links to details instead of duplicating them.
