| name | docs-generator |
| description | Comprehensive documentation generation through automated codebase analysis, pattern detection, and diagram creation. |
Purpose
Generate comprehensive, up-to-date documentation by analyzing the codebase to:
- Detect architectural patterns AND exceptions/outliers
- Document high-level architecture and low-level implementation details
- Analyze feature structures (core vs domain features)
- Map state management patterns (Redux, Sagas, Slices)
- Document component patterns and organization
- Generate Mermaid diagrams for visual understanding
- Create organized, navigable documentation structure
- Output to date-based directories (
docs/YYYY-MM-DD/)
Problem Solved: After major refactoring, documentation becomes obsolete. This skill regenerates comprehensive documentation automatically by analyzing the actual codebase, ensuring docs always match reality.
Target Audience: Developers who will use this React template as a starter for their projects.
Scope
- Analyzes entire codebase structure
- Detects patterns in:
- Feature organization (feature-model architecture)
- State management (Redux Toolkit + Redux Saga)
- Component patterns and hooks abstraction
- Dependency injection and interfaces
- Business logic separation
- Testing patterns
- Generates multiple organized documentation files (NOT one god file)
- Creates Mermaid diagrams for architecture visualization
- Outputs to
docs/YYYY-MM-DD/(same day overwrites) - Incremental generation: analyze one feature at a time
Documentation Structure
docs/YYYY-MM-DD/
├── README.md # Main navigation and overview
├── architecture/
│ ├── README.md # Architecture overview
│ ├── feature-model-pattern.md # Core architectural pattern
│ ├── dependency-injection.md # DI and interface pattern
│ ├── state-management.md # Redux/Saga patterns
│ ├── business-logic-separation.md # ActionEffects pattern
│ └── diagrams/
│ ├── architecture-overview.mmd
│ ├── feature-structure.mmd
│ ├── data-flow.mmd
│ └── dependency-graph.mmd
├── features/
│ ├── README.md # Features overview
│ ├── core/
│ │ ├── README.md # Core features summary
│ │ ├── app.md # Application bootstrap
│ │ ├── i18n.md # Internationalization
│ │ ├── router.md # Routing infrastructure
│ │ ├── slice-manager.md # Redux slice lifecycle
│ │ └── ui.md # Design system
│ └── domain/
│ ├── README.md # Domain features summary
│ ├── wallet.md # Wallet feature (3 models)
│ ├── oauth.md # OAuth feature (1 model)
│ └── blog-demo.md # Blog demo (2 models)
├── patterns/
│ ├── README.md # Patterns overview
│ ├── component-patterns.md # Component organization
│ ├── hook-patterns.md # Custom hooks patterns
│ ├── testing-patterns.md # Test organization
│ └── code-quality.md # Code quality patterns
├── guides/
│ ├── README.md # Guides overview
│ ├── getting-started.md # Quick start guide
│ ├── adding-new-feature.md # How to add domain feature
│ ├── creating-new-model.md # How to add model to feature
│ ├── testing-guide.md # Testing best practices
│ └── deployment.md # Deployment guide
└── api-reference/
├── README.md # API reference overview
├── hooks.md # All custom hooks
├── services.md # Service implementations
├── types.md # Important type definitions
└── utilities.md # Utility functions
Analysis Scripts
Each script performs specific analysis and generates structured data for documentation.
1. Feature Analysis (analyze_feature.mjs)
Purpose: Analyze a single feature's structure, patterns, and implementation.
What it detects:
- Feature category (core vs domain)
- Models (for domain features)
- Directory structure and organization
- Interfaces and their relationships
- Redux slice structure
- Saga patterns and action effects
- Component organization
- Hook abstractions
- Exception cases and outliers
Output: JSON structure with feature metadata
Usage:
node ./.claude/skills/docs-generator/scripts/analyze_feature.mjs <feature-name>
2. Architecture Analysis (analyze_architecture.mjs)
Purpose: Analyze overall architectural patterns across all features.
What it detects:
- Feature dependency graph
- Core vs domain feature relationships
- Composition root pattern usage
- Dependency injection patterns
- Interface architecture patterns
- Common patterns across features
- Architectural outliers/exceptions
Output: JSON structure with architecture metadata
3. State Management Analysis (analyze_state_management.mjs)
Purpose: Analyze Redux/Saga patterns and state structure.
What it detects:
- Redux slice organization
- Saga patterns (takeEvery, takeLatest, etc.)
- Action creator patterns
- State shape and nesting
- Selector patterns
- Business logic location (actionEffects)
Output: JSON structure with state management patterns
4. Component Analysis (analyze_components.mjs)
Purpose: Analyze React component patterns.
What it detects:
- Component organization by feature
- Hook usage patterns (useActions, useTypedSelector)
- Component composition patterns
- Props interfaces
- HOC usage
- Storybook coverage
Output: JSON structure with component patterns
5. Diagram Generation (generate_diagrams.mjs)
Purpose: Generate Mermaid diagrams for visual documentation.
Diagrams generated:
- Architecture overview (features and relationships)
- Feature structure (model-based organization)
- Data flow (Redux → Saga → API)
- Dependency graph (feature dependencies)
- State shape (Redux store structure)
Output: .mmd files in docs/YYYY-MM-DD/architecture/diagrams/
6. Main Documentation Generator (generate_docs.mjs)
Purpose: Orchestrate all analysis scripts and generate final documentation.
Process:
- Run all analysis scripts
- Collect structured data (JSON)
- Apply documentation templates
- Generate markdown files
- Create diagrams
- Output to
docs/YYYY-MM-DD/
Usage:
# Generate full documentation
node ./.claude/skills/docs-generator/scripts/generate_docs.mjs
# Generate for specific feature only
node ./.claude/skills/docs-generator/scripts/generate_docs.mjs --feature wallet
Incremental Generation Strategy
As requested, documentation generation should be incremental (one feature at a time):
Phase 1: Core Infrastructure
- Analyze
app/feature (composition root, providers) - Analyze
i18n/feature (internationalization) - Analyze
router/feature (routing) - Analyze
slice-manager/feature (Redux lifecycle) - Analyze
ui/feature (Mantine theme)
Phase 2: Domain Features (Examples)
- Analyze
wallet/feature (3 models: provider, network, account) - Analyze
oauth/feature (1 model: session) - Analyze
blog-demo/feature (2 models: post, author)
Phase 3: Cross-Cutting Concerns
- Architecture patterns (dependency injection, interfaces)
- State management patterns (Redux/Saga)
- Component patterns (hooks abstraction)
- Testing patterns
Phase 4: Diagrams
- Architecture overview diagram
- Feature structure diagrams
- Data flow diagrams
- Dependency graphs
Phase 5: Guides
- Getting started guide
- Adding new feature guide
- Creating new model guide
- Testing guide
Pattern Detection
The analysis scripts should detect both common patterns and exceptions/outliers.
Common Patterns (Expected)
Feature-Model Pattern
- Domain features have
models/directory - Each model has own directory
- Model structure:
IModelApi.ts,actions.ts,slice.ts,actionEffects/,types/ - Root has
IFeatureApi.ts,slice.ts(combineReducers),sagas.ts
Business Logic Separation
- All business logic in
actionEffects/(Redux Saga) - Slices are pure state containers
- Components are pure presentation
Interface Architecture
- Models define interfaces:
IModelApi.ts - Root combines:
IFeatureApi.ts extends IModel1Api, IModel2Api - Services implement interfaces
- ActionEffects receive injected APIs
Component-Hook Abstraction
- Components use feature hooks (NOT Redux directly)
- Each feature has
hooks/withuseActionsand state hooks - NO direct
useDispatch()oruseSelector()in components
Outliers/Exceptions (Detected)
Core Features
- Do NOT follow model pattern (specialized structures)
app/,i18n/,router/,slice-manager/,ui/- Each has unique structure optimized for its purpose
Single Model Features
- Some features may have only ONE model
- Still must follow directory structure:
models/session/ - Example:
oauth/has onlysessionmodel
Composition Root
src/features/app/config/is special exception- Can import anything (services, model internals, etc.)
- This is intentional for dependency injection
Special Cases
- Storybook files: require default exports (exception to rule)
- Type definition files: may use "any" type (exception)
- Test files: different structure and rules
Documentation Templates
Templates provide structure for consistent documentation generation.
Feature Template
# {Feature Name}
**Category:** {Core | Domain}
**Models:** {List of models or "N/A"}
**Purpose:** {Brief description}
## Overview
{Detailed description of feature purpose and responsibility}
## Structure
{Directory tree}
## Models
{For domain features - document each model}
### {Model Name}
**Purpose:** {Model responsibility}
**State:** {State shape}
**Actions:** {Key actions}
**Business Logic:** {ActionEffects overview}
## API
### Hooks
- `use{Feature}()` - {Description}
- `use{Feature}Actions()` - {Description}
### Interfaces
- `I{Feature}Api` - {Description}
- `I{Model}Api` - {Description}
## Usage Example
```typescript
{Code example}
Implementation Details
{Key implementation patterns}
Testing
{Testing patterns for this feature}
## Architecture Pattern Template
```markdown
# {Pattern Name}
## Overview
{Pattern description and purpose}
## Problem Solved
{What problem this pattern solves}
## Implementation
{How it's implemented in this codebase}
## Examples
{Real examples from codebase}
## Benefits
{Why this pattern is used}
## Common Pitfalls
{Things to avoid}
Process
Step 1: Invoke Skill
User invokes: docs-generator skill
Step 2: Initial Setup
- Check if
docs/directory exists, create if needed - Determine date-based output directory:
docs/YYYY-MM-DD/ - If same day directory exists, confirm overwrite with user
- Create output directory structure
Step 3: Feature Analysis (Incremental)
Start with ONE feature (as requested by user):
# Example: Start with wallet feature
node ./.claude/skills/docs-generator/scripts/analyze_feature.mjs wallet
This generates:
- Feature structure analysis (JSON)
- Model documentation (if domain feature)
- Hook documentation
- Component documentation
- Feature-specific diagram
Step 4: Expand to All Features
Once single-feature generation works:
# Generate all features
node ./.claude/skills/docs-generator/scripts/generate_docs.mjs --all
Step 5: Architecture Analysis
node ./.claude/skills/docs-generator/scripts/analyze_architecture.mjs
Generates:
- Architecture overview
- Pattern documentation
- Dependency graphs
- Architectural diagrams
Step 6: Generate Guides
node ./.claude/skills/docs-generator/scripts/generate_guides.mjs
Generates:
- Getting started guide
- How-to guides
- Best practices
- API reference
Step 7: Verification
- Check all files generated successfully
- Verify Mermaid diagrams render correctly
- Check internal links work
- Validate markdown formatting
Output Format
Documentation Generation Report
================================================================================
Analysis Phase:
✅ Feature Analysis: 8 features analyzed
✅ Architecture Analysis: Complete
✅ State Management Analysis: Complete
✅ Component Analysis: Complete
Generation Phase:
✅ Feature Documentation: 8 files generated
✅ Architecture Documentation: 5 files generated
✅ Pattern Documentation: 4 files generated
✅ Guides: 5 files generated
✅ API Reference: 4 files generated
✅ Diagrams: 5 Mermaid diagrams generated
Output: docs/2025-11-02/
Summary:
- Total Files: 31
- Total Diagrams: 5
- Features Documented: 8 (5 core, 3 domain)
- Patterns Documented: 4 core patterns
✅ Documentation generation complete!
Tools
- Bash: Run Node.js analysis scripts
- Read: Read source files for analysis
- Write: Generate documentation files in
docs/YYYY-MM-DD/ - Glob: Find files by pattern for analysis
- Grep: Search for code patterns
Safety
- Read-only analysis (except documentation output)
- No source file modifications
- No external network calls
- Documentation isolated in
docs/directory - Same-day overwrites are intentional (iterative workflow)
Implementation Notes
TypeScript AST Parsing
Scripts use TypeScript Compiler API for accurate code analysis:
- Parse interfaces and types
- Detect exports and imports
- Analyze function signatures
- Extract JSDoc comments
Pattern Detection Algorithm
- Scan all features: Analyze directory structure
- Identify common patterns: What 80% of features do
- Flag exceptions: What 20% of features do differently
- Categorize exceptions: Core features vs genuine outliers
- Document both: Patterns as rules, exceptions as special cases
Diagram Generation
Use Mermaid syntax for diagrams:
graph TDfor architecture diagramsclassDiagramfor interface relationshipssequenceDiagramfor data flowflowchartfor process flows
Template Application
- Load template
- Replace placeholders with analyzed data
- Generate markdown
- Write to output directory
Usage Examples
Generate Full Documentation
# Run the docs-generator skill
# This will analyze entire codebase and generate comprehensive docs
Generate Single Feature Documentation
# Analyze and document wallet feature only
node ./.claude/skills/docs-generator/scripts/analyze_feature.mjs wallet
Regenerate After Refactoring
# After major refactoring, regenerate all docs
# Same-day output will overwrite previous documentation
node ./.claude/skills/docs-generator/scripts/generate_docs.mjs --all
Custom Output Directory
# Generate docs to custom directory
export DOCS_DIR="docs/custom-timestamp"
node ./.claude/skills/docs-generator/scripts/generate_docs.mjs
Success Criteria
✅ Comprehensive: Covers all features, patterns, and architecture ✅ Accurate: Generated from actual code, not assumptions ✅ Organized: Multiple categorized files, not one huge file ✅ Visual: Includes Mermaid diagrams for complex concepts ✅ Navigable: Clear structure with README files and links ✅ Up-to-date: Regenerates from current codebase state ✅ Incremental: Can generate one feature at a time ✅ Pattern-aware: Detects both patterns AND exceptions ✅ Developer-focused: Written for template users, not just maintainers