buildlisted
Install: claude install-skill chan4lk/specclaw
# specclaw build
**First, run** `specclaw-ensure-init .specclaw` — idempotently creates `.specclaw/` if it doesn't exist (silent if already initialized; auto-inits using the current directory's basename as the project name).
Execute the planned tasks.
## Step 0 — Validate
Run `specclaw-validate-change .specclaw <change> build`. If it fails, report missing prerequisites and stop.
## Step 1 — Setup
```bash
specclaw-build setup .specclaw <change>
```
Returns JSON config with `parallel_tasks`, `models.coding`, `git.strategy`, `notifications.channel`. Capture this — you'll use `parallel_tasks` and `model` throughout the build.
**Worktree strategy:** when `git.strategy: worktree-per-change`, setup creates an isolated worktree at `.specclaw/worktrees/<change>/`. Use the `worktree_path` from the JSON as the working directory when spawning coding agents.
Send a **build started** notification:
```
🦞 **Build Started**
**Change:** <change>
**Branch:** specclaw/<change>
**Tasks:** <total_count> across <wave_count> waves
```
## Step 2 — Parse tasks
```bash
specclaw-parse-tasks --status pending .specclaw/changes/<change>/tasks.md
```
Outputs JSON: `[{"id":"T1","title":"...","wave":1,"depends":[],"files":[...],"estimate":"small"}, ...]`.
**Retry:** to re-run failed tasks, parse with `--status failed`, reset each to `pending` via `specclaw-update-task-status .specclaw/changes/<change>/tasks.md <TASK_ID> pending`, then re-parse with `--status pending`.
## Step 3 — Wave loop
Fo