Paths: File paths (
shared/,references/,../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. Ifshared/is missing, fetch files via WebFetch fromhttps://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}.
Project Documentation Coordinator
Type: L2 Coordinator Category: 1XX Documentation Pipeline
Runtime-backed docs coordinator. The runtime owns context assembly checkpoints, conditional worker fan-out, and docs-generation summary aggregation.
Purpose & Scope
- Single context gathering — analyzes project once, builds Context Store
- Project type detection — determines hasBackend, hasDatabase, hasFrontend, hasDocker
- Delegates to 5 workers — passes Context Store to each worker
- Aggregates results — collects status from all workers, returns summary
- Solves the "context loss" problem by gathering data once and passing explicitly
- Builds the routing table used by
ln-100docs-quality repair loop
Runtime Contract
MANDATORY READ: Load shared/references/coordinator_runtime_contract.md, shared/references/docs_runtime_contract.md, shared/references/docs_generation_summary_contract.md
Runtime family: docs-runtime
Identifier:
project-docs
Phases:
PHASE_0_CONFIGPHASE_1_CONTEXT_ASSEMBLYPHASE_2_DETECTIONPHASE_3_DELEGATEPHASE_4_AGGREGATEPHASE_5_SELF_CHECK
Worker summary contract:
ln-111..115may receivesummaryArtifactPath- each worker writes or returns
docs-generationsummary envelope - ln-110 consumes worker summaries, not free-text worker prose
Invocation (who/when)
- ln-100-documents-pipeline: Invoked as first L2 coordinator in documentation pipeline
- Never called directly by users
Inputs
From ln-100 (optional source cleanup phase):
{
"SOURCE_DOC_NOTES": {
"architecture_notes": { "sections": [...], "diagrams": [...] },
"requirements_notes": { "functional": [...] },
"principles_notes": { "principles": [...], "anti_patterns": [...] },
"tech_stack_notes": { "frontend": "...", "backend": "...", "versions": {} },
"api_notes": { "endpoints": [...], "authentication": "..." },
"database_notes": { "tables": [...], "relationships": [...] },
"runbook_notes": { "prerequisites": [...], "install_steps": [...], "env_vars": [...] },
"infrastructure_notes": { "servers": [...], "domains": [...], "ports": {} }
}
}
SOURCE_DOC_NOTES enriches the standard context store before worker dispatch. Workers consume normalized context fields only; there is no legacy-specific override branch.
MANDATORY READ: Load shared/references/docs_quality_contract.md.
Architecture
ln-110-project-docs-coordinator (this skill)
├── Phase 1: Context Gathering (ONE TIME)
├── Phase 2: Delegate to Workers
│ ├── ln-111-root-docs-creator → 4 root docs (ALWAYS)
│ ├── ln-112-project-core-creator → 3 core docs (ALWAYS)
│ ├── ln-113-backend-docs-creator → 2 docs (if hasBackend/hasDatabase)
│ ├── ln-114-frontend-docs-creator → 1 doc (if hasFrontend)
│ └── ln-115-devops-docs-creator → 2 docs (1 always + 1 if hasDocker)
└── Phase 3: Aggregate Results
Workflow
Phase 1: Context Gathering (ONE TIME)
1.1 Auto-Discovery (scan project files):
| Source | Data Extracted | Context Store Keys | |--------|----------------|-------------------| | package.json | name, description, dependencies, scripts, engines, author, contributors | PROJECT_NAME, PROJECT_DESCRIPTION, DEPENDENCIES, DEV_COMMANDS, DEVOPS_CONTACTS | | docker-compose.yml | services, ports, deploy.replicas, runtime:nvidia | DOCKER_SERVICES, DEPLOYMENT_SCALE, HAS_GPU | | Dockerfile | runtime version | RUNTIME_VERSION | | src/ structure | folders, patterns | SRC_STRUCTURE, ARCHITECTURE_PATTERN | | migrations/ | table definitions | SCHEMA_OVERVIEW | | .env.example | environment variables | ENV_VARIABLES | | tsconfig.json, .eslintrc | conventions | CODE_CONVENTIONS | | README.md | project description, scaling mentions | PROJECT_DESCRIPTION (fallback), DEPLOYMENT_SCALE (fallback) | | CODEOWNERS | maintainers | DEVOPS_CONTACTS | | git log | frequent committers | DEVOPS_CONTACTS (fallback) | | ~/.ssh/config, deploy targets | SSH aliases, hostnames, IPs | SERVER_INVENTORY | | docker-compose VIRTUAL_HOST vars | domain routing | DOMAIN_DNS | | .env.example registry URLs, .npmrc | artifact repos | ARTIFACT_REPOSITORY | | docker-compose deploy.resources | resource limits | HOST_REQUIREMENTS |
1.2 Detect Project Type:
| Flag | Detection Rule | |------|----------------| | hasBackend | express/fastify/nestjs/fastapi/django in dependencies | | hasDatabase | pg/mongoose/prisma/sequelize in dependencies OR postgres/mongo in docker-compose | | hasFrontend | react/vue/angular/svelte in dependencies | | hasDocker | Dockerfile exists OR docker-compose.yml exists |
1.3 User Materials Request:
- Ask: "Do you have existing materials (requirements, designs, docs)?"
- If provided: Extract answers for Context Store
1.4 MCP Research (for detected technologies):
- Use Context7/Ref for best practices
- Store in Context Store for workers
1.5 Build Context Store:
{
"PROJECT_NAME": "my-project",
"PROJECT_DESCRIPTION": "...",
"TECH_STACK": { "frontend": "React 18", "backend": "Express 4.18", "database": "PostgreSQL 15" },
"DEPENDENCIES": [...],
"SRC_STRUCTURE": { "controllers": [...], "services": [...] },
"ENV_VARIABLES": ["DATABASE_URL", "JWT_SECRET"],
"DEV_COMMANDS": { "dev": "npm run dev", "test": "npm test" },
"DOCKER_SERVICES": ["app", "db"],
"DEPLOYMENT_SCALE": "single",
"DEVOPS_CONTACTS": [],
"HAS_GPU": false,
"SERVER_INVENTORY": [],
"DOMAIN_DNS": [],
"ARTIFACT_REPOSITORY": {},
"HOST_REQUIREMENTS": {},
"flags": { "hasBackend": true, "hasDatabase": true, "hasFrontend": true, "hasDocker": true }
}
DEPLOYMENT_SCALE detection rules:
"single"(default): No deploy.replicas, no scaling keywords in README"multi": deploy.replicas > 1 OR load balancer mentioned"auto-scaling": auto-scaling keywords in README/docker-compose"gpu-based": runtime: nvidia in docker-compose
DEVOPS_CONTACTS fallback chain:
- CODEOWNERS file → extract maintainers
- package.json author/contributors → extract names/emails
- git log → top 3 frequent committers
- If all empty →
[TBD: Provide DevOps team contacts]
1.6 Merge Normalized Source Notes (if provided by ln-100):
- Check if
SOURCE_DOC_NOTESwas passed from ln-100 cleanup phase - If present, merge supporting facts into the standard Context Store:
contextStore.SOURCE_DOC_NOTES = input.SOURCE_DOC_NOTES - Enrichment intent:
- architecture notes strengthen architecture evidence
- requirement notes strengthen requirements evidence
- tech-stack notes clarify versions and rationale
- principles, API, database, runbook, and infrastructure notes provide supplemental factual input
- Workers always generate from normalized context + current project sources
- If no
SOURCE_DOC_NOTESare present: rely on direct auto-discovery + current canonical docs
Phase 2: Delegate to Workers
MANDATORY: All applicable workers MUST be invoked. Workers run in parallel via Agent tool for context isolation.
2.1 Always invoke (parallel):
ln-111-root-docs-creatorwith Context Storeln-112-project-core-creatorwith full Context Storeln-115-devops-docs-creatorwith Context Store (infrastructure.md always; runbook.md internally conditional on hasDocker)
2.2 Conditionally invoke:
ln-113-backend-docs-creatorif hasBackend OR hasDatabaseln-114-frontend-docs-creatorif hasFrontend
Invocation (parallel via Agent tool):
Agent(description: "{doc_type} docs via {worker}",
prompt: "Invoke Skill(skill: \"{worker}\") with context below.\n\nCONTEXT: {contextStore}",
subagent_type: "general-purpose")
Delegation Rules:
- Pass Context Store and flags to workers via Agent+Skill pattern
- Wait for all Agent completions
- Collect normalized result (
created_files,skipped_files,quality_inputs,validation_status)
Phase 3: Aggregate Results
- Collect status from all workers
- Sum totals: created files, skipped files
- Report any validation warnings
- Return aggregated summary to ln-100
- Include Context Store for subsequent workers (ln-120 needs TECH_STACK)
- Merge
quality_inputs.ownersfrom all workers into one repair-routing table
Output:
{
"workers_invoked": 5,
"total_created": 11,
"total_skipped": 0,
"validation_status": "passed",
"created_files": [
"AGENTS.md",
"CLAUDE.md",
"docs/README.md",
"docs/documentation_standards.md",
"docs/principles.md",
"docs/project/requirements.md",
"docs/project/architecture.md",
"docs/project/tech_stack.md",
"docs/project/api_spec.md",
"docs/project/database_schema.md",
"docs/project/design_guidelines.md",
"docs/project/infrastructure.md",
"docs/project/runbook.md"
],
"quality_inputs": {
"doc_paths": ["AGENTS.md", "CLAUDE.md", "docs/README.md", "docs/project/architecture.md"],
"owners": {
"AGENTS.md": "ln-111-root-docs-creator",
"CLAUDE.md": "ln-111-root-docs-creator",
"docs/project/architecture.md": "ln-112-project-core-creator"
}
},
"context_store": {
"PROJECT_NAME": "...",
"TECH_STACK": { "frontend": "React 18", "backend": "Express 4.18", "database": "PostgreSQL 15" },
"DEPENDENCIES": [...],
"flags": { "hasBackend": true, "hasDatabase": true, "hasFrontend": true, "hasDocker": true }
}
}
Critical Notes
- Context gathered ONCE — never duplicated in workers
- Context Store passed explicitly — no implicit state
- Workers self-validate — coordinator only aggregates
- Idempotent — workers skip existing files
- Parallel where possible — ln-111 and ln-112 can run in parallel
- Repair routing table required — every created doc path must map to one owning creator
Worker Invocation (MANDATORY)
| Phase | Worker | Context | Condition | |-------|--------|--------|-----------| | 2 | ln-111-root-docs-creator | Agent (parallel) — root docs | ALWAYS | | 2 | ln-112-project-core-creator | Agent (parallel) — core project docs | ALWAYS | | 2 | ln-115-devops-docs-creator | Agent (parallel) — infrastructure + runbook | ALWAYS | | 2 | ln-113-backend-docs-creator | Agent (parallel) — API spec + DB schema | hasBackend OR hasDatabase | | 2 | ln-114-frontend-docs-creator | Agent (parallel) — design guidelines | hasFrontend |
All workers: Invoke via Agent tool with Skill — workers get Context Store.
TodoWrite format (mandatory)
- Build Context Store (pending)
- Invoke ln-111-root-docs-creator (pending)
- Invoke ln-112-project-core-creator (pending)
- Invoke ln-115-devops-docs-creator (pending)
- Invoke ln-113-backend-docs-creator [conditional] (pending)
- Invoke ln-114-frontend-docs-creator [conditional] (pending)
- Aggregate results (pending)
Anti-Patterns:
- ❌ Creating documentation files directly instead of invoking workers
- ❌ Marking worker steps done without Agent+Skill invocation
- ❌ Skipping conditional workers without checking flags
Documentation Standards (passed to workers)
- NO_CODE Rule: Documents describe contracts, not implementations
- Stack Adaptation: Links must match TECH_STACK (Context Store)
- Format Priority: Tables/ASCII > Lists > Text
Definition of Done
- [ ] Context Store built with all discovered data
- [ ] Project type flags determined
- [ ] All applicable workers invoked
- [ ] Results aggregated
- [ ] Actuality verified: all document facts match current code (paths, functions, APIs, configs exist and are accurate)
- [ ] Summary returned to ln-100
Phase 4: Meta-Analysis
MANDATORY READ: Load shared/references/meta_analysis_protocol.md
Skill type: planning-coordinator. Run after all phases complete. Output to chat using the planning-coordinator format.
Reference Files
- Guides:
references/guides/automatic_analysis_guide.md,critical_questions.md,troubleshooting.md
Version: 2.1.0 Last Updated: 2025-01-12