ln-120-reference-docs-creator
from levnikolaevich/claude-code-skills
Greate Claude Code skills collection. Production-ready skills that cover the full delivery workflow — from research and discovery to epic planning, task breakdown, implementation, testing, code review, and quality gates.
npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-120-reference-docs-creatorSKILL.md
Reference Documentation Creator
This skill creates the reference documentation structure (docs/reference/) and smart documents (ADRs, Guides, Manuals) based on project's TECH_STACK. Documents are created only when justified (nontrivial technology choices with alternatives).
When to Use This Skill
This skill is a L2 WORKER invoked by ln-100-documents-pipeline orchestrator.
This skill should be used directly when:
- Creating only reference documentation structure (docs/reference/)
- Setting up directories for ADRs, guides, and manuals
- NOT creating full documentation structure (use ln-100-documents-pipeline for complete setup)
Inputs
From ln-100 (via ln-110 Context Store):
{
"context_store": {
"PROJECT_NAME": "my-project",
"TECH_STACK": {
"frontend": "React 18",
"backend": "Express 4.18",
"database": "PostgreSQL 15",
"orm": "Prisma 5.0",
"auth": "JWT",
"cache": "Redis 7"
},
"DEPENDENCIES": [...],
"flags": { "hasBackend": true, "hasDatabase": true, "hasFrontend": true }
}
}
TECH_STACK is used for smart document creation in Phase 2.
How It Works
The skill follows a 4-phase workflow: CREATE STRUCTURE → SMART DOCUMENT CREATION → VALIDATE STRUCTURE → VALIDATE CONTENT. Phase 2 creates documents only for justified technology choices.
Phase 1: Create Structure
Objective: Establish reference documentation directories and README hub.
Process:
1.1 Check & create directories:
- Check if
docs/reference/adrs/exists → create if missing - Check if
docs/reference/guides/exists → create if missing - Check if
docs/reference/manuals/exists → create if missing - Check if
docs/reference/research/exists → create if missing - Log for each: "✓ Created docs/reference/[name]/" or "✓ docs/reference/[name]/ already exists"
1.2 Check & create README:
- Check if
docs/reference/README.mdexists - If exists:
- Skip creation
- Log: "✓ docs/reference/README.md already exists, proceeding to validation"
- If NOT exists:
- Copy template:
ln-112-reference-docs-creator/references/reference_readme_template.md→docs/reference/README.md - Replace placeholders:
{{VERSION}}— "1.0.0"{{DATE}}— current date (YYYY-MM-DD){{ADR_LIST}}— kept as placeholder (filled in Phase 4){{GUIDE_LIST}}— kept as placeholder (filled in Phase 4){{MANUAL_LIST}}— kept as placeholder (filled in Phase 4)
- Log: "✓ Created docs/reference/README.md from template"
- Copy template:
1.3 Output:
docs/reference/
├── README.md # Created or existing
├── adrs/ # Empty, ready for ADRs
├── guides/ # Empty, ready for guides
├── manuals/ # Empty, ready for manuals
└── research/ # Empty, ready for research documents
Phase 2: Smart Document Creation
Objective: Create ADRs, Guides, and Manuals for justified technology choices. Skip trivial/obvious selections.
2.1 Check Context Store:
- If no
context_storeprovided → skip Phase 2, proceed to Phase 3 - If no
TECH_STACKin context_store → skip Phase 2, proceed to Phase 3 - Log: "Context Store received with TECH_STACK: [categories count]"
2.2 Load Justification Rules:
- Read
references/tech_justification_rules.md - Parse category → justified/skip conditions
2.3 Analyze TECH_STACK for ADRs:
For each category in TECH_STACK (frontend, backend, database, orm, auth, cache):
-
Check if justified (from justification rules):
frontend: Justified if React/Vue/Angular/Svelte (multiple options exist)backend: Justified if Express/Fastify/NestJS/Koa (multiple options exist)database: Justified if PostgreSQL/MySQL/MongoDB (multiple options exist)auth: Justified if JWT/OAuth/Session (decision required)orm: Justified if Prisma/TypeORM/Sequelize (multiple options exist)cache: Justified if Redis/Memcached (decision required)
-
Skip if trivial:
- jQuery-only frontend (no framework choice)
- Simple http server (no framework)
- SQLite for dev only
- No auth required
- Raw SQL only
- In-memory cache only
-
Create ADR if justified:
- Determine next ADR number:
adr-NNN-{category}.md - Use template:
shared/templates/adr_template.md - MCP Research:
mcp__context7__resolve-library-id(technology) - Fill template:
- Title: "ADR-NNN: {Category} Selection"
- Context: Why decision was needed
- Decision: Technology chosen with version
- Rationale: 3 key reasons from research
- Alternatives: 2 other options with pros/cons
- Save:
docs/reference/adrs/adr-NNN-{category}.md - Log: "✓ Created ADR for {category}: {technology}"
- Determine next ADR number:
-
Skip if not justified:
- Log: "⊘ Skipped ADR for {category}: trivial choice"
2.4 Analyze TECH_STACK for Guides:
For each technology with complex configuration:
- Check if justified:
- Has config file with
...