Two-Artifact Decomposition Pipeline

ido4shape (the WHAT) → ido4 MCP (the HOW) → GitHub Issues (living specifications)

Stage 0
Parse
Deterministic code
parseStrategicSpec() extracts AST from markdown. Groups, capabilities, dependencies, cross-cutting concerns.
Output: ParsedStrategicSpec
Stage 1
Analyze
AI: code-analyzer agent
Explores codebase per capability. Maps to modules, discovers patterns, assesses complexity. Uses Read/Glob/Grep.
Output: Technical Canvas
Stage 2
Write
AI: technical-spec-writer
Decomposes capabilities into right-sized tasks. Judges effort/risk/type/AI. Sets code-level dependencies.
Output: Technical Spec (.md)
Stage 3
Validate
Deterministic code
ingest_spec dry run. Format compliance, field validation, dependency graph check, quality gates.
Output: Validation report
Stage 4
Ingest
Deterministic code
spec-parser → spec-mapper → GitHub issues. Capabilities become epics/bets, tasks become sub-issues.
Output: GitHub Issues
Strategic Spec (input)
From ido4shape. Groups, capabilities with priority/risk/depends_on, cross-cutting concerns, success conditions. No implementation details.
Technical Canvas (intermediate)
Strategic context + codebase knowledge. Per-capability: relevant modules, patterns, architecture fit, code-level dependencies, complexity assessment.
Technical Spec (output)
Capabilities with implementation tasks. Per-task: effort (S/M/L/XL), risk, type, AI suitability, depends_on, success conditions, file paths.
GitHub Issues (final)
Capabilities as epic/bet issues. Tasks as sub-issues with custom fields (status, wave, effort, risk, AI suitability). Living specifications.
Capability Hierarchy Mapping
Group
decomposition context only
not a GitHub issue
flows into epic body text
Capability
NCO-01
Epic / Bet
parent issue
Task
NCO-01A, NCO-01B
Sub-issue
governed work item
Traceability: Strategic NCO-01 decomposes into technical NCO-01A, NCO-01B, NCO-01C. The ref pattern preserves traceability from strategic capability to technical task to GitHub issue. The canvas is the reviewable checkpoint — catches analysis errors before they become bad issues.