generate-blueprints
$
npx mdskill add TheBushidoCollective/han/generate-blueprintsResearch and generate comprehensive blueprint documentation for the codebase.
- Creates or updates technical documentation for every major system in the repository.
- Depends on analyzing project structure, reading READMEs, and examining test files.
- Decides scope by identifying top-level directories, packages, and entry points.
- Delivers results by populating a single blueprints directory at the repository root.
SKILL.md
.github/skills/generate-blueprintsView on GitHub ↗
---
name: generate-blueprints
description: Deeply research all systems and create or update blueprints/ documentation for the entire codebase
---
## Name
blueprints:generate-blueprints - Generate comprehensive blueprint documentation for the entire codebase
## Synopsis
```text
/blueprints
```
## Description
Comprehensively document all systems in the codebase by creating or updating the `blueprints/` directory at the **repository root** with technical documentation for each major system.
## Important: Blueprint Location
**CRITICAL:** Blueprints MUST be created at the repository root, never in subdirectories or packages.
- `{repo-root}/blueprints/`
- `{repo-root}/packages/foo/blueprints/`
- `{repo-root}/src/blueprints/`
Blueprints are repository-wide system design documents. Systems may span multiple packages or directories, but all blueprints belong in a single `blueprints/` directory at the repo root.
## Implementation
You are tasked with comprehensively documenting all systems in this codebase.
## Process
### Phase 1: Discovery
1. **Analyze project structure** to identify all major systems:
- Top-level directories and their purposes
- Package/module boundaries
- Entry points (main files, CLI commands, API endpoints)
- Configuration systems
2. **Read existing documentation**:
- README.md files at all levels
- Any existing blueprints/ directory
- Inline documentation patterns
- Test files for behavioral documentation
3. **Create a system inventory**:
- List all distinct systems/features
- Note dependencies between systems
- Identify documentation gaps
### Phase 2: Audit Existing Blueprints
Audit existing documentation using native tools:
1. **List all blueprints**: Use `Glob("blueprints/*.md")` to find all existing blueprint files
2. **Read each blueprint**: Use `Read("blueprints/{name}.md")` to check each documented system:
- Does the blueprint match current implementation?
- Are there new features not documented?
- Is any documented functionality removed?
3. **Identify orphaned blueprints** (documentation for removed systems)
### Phase 3: Prioritize Documentation
Order systems by importance:
1. **Core systems** - Central functionality everything depends on
2. **Public APIs** - User-facing features and interfaces
3. **Integration points** - How systems connect
4. **Supporting systems** - Utilities and helpers
### Phase 4: Generate Documentation
For each system, use the `Write` tool to create or update the blueprint file:
```
Write("blueprints/{system-name}.md", content)
```
Each file MUST include YAML frontmatter:
```markdown
---
name: system-name
summary: Brief one-line description
---
# {System Name}
{Brief description}
## Overview
{Purpose and role in the larger system}
## Architecture
{Structure, components, data flow}
## API / Interface
{Public methods, commands, configuration}
## Behavior
{Normal operation, error handling, edge cases}
## Files
{Key implementation files with descriptions}
## Related Systems
{Links to related blueprints}
```
### Phase 5: Index Management
**The blueprint index is automatically managed** by the SessionStart hook. When you run `han blueprints sync-index`, the index is updated at `.claude/rules/blueprints/blueprints-index.md`.
You don't need to manually create or update any index files - just focus on creating quality blueprint content using the Write tool.
## De-duplication Strategy
When documenting, actively prevent duplicates:
1. **Check before creating** - Use `Glob("blueprints/*.md")` and `Grep` to search for existing coverage
2. **Read existing blueprints** - Use `Read("blueprints/{name}.md")` to check content
3. **Merge related systems** - Document tightly coupled systems together
4. **Use cross-references** - Link between blueprints rather than duplicating
5. **One source of truth** - Each concept documented in exactly one place
## Output
After completing:
1. List all systems discovered
2. List blueprints created/updated
3. Note any systems that couldn't be documented (why)
4. Identify areas needing future documentation
**Remember:** Use native tools (Glob, Grep, Read, Write) to manage blueprint files. The frontmatter format (`name` and `summary` fields) enables discovery via the auto-generated index.