CoDD Assemble
Assemble generated sprint fragments into a complete, buildable project. This is the final step in the greenfield pipeline after codd implement.
Usage
Use this skill after all sprints have been generated via codd implement. The assembler reads design documents and generated code fragments, then invokes AI to produce a unified project with all configuration files, entry points, and source code.
Prerequisites
codd implement has been run for all sprints.
- Generated fragments exist in
src/generated/sprint_N/ directories.
- Design documents exist in
docs/ with valid frontmatter.
Workflow
# Basic usage — assembles into src/
codd assemble --path .
# Custom output directory
codd assemble --path . --output-dir app
# Override AI command (e.g., use a different model)
codd assemble --path . --ai-cmd 'claude --print --model claude-opus-4-6 --tools ""'
What It Does
- Collects all design documents (architecture, component design, state management, etc.)
- Collects all generated code fragments from
src/generated/sprint_N/
- Builds a prompt with both design context and code fragments
- Invokes AI to produce a unified project:
- Project configuration: package.json, tsconfig.json, next.config., tailwind.config., etc.
- Entry points: app/layout.tsx, app/page.tsx, globals.css, etc.
- Source code: components, utilities, types, hooks, reducers
- Parses
=== FILE: path === blocks from AI output and writes files
Output
Files are written relative to the project root. The assembler produces both:
- Configuration files at the project root (package.json, tsconfig.json, etc.)
- Source files under the output directory (default:
src/)
HITL Gate
After assembly, verify the project builds:
# For Node.js/TypeScript projects
npm install
npm run build
# For Python projects
python -m pytest
If the build fails, check:
- Missing imports between assembled files
- Configuration mismatches (TypeScript strict mode, module resolution)
- Framework-specific entry point conventions
Integration in Full Pipeline
#!/bin/bash
set -e
codd init --requirements spec.md
codd plan --init
waves=$(codd plan --waves)
for wave in $(seq 1 $waves); do
codd generate --wave $wave
done
codd validate
sprints=$(codd plan --sprints)
for sprint in $(seq 1 $sprints); do
codd implement --sprint $sprint
done
# Final step: assemble fragments into a working project
codd assemble
Troubleshooting
No generated fragments found in src/generated/
- Run
codd implement first. Fragments are created per sprint.
- Build fails after assembly
- Check that the design documents specify the correct framework and configuration.
- Re-run with
--ai-cmd pointing to a more capable model (e.g., Opus) for better integration.
- Missing configuration files (package.json, tsconfig.json)
- The assembler prompt explicitly requests these. If missing, re-run assembly.
Guardrails
- Always verify the build after assembly.
- Do not manually edit assembled files before verifying the build — establish a clean baseline first.
- If the assembled output is unsatisfactory, fix the design documents or implementation plan and regenerate, rather than patching assembled code.
1---2name: codd-assemble3description: Assemble generated CoDD sprint fragments into a complete, buildable project. Use after all `codd implement` sprints have produced `src/generated/sprint_N/` fragments and the design documents are ready to be integrated into final project files, entry points, source code, and configuration.4---56# CoDD Assemble78Assemble generated sprint fragments into a complete, buildable project. This is the final step in the greenfield pipeline after `codd implement`.910## Usage1112Use this skill after all sprints have been generated via `codd implement`. The assembler reads design documents and generated code fragments, then invokes AI to produce a unified project with all configuration files, entry points, and source code.1314## Prerequisites15161. `codd implement` has been run for all sprints.172. Generated fragments exist in `src/generated/sprint_N/` directories.183. Design documents exist in `docs/` with valid frontmatter.1920## Workflow2122```bash23# Basic usage — assembles into src/24codd assemble --path .2526# Custom output directory27codd assemble --path . --output-dir app2829# Override AI command (e.g., use a different model)30codd assemble --path . --ai-cmd 'claude --print --model claude-opus-4-6 --tools ""'31```3233## What It Does34351. Collects all design documents (architecture, component design, state management, etc.)362. Collects all generated code fragments from `src/generated/sprint_N/`373. Builds a prompt with both design context and code fragments384. Invokes AI to produce a unified project:39 - **Project configuration**: package.json, tsconfig.json, next.config.*, tailwind.config.*, etc.40 - **Entry points**: app/layout.tsx, app/page.tsx, globals.css, etc.41 - **Source code**: components, utilities, types, hooks, reducers425. Parses `=== FILE: path ===` blocks from AI output and writes files4344## Output4546Files are written relative to the project root. The assembler produces both:47- Configuration files at the project root (package.json, tsconfig.json, etc.)48- Source files under the output directory (default: `src/`)4950## HITL Gate5152After assembly, verify the project builds:5354```bash55# For Node.js/TypeScript projects56npm install57npm run build5859# For Python projects60python -m pytest61```6263If the build fails, check:64- Missing imports between assembled files65- Configuration mismatches (TypeScript strict mode, module resolution)66- Framework-specific entry point conventions6768## Integration in Full Pipeline6970```bash71#!/bin/bash72set -e7374codd init --requirements spec.md75codd plan --init7677waves=$(codd plan --waves)78for wave in $(seq 1 $waves); do79 codd generate --wave $wave80done8182codd validate8384sprints=$(codd plan --sprints)85for sprint in $(seq 1 $sprints); do86 codd implement --sprint $sprint87done8889# Final step: assemble fragments into a working project90codd assemble91```9293## Troubleshooting9495- `No generated fragments found in src/generated/`96 - Run `codd implement` first. Fragments are created per sprint.97- Build fails after assembly98 - Check that the design documents specify the correct framework and configuration.99 - Re-run with `--ai-cmd` pointing to a more capable model (e.g., Opus) for better integration.100- Missing configuration files (package.json, tsconfig.json)101 - The assembler prompt explicitly requests these. If missing, re-run assembly.102103## Guardrails104105- Always verify the build after assembly.106- Do not manually edit assembled files before verifying the build — establish a clean baseline first.107- If the assembled output is unsatisfactory, fix the design documents or implementation plan and regenerate, rather than patching assembled code.