buildlisted
Install: claude install-skill mickeyyaya/evolve-loop
# build
> Sprint 3 composable skill. Wraps the Builder phase. Builder is the **only** fan-out-incompatible phase — single worktree, single set of mutations.
## When to invoke
- After `tdd` has produced RED tests
- Cycle is in `tdd` or `discover` phase per cycle-state
## When NOT to invoke
- RED tests don't exist (TDD must run first)
- Cycle goal is research-only or planning-only
## Workflow
| Step | Action | Exit criteria |
|---|---|---|
| 1 | Read TDD contract from team-context.md | Contract loaded |
| 2 | Implement minimum code to turn RED → GREEN | Tests pass locally |
| 3 | Run regression suite (`legacy/scripts/utility/run-all-regression-tests.sh`) | No new regressions |
| 4 | Write `<workspace>/build-report.md` | Report present + fresh + token-bound |
## Single-writer invariant
Builder runs in a worktree with `EVOLVE_BUILDER_WORKTREE` set. Concurrent builders are STRUCTURALLY blocked because:
- The trust kernel binds the cycle via SHA256 of `git diff HEAD`
- Two concurrent writers would invalidate each other's tree-state SHA
- `phase-gate-precondition.sh` allows only one `active_agent` per cycle
This is **why Builder cannot fan-out** even though Scout and Auditor can.
<!-- GENERATED:phase-facts BEGIN — do not edit; run `evolve skills generate`. Sources: docs/architecture/phase-registry.json · go/internal/phasecontract · .evolve/profiles/builder.json -->
## Phase facts
| Fact | Value |
|---|---|
| Phase | `build` (build archetype, mandatory) |
| Persona | `age