4. Make it so (implement all tasks)
Implement all the remaining tasks from the spec, one phase at a time. The main agent NEVER implements tasks itself — it always delegates the work to one or more subagents, oversees their spawning, integrates their results, and handles phase-level bookkeeping (review, changelog, specs overview).
Constraints:
Phase Retrieval (main agent):
rune next --phase --format json to get the next incomplete phaserune next reports that all tasks are complete, stop the loop and report completion to the userStream Detection (main agent):
rune streams --available --json to detect ready work streamsParallel Delegation (multiple streams):
Subagents work in isolated git worktrees so their parallel commits don't race on the shared index or on tasks.md.
For each ready stream the main agent MUST:
git worktree add .claude/worktrees/<phase>-stream-<N> -b stream/<phase>-<N>general-purpose subagent unless a more specific type fits)Each subagent prompt MUST include:
cd there before doing anything)front_matter_references to read before implementingrune next --phase --stream N --format json to retrieve all tasks for the streamrune complete <task-id> as it finishestasks.md) and commit using the Subagent Commit Conventions belowdone | blocked | failed)Main Agent Oversight (parallel mode):
done / blocked / failedrune streams --available --json. If newly unblocked streams appear (because another stream's completion satisfied their deps), spawn fresh subagents for them in new worktrees — same parallel pattern as aboveblocked and no new work surfaces, report a circular dependency to the user and stopfailed, surface the failure to the user and stop the phase rather than masking itIntegration (main agent, after all parallel subagents have returned done):
git merge --no-ff stream/<phase>-<N> -m "[merge]: phase <P> stream <N>"tasks.md are expected (each stream marked different tasks complete). Resolve by accepting both sides' completionsgit worktree remove .claude/worktrees/<phase>-stream-<N>git branch -d stream/<phase>-<N>Single-Subagent Delegation (single stream or no streams):
No worktree is needed — there is no parallel commit race when only one subagent is working.
The main agent MUST spawn one subagent (Task tool, general-purpose unless a more specific type fits) with a prompt containing:
front_matter_references to read before implementingrune next --phase --stream N --format json if a single stream is in play, otherwise rune next --phase --format json, to retrieve all tasks for the phaserune complete <task-id> as it finishestasks.md) and commit on the current working branch using the Subagent Commit Conventions belowdone | failed)The main agent waits for the subagent to return and surfaces any failure to the user before continuing.
Review (main agent):
done (single-subagent mode), use the design-critic skill over the resulting state and verify it's correct. Issues detected should be fixed (delegate the fix as a follow-up subagent if it involves code, or update the decision log directly)Phase Changelog & Specs Overview (main agent):
CHANGELOG.md (create if missing), prepend the entry if not already present, and commit it as [doc]: changelog for phase <P> (or with a ticket prefix if applicable)rune list specs/{feature_name}/tasks.md --format json and verify no incomplete tasks remainspecs/OVERVIEW.md exists:
Planned or In Progress to Doneimplementation.md), add them to the spec's detail section file listspecs/OVERVIEW.md exists AND the spec's status is Planned:
Planned to In ProgressCompact and Continue (main agent):
/compact with: /compact Continuing /make-it-so - implement the next phase. Current progress: [brief summary of completed phase]/make-it-so to implement the next phaseSubagent Commit Conventions (used by ALL subagents — parallel stream subagents and single-subagent mode; the main agent's phase changelog commit is a separate single-file commit and follows its own format):
CHANGELOG.md. The main agent writes the per-phase changelog entry after the subagents return (and, in parallel mode, after their branches are merged).stream/<phase>-<N>; single-subagent mode is on the user's working branch. The ticket prefix below should be derived from the base working branch (the branch the worktree was created from, or — in single-subagent mode — the current branch directly).ABC-123 (3–5 letters/digits, -, 1–5 digits) at the start of the branch name, possibly after feature/ or hotfix/.
b. A pure number, which would likely reflect a GitHub Issue.[feat] / [bug] / [doc] based on the branch and the nature of the changes.<prefix>:. Do NOT include any co-authored-by lines.Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer