Document — Generate Module Context File
Purpose
Analyze a module's actual code and produce a CLAUDE.md context file for that directory. Claude Code auto-loads these when working in the directory; other AI tools benefit from them as readable documentation. The goal is practical context — not comprehensive documentation, but what someone (or an AI) needs to work here effectively.
When to Use
- A module has no context file and you're about to work in it
- After
/learnidentifies a documentation gap - When existing documentation is outdated after significant changes
- When onboarding to an unfamiliar area of the codebase
Workflow
Step 1: Scope
Identify the module to document. If the user didn't specify a path, ask.
The output is a single CLAUDE.md file placed at the root of that module's directory.
Step 2: Analyze
Read all source files in the module and extract:
- Purpose — What does this module do? What problem does it solve?
- Architecture — What pattern is it using? What are the key components and their roles?
- Data flow — How does data enter, get processed, and leave? Trace the 2-3 most important operations.
- Public interface — What does this module expose to the rest of the codebase? Key functions, classes, endpoints, exports.
- Dependencies — What does it depend on? What depends on it?
- State — What state does it manage? How does it change?
- Edge cases and gotchas — Non-obvious behavior, fragile areas, missing tests, known bugs. Check for TODO/FIXME/HACK comments.
Step 3: Write
Generate the CLAUDE.md at the module root. Adapt the structure to what's actually there — not every section applies to every module.
# [Module Name]
[One-paragraph summary: what it does, why it exists, how it fits in the project]
## Architecture
[Key components, their roles, how they connect. Adapt to the actual pattern — don't force a template.]
## Data Flow
[How the 2-3 most important operations work, from input to output]
## Public Interface
[What this module exposes — key functions, classes, endpoints, types]
## Dependencies
**Uses:** [what this module depends on]
**Used by:** [what depends on this module]
## Caution
[Gotchas, fragile areas, missing tests, non-obvious behavior, known bugs. Skip if none found.]
## Common Tasks
### How to [add/modify/debug common thing]
1. [Step with file path]
2. [Step]
3. Verify: [how to test]
[Add 2-3 task guides for the most common operations. Skip if not applicable.]
Step 4: Verify
- Confirm the file is at the right path (module root, not project root)
- Check that file paths and names referenced in the doc actually exist
- Keep it concise: 100-300 lines for most modules, up to 500 for complex ones
Step 5: Update Root Context (if needed)
If documenting the module revealed new project-level insights (architecture patterns, vocabulary, module relationships), update the root context files that exist:
CLAUDE.md— Claude CodeAGENTS.md— Universal.github/copilot-instructions.md— VS Code Copilot
Only update sections that are affected (Module Map, Vocabulary, Architecture). Don't rewrite unchanged sections.
Output Summary
## Documentation Generated
**Module:** [name]
**File:** [path to CLAUDE.md]
**Sections:** [list of sections included]
**Lines:** [count]
**Root context updated:** [yes/no — what changed, if applicable]
Notes
- This skill is language-agnostic — adapts to whatever architecture exists
- Write from the code, not from assumptions — read the module's source files before documenting
- Be practical: "how to add X" guides are more valuable than abstract descriptions
- Be honest: document gotchas and known issues, not just happy paths
- Skip sections that don't apply — a small, accurate doc beats a comprehensive stale one
- The Caution section is the most important part for preventing friction — prioritize it
- If the module already has a CLAUDE.md, update it rather than overwriting
