Project Core Documentation Creator
L3 Worker that creates 3 core project documentation files. These are ALWAYS created regardless of project type.
Purpose & Scope
- Creates 3 core project documentation files (required for all projects)
- Receives Context Store from ln-110-project-docs-coordinator
- Heavy use of auto-discovery (architecture needs full project scan)
- Replaces placeholders with project-specific data
- Self-validates structure and content (16 questions)
- Never gathers context itself; uses coordinator input
Invocation (who/when)
- ln-110-project-docs-coordinator: ALWAYS invoked as second worker (after ln-111)
- Never called directly by users
Inputs
From coordinator:
contextStore: Full Context Store with all discovered data
- PROJECT_NAME, PROJECT_DESCRIPTION
- TECH_STACK (full object: frontend, backend, database, etc.)
- DEPENDENCIES (from package.json)
- SRC_STRUCTURE (folder analysis)
- EXTERNAL_SYSTEMS (from .env.example)
- CODE_CONVENTIONS (from eslint, prettier)
- ADR_LIST (from docs/reference/adrs/)
- LEGACY_CONTENT (optional, from ln-100 Phase 0 migration):
legacy_architecture: { layers[], components[], diagrams[], data_flow }
legacy_requirements: { functional[], non_functional[], user_stories[] }
legacy_tech_stack: { frontend, backend, database, versions }
targetDir: Project root directory
LEGACY_CONTENT is used as base content when creating documents. Priority: Legacy > Auto-discovery > Template defaults.
Documents Created (3)
| File |
Target Sections |
Questions |
Auto-Discovery |
| docs/project/requirements.md |
Functional Requirements (FR-XXX-NNN format) |
Q23 |
Low |
| docs/project/architecture.md |
11 arc42 sections with C4 diagrams |
Q24-Q34 |
High |
| docs/project/tech_stack.md |
Frontend, Backend, Database, Additional |
Q35-Q38 |
High |
Workflow
Phase 1: Receive Context
- Parse full Context Store from coordinator
- Validate required keys (PROJECT_NAME, TECH_STACK)
- Extract architecture-specific data (SRC_STRUCTURE, DEPENDENCIES)
Phase 2: Create Documents
For each document (requirements.md, architecture.md, tech_stack.md):
- Check if file exists (idempotent)
- If exists: skip with log
- If not exists:
- Copy template from
references/templates/
- Check LEGACY_CONTENT for this document type:
- For
architecture.md: If LEGACY_CONTENT.legacy_architecture exists:
- Use
legacy_architecture.layers[] for "## Building Block View" (Section 5)
- Use
legacy_architecture.components[] for component descriptions
- Use
legacy_architecture.diagrams[] for existing diagrams (preserve mermaid/images)
- Use
legacy_architecture.data_flow for "## Runtime View" (Section 6)
- Merge with auto-discovered SRC_STRUCTURE (legacy takes priority)
- Mark:
<!-- Migrated from legacy documentation --> at top of merged sections
- For
requirements.md: If LEGACY_CONTENT.legacy_requirements exists:
- Use
legacy_requirements.functional[] as base for FR-XXX requirements
- Use
legacy_requirements.user_stories[] if FR format not found
- Augment with template structure (add MoSCoW labels if missing)
- For
tech_stack.md: If LEGACY_CONTENT.legacy_tech_stack exists:
- Use
legacy_tech_stack.versions as base for technology versions
- Merge with auto-discovered TECH_STACK (legacy versions take priority)
- Use
legacy_tech_stack.rationale for decision explanations
- Replace
{{PLACEHOLDER}} with Context Store values
- Generate C4 diagrams from SRC_STRUCTURE (for architecture.md, if no legacy diagrams)
- Insert ADR links (for architecture.md Section 8)
- Mark
[TBD: X] for missing data
Phase 3: Self-Validate
For each created document:
- Check SCOPE tag in first 10 lines
- Check required sections (from questions_core.md)
- Validate specific format requirements:
- requirements.md: FR-XXX identifiers, MoSCoW labels
- architecture.md: 11 sections, C4 diagrams, ADR references
- tech_stack.md: versions, rationale for each technology
- Check Maintenance section
- Auto-fix issues where possible
Phase 4: Return Status
Return to coordinator:
{
"created": ["docs/project/requirements.md", ...],
"skipped": [],
"tbd_count": 5,
"validation": "OK",
"diagrams_generated": 3
}
Critical Notes
- Idempotent: Never overwrite existing files
- Heavy auto-discovery: architecture.md requires deep project analysis
- C4 diagrams: Generated from SRC_STRUCTURE in Mermaid format
- ADR integration: Section 8 links to docs/reference/adrs/
- arc42 compliance: ISO/IEC/IEEE 42010:2022 structure
- TBD markers: Use
[TBD: X] for missing data
NO_CODE_EXAMPLES Rule (MANDATORY)
Documents describe contracts and decisions, NOT implementations:
- FORBIDDEN: Code blocks > 5 lines, function implementations, imports, DI configuration
- ALLOWED: Mermaid diagrams, component tables, method signatures (1 line), ADR links
- INSTEAD OF CODE: Reference source: "See src/Services/UserService.cs:45"
- TEMPLATE RULE: All templates include
<!-- NO_CODE_EXAMPLES: ... --> tag - FOLLOW IT
Stack Adaptation Rule (MANDATORY)
- Links must reference stack-appropriate docs (Microsoft for .NET, MDN for JS)
- Never mix stack references (no Python examples in .NET project)
Format Priority (MANDATORY)
Tables > Mermaid/ASCII diagrams > Lists > Text
Definition of Done
- Context Store received and validated
- 3 core documents created (or skipped if exist)
- C4 diagrams generated (Context, Container, Component)
- ADR links populated
- Self-validation passed (SCOPE, sections, format)
- Status returned to coordinator
Reference Files
- Templates:
references/templates/requirements_template.md, architecture_template.md, tech_stack_template.md
- Questions:
references/questions_core.md (Q23-Q38)
Version: 2.2.0 (Added Stack Adaptation and Format Priority rules)
Last Updated: 2025-01-12
1---2name: ln-112-project-core-creator-63description: Creates 3 core project docs (requirements.md, architecture.md, tech_stack.md). L3 Worker invoked by ln-110-project-docs-coordinator. ALWAYS created.4---56# Project Core Documentation Creator78L3 Worker that creates 3 core project documentation files. These are ALWAYS created regardless of project type.910## Purpose & Scope11- Creates 3 core project documentation files (required for all projects)12- Receives Context Store from ln-110-project-docs-coordinator13- Heavy use of auto-discovery (architecture needs full project scan)14- Replaces placeholders with project-specific data15- Self-validates structure and content (16 questions)16- Never gathers context itself; uses coordinator input1718## Invocation (who/when)19- **ln-110-project-docs-coordinator:** ALWAYS invoked as second worker (after ln-111)20- Never called directly by users2122## Inputs23From coordinator:24- `contextStore`: Full Context Store with all discovered data25 - PROJECT_NAME, PROJECT_DESCRIPTION26 - TECH_STACK (full object: frontend, backend, database, etc.)27 - DEPENDENCIES (from package.json)28 - SRC_STRUCTURE (folder analysis)29 - EXTERNAL_SYSTEMS (from .env.example)30 - CODE_CONVENTIONS (from eslint, prettier)31 - ADR_LIST (from docs/reference/adrs/)32 - **LEGACY_CONTENT** (optional, from ln-100 Phase 0 migration):33 - `legacy_architecture`: { layers[], components[], diagrams[], data_flow }34 - `legacy_requirements`: { functional[], non_functional[], user_stories[] }35 - `legacy_tech_stack`: { frontend, backend, database, versions }36- `targetDir`: Project root directory3738**LEGACY_CONTENT** is used as base content when creating documents. Priority: **Legacy > Auto-discovery > Template defaults**.3940## Documents Created (3)4142| File | Target Sections | Questions | Auto-Discovery |43|------|-----------------|-----------|----------------|44| docs/project/requirements.md | Functional Requirements (FR-XXX-NNN format) | Q23 | Low |45| docs/project/architecture.md | 11 arc42 sections with C4 diagrams | Q24-Q34 | High |46| docs/project/tech_stack.md | Frontend, Backend, Database, Additional | Q35-Q38 | High |4748## Workflow4950### Phase 1: Receive Context511. Parse full Context Store from coordinator522. Validate required keys (PROJECT_NAME, TECH_STACK)533. Extract architecture-specific data (SRC_STRUCTURE, DEPENDENCIES)5455### Phase 2: Create Documents56For each document (requirements.md, architecture.md, tech_stack.md):571. Check if file exists (idempotent)582. If exists: skip with log593. If not exists:60 - Copy template from `references/templates/`61 - **Check LEGACY_CONTENT for this document type:**62 - For `architecture.md`: If `LEGACY_CONTENT.legacy_architecture` exists:63 - Use `legacy_architecture.layers[]` for "## Building Block View" (Section 5)64 - Use `legacy_architecture.components[]` for component descriptions65 - Use `legacy_architecture.diagrams[]` for existing diagrams (preserve mermaid/images)66 - Use `legacy_architecture.data_flow` for "## Runtime View" (Section 6)67 - Merge with auto-discovered SRC_STRUCTURE (legacy takes priority)68 - Mark: `<!-- Migrated from legacy documentation -->` at top of merged sections69 - For `requirements.md`: If `LEGACY_CONTENT.legacy_requirements` exists:70 - Use `legacy_requirements.functional[]` as base for FR-XXX requirements71 - Use `legacy_requirements.user_stories[]` if FR format not found72 - Augment with template structure (add MoSCoW labels if missing)73 - For `tech_stack.md`: If `LEGACY_CONTENT.legacy_tech_stack` exists:74 - Use `legacy_tech_stack.versions` as base for technology versions75 - Merge with auto-discovered TECH_STACK (legacy versions take priority)76 - Use `legacy_tech_stack.rationale` for decision explanations77 - Replace `{{PLACEHOLDER}}` with Context Store values78 - Generate C4 diagrams from SRC_STRUCTURE (for architecture.md, if no legacy diagrams)79 - Insert ADR links (for architecture.md Section 8)80 - Mark `[TBD: X]` for missing data8182### Phase 3: Self-Validate83For each created document:841. Check SCOPE tag in first 10 lines852. Check required sections (from questions_core.md)863. Validate specific format requirements:87 - requirements.md: FR-XXX identifiers, MoSCoW labels88 - architecture.md: 11 sections, C4 diagrams, ADR references89 - tech_stack.md: versions, rationale for each technology904. Check Maintenance section915. Auto-fix issues where possible9293### Phase 4: Return Status94Return to coordinator:95```json96{97 "created": ["docs/project/requirements.md", ...],98 "skipped": [],99 "tbd_count": 5,100 "validation": "OK",101 "diagrams_generated": 3102}103```104105## Critical Notes106- **Idempotent:** Never overwrite existing files107- **Heavy auto-discovery:** architecture.md requires deep project analysis108- **C4 diagrams:** Generated from SRC_STRUCTURE in Mermaid format109- **ADR integration:** Section 8 links to docs/reference/adrs/110- **arc42 compliance:** ISO/IEC/IEEE 42010:2022 structure111- **TBD markers:** Use `[TBD: X]` for missing data112113### NO_CODE_EXAMPLES Rule (MANDATORY)114Documents describe **contracts and decisions**, NOT implementations:115- **FORBIDDEN:** Code blocks > 5 lines, function implementations, imports, DI configuration116- **ALLOWED:** Mermaid diagrams, component tables, method signatures (1 line), ADR links117- **INSTEAD OF CODE:** Reference source: "See src/Services/UserService.cs:45"118- **TEMPLATE RULE:** All templates include `<!-- NO_CODE_EXAMPLES: ... -->` tag - FOLLOW IT119120### Stack Adaptation Rule (MANDATORY)121- Links must reference stack-appropriate docs (Microsoft for .NET, MDN for JS)122- Never mix stack references (no Python examples in .NET project)123124### Format Priority (MANDATORY)125Tables > Mermaid/ASCII diagrams > Lists > Text126127## Definition of Done128- Context Store received and validated129- 3 core documents created (or skipped if exist)130- C4 diagrams generated (Context, Container, Component)131- ADR links populated132- Self-validation passed (SCOPE, sections, format)133- Status returned to coordinator134135## Reference Files136- Templates: `references/templates/requirements_template.md`, `architecture_template.md`, `tech_stack_template.md`137- Questions: `references/questions_core.md` (Q23-Q38)138139---140**Version:** 2.2.0 (Added Stack Adaptation and Format Priority rules)141**Last Updated:** 2025-01-12