Claude-skill-registry kc-docs
Generate intelligent Python project documentation with UML class diagrams, architecture diagrams, and code analysis. Analyzes codebase structure to recommend and create appropriate visualizations for project overview.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/kc-docs" ~/.claude/skills/majiayu000-claude-skill-registry-kc-docs && rm -rf "$T"
skills/data/kc-docs/SKILL.mdKC Documentation Generator
Generate comprehensive project documentation with architecture diagrams and class visualizations for Python projects.
Overview
This skill analyzes your Python codebase and automatically generates:
- Architecture diagrams - System component overview (Mermaid)
- Class diagrams - OOP structure and relationships (PlantUML + pyreverse)
- Documentation - Auto-generated API and structure reference
- Analysis reports - Codebase metrics and complexity
Best for: Understanding large codebases quickly, onboarding new team members, project documentation.
Quick Start
Generate Full Documentation
/kc-docs generate <project_path>
Analyzes your project and creates inside the project:
- All diagrams<project_path>/docs/diagrams/generated/
- System overview<project_path>/docs/ARCHITECTURE.md
- Classes and functions<project_path>/docs/API_REFERENCE.md
Documentation stays with your code in version control!
View Generated Diagrams
/kc-docs view <project_path>
Opens a browser preview of all generated diagrams and documentation.
Analyze Project Only
/kc-docs analyze <project_path>
Examines codebase structure without generating diagrams. Returns:
- Number of modules and packages
- Classes and functions count
- Recommended diagram types
- Complexity assessment
Supported Diagram Types
1. Architecture Diagram (Mermaid)
- Shows: System components and their relationships
- Best for: High-level system understanding
- Recommended when: Project has multiple modules or packages
2. Class Diagram (PlantUML)
- Shows: Classes, inheritance, relationships
- Best for: OOP structure understanding
- Recommended when: Project has >5 classes or deep inheritance
3. Module Dependency Graph
- Shows: How modules import each other
- Best for: Understanding coupling and architecture
- Recommended when: Project has multiple interconnected modules
4. Auto-generated from Code (pyreverse)
- Shows: Exact class structure from source code
- Best for: Staying in sync with actual code
- Recommended always: Automatic accuracy
Usage Examples
Example 1: Document an Existing Project
/kc-docs generate ~/myproject # Generates inside ~/myproject/: # - ~/myproject/docs/diagrams/generated/architecture.svg # - ~/myproject/docs/diagrams/generated/classes_*.svg # - ~/myproject/docs/ARCHITECTURE.md # - ~/myproject/docs/API_REFERENCE.md
Example 2: Analyze Before Documenting
/kc-docs analyze ~/myproject/src # Output: # Project Analysis Results: # - Total modules: 12 # - Total classes: 45 # - Total functions: 156 # - Recommended diagrams: [architecture, class_diagram, dependencies] # - Complexity: MEDIUM
Example 3: Update Documentation When Code Changes
/kc-docs generate ~/myproject/src --force # Forces regeneration of all diagrams (not using cache)
How It Works
Analysis Phase
- Scan Python files for structure (modules, classes, functions)
- Extract relationships and dependencies
- Categorize code complexity and architecture patterns
- Recommend which diagrams would be most useful
Generation Phase
- Create Mermaid architecture diagrams
- Generate UML class diagrams using PlantUML
- Auto-generate exact class structure with pyreverse
- Render SVG outputs for viewing
- Create markdown documentation with embedded diagrams
Output Structure
docs/ ├── diagrams/ │ ├── src/ # Source diagram definitions │ │ ├── architecture.mmd # Mermaid architecture │ │ └── classes.puml # PlantUML class diagram │ └── generated/ # Rendered outputs (gitignored) │ ├── architecture.svg │ ├── classes.svg │ └── dependencies.svg ├── ARCHITECTURE.md # System overview ├── API_REFERENCE.md # Classes and functions └── ANALYSIS_REPORT.md # Code metrics
Configuration
Create
.kc-docs.yaml in your project root to customize:
# .kc-docs.yaml analysis: min_classes_for_diagram: 5 # Only create diagram if > 5 classes include_private: false # Exclude private methods/classes max_depth: 3 # Maximum folder depth to scan output: format: [svg, png, html] # Output formats theme: light # light or dark documentation: true # Generate markdown docs diagrams: architecture: true # Generate architecture diagram classes: true # Generate class diagram dependencies: true # Generate dependency graph sequences: false # Generate sequence diagrams (if complex flows)
Viewing Diagrams
In Cursor (Markdown Preview)
- Open
docs/ARCHITECTURE.md - Use
to previewCtrl+Shift+V - Click SVG links to view diagrams
In Browser
# View all diagrams in browser python ~/.claude/skills/kc-docs/scripts/serve_docs.py docs/ # Opens: http://localhost:8000
Direct Files
- Diagrams are SVG files → Open in any browser
- PDFs available → Use for printing/sharing
- PNG files available → For embedding in docs
Requirements
Installed Tools
- Python 3.8+
- Mermaid CLI (auto-installed if missing)
- PlantUML (auto-installed if missing)
- pyreverse (from pylint package)
Project Structure
- Standard Python project layout
- Readable Python files (.py)
- No special requirements
Architecture Bloat Detection
When generating documentation, kc-docs also checks for architecture anti-patterns that inflate class counts and obscure the real domain structure.
Pydantic Model Bloat
Problem: Using Pydantic
BaseModel for every nested data structure instead of only at API boundaries.
# ❌ BLOAT: 5 classes for simple nested data class Coordinate(BaseModel): lat: float lon: float class Options(BaseModel): radius: float class Request(BaseModel): coord: Coordinate options: Options # ✅ LEAN: 1 class for API boundary, rest is inline class Request(BaseModel): lat: float lon: float radius: float = 30.0
Detection: kc-docs flags when:
- Pydantic models > 30% of total classes
- Pydantic models with < 5 fields (could be
)NamedTuple - Nested Pydantic models used only internally
Recommendation:
| Location | Use |
|---|---|
| API Request/Response | ✅ Pydantic |
| Internal data passing | , , or |
| Simple value groups | or |
Thin Wrapper Classes
Problem: Classes with < 50 LOC that just delegate to other classes or stdlib.
# ❌ BLOAT: Reinventing stdlib class AdvancedCache: def __init__(self): self._cache = {} def get(self, key): return self._cache.get(key) def set(self, key, value): self._cache[key] = value # ✅ LEAN: Use stdlib from functools import lru_cache
Detection: kc-docs flags classes with:
- < 50 lines of code
- < 3 methods
- Names ending in
,Manager
,Handler
,WrapperHelper
Layer Tax
Problem: handler → service → repository → model chains for simple operations.
Detection: kc-docs measures import depth and flags when > 4 layers.
Metrics in Analysis Report
When you run
/kc-docs analyze, the report now includes:
Architecture Health: ├── Pydantic model ratio: 41/169 (24%) ⚠️ HIGH ├── Thin wrappers detected: 8 classes ├── Average LOC per class: 85 ⚠️ LOW (target: 100-300) ├── Max import depth: 5 ⚠️ DEEP └── Recommendation: Consolidate Pydantic models, merge thin wrappers
Reference: Lean Architecture
See
~/.claude/snippets/lean-architecture-guard.md for full guidelines.
Golden rule: A class should map to a domain concept (Turbine, Invoice, RoofPolygon), not an architecture concept (Handler, Service, Manager).
Troubleshooting
"No classes found"
- Check that your project has at least 5 classes
- Run
first to verify structure/kc-docs analyze
"Diagram generation failed"
- Ensure Mermaid and PlantUML are installed
- Run:
python scripts/check_dependencies.py
"Documentation looks outdated"
- Use
flag:--force/kc-docs generate path --force - This regenerates all diagrams from scratch
Tips
- First time: Run
to understand what diagrams you'll getanalyze - Large projects: Diagrams may be complex. Start with architecture view
- Keep updated: Re-run generation after major refactoring
- Version control: Commit source files (
,.mmd
), gitignore generated SVGs.puml - Share: Export to PNG or PDF for sharing with non-technical stakeholders
File References
- Analysis script:
scripts/analyze_project.py - Diagram generator:
scripts/generate_diagrams.py - Templates:
templates/ - Examples:
examples/
Next step: Run
/kc-docs analyze <your_project_path> to get started!