build
Execute implementation plan with atomic commits per task
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Execute implementation plan with atomic commits per task
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when a feature plan has been verified and is ready for implementation — executes tasks with atomic commits
Use when you want to auto-run all remaining Ship steps for a feature without manual step-by-step invocation
Use when a feature has been brainstormed and needs a detailed implementation plan with tasks
Use when a brainstormed feature needs architectural decisions — presents 2-3 approaches for user to choose before planning
Use when a plan has been created and needs independent verification against codebase patterns before building
Use when beginning new feature work, adding functionality, or fixing a bug — runs intensive brainstorming to capture requirements before planning
| name | build |
| description | Execute implementation plan with atomic commits per task |
| when_to_use | TRIGGER when: user says "build", "implement", "code it", or feature status is "plan-verified"/"building". DO NOT TRIGGER when: still planning or already built. |
| effort | medium |
| allowed-tools | Read, Agent, SendMessage |
| argument-hint | [feature-name] |
!for f in .planning/features/*/CONTEXT.md; do [ -f "$f" ] && d=$(dirname "$f") && echo "$(basename "$d"): $(sed -n 's/^status: *//p' "$f")"; done 2>/dev/null; true
!for f in .planning/features/*/PLAN.md; do [ -f "$f" ] && d=$(dirname "$f") && echo "$(basename "$d") plan: $(grep -c 'status="done"' "$f" 2>/dev/null || echo 0) done, $(grep -c 'status="pending"' "$f" 2>/dev/null || echo 0) pending"; done 2>/dev/null; true
Build the active feature by executing its plan phase by phase.
.planning/features/ for feature directoriesCONTEXT.md and check the status fieldplan-verified or building (resuming)$ARGUMENTS is provided, use it as the feature nameBefore starting, verify:
.planning/features/{name}/PLAN.md exists with pending tasksIf prerequisites fail, stop and tell the user what's missing.
Before executing any phase, load key file context into the main conversation to enrich the builder agent's understanding.
.planning/features/{name}/PLAN.md in full<files> elements across all pending tasks. Deduplicate the paths.## Key File Context block summarizing what you observed:
This context block is embedded into each builder agent invocation below.
Read PLAN.md and check if it contains <phase> elements:
status != done.If all phases/tasks are already done, skip to Completion.
For each pending phase (or once for flat plans):
If phased, mark the current phase status="building" in PLAN.md.
Update CONTEXT.md frontmatter to status: building (if not already set).
Use the Agent tool to invoke the ship-builder agent with this prompt:
Build feature: {name}
Phase: {phase-id} — {phase-name}
## Key File Context (pre-read by orchestrator)
{paste the Key File Context block from Pre-Build Context Loading here}
Execute all pending tasks in this phase. Read:
- .planning/features/{name}/PLAN.md
- .planning/features/{name}/CONTEXT.md
Follow your instructions for the execution loop, deviation rules, and commit conventions.
For flat plans, omit the Phase line.
After the Agent tool returns, check whether the builder's output contains a valid ## BUILD RESULT block with one of the four expected statuses (COMPLETE, COMPLETE_WITH_CONCERNS, NEEDS_CONTEXT, CHECKPOINT).
If no valid BUILD RESULT is found (likely turn exhaustion):
Use SendMessage to the builder agent with this message:
You were building feature "{name}" and stopped without emitting a BUILD RESULT.
Continue where you left off. Read PLAN.md to check which tasks are done (status="done")
and which are still pending. Resume from the first pending task.
When finished with all tasks in this phase, emit your ## BUILD RESULT block.
After SendMessage returns, check again for a valid ## BUILD RESULT.
If still no valid result, retry SendMessage one more time (same message).
After 2 retries (3 total attempts including the original Agent call), if still no valid BUILD RESULT:
## BUILDER EXHAUSTED
Feature: {name}
Phase: {phase-id} — {phase-name}
Attempts: 3 (original + 2 continuations)
Tasks completed: [count from PLAN.md]
Tasks remaining: [count from PLAN.md]
The builder could not complete this phase within the turn limit.
Run /ship:build to retry with a fresh agent, or investigate the remaining tasks.
buildingIf a valid BUILD RESULT is found (either from original Agent call or after SendMessage): Proceed to the status handling below (### 3).
Parse the builder agent's ## BUILD RESULT output.
If Status: COMPLETE:
status="done" in PLAN.md## PHASE COMPLETE
Feature: {name}
Phase: [M] / [total] — [phase name]
Tasks completed: [N] / [N] in this phase
Overall progress: [done_across_all_phases] / [total_across_all_phases] tasks
Commits: [list short hashes]
If Status: COMPLETE_WITH_CONCERNS:
## PHASE COMPLETE (with concerns)
Feature: {name}
Phase: [M] / [total] — [phase name]
Tasks completed: [N] / [N] in this phase
Commits: [list short hashes]
Concerns flagged by builder:
- [concern 1]
- [concern 2]
Continuing to next phase. Review concerns after build completes.
If Status: NEEDS_CONTEXT:
building## CONTEXT NEEDED
Feature: {name}
Tasks completed: [N] / [M]
Missing: [from agent result]
Provide the missing information, then run /ship:build to continue.
If Status: CHECKPOINT:
building## CHECKPOINT REACHED
Feature: {name}
Tasks completed: [N] / [M]
Stopped at: Task [id] — [task name]
Reason: [from agent result]
Recommendation: [from agent result]
When all tasks are done (flat plan) or all phases are done (phased plan):
status: built## BUILD COMPLETE
Feature: {name}
Tasks completed: [N] / [N]
Commits: [list short hashes]
Next: /ship:verify
$ARGUMENTS