Build Right Execution
Use this skill after pre-execution work has produced product truth, MVP scope,
operating rules, and an executable task queue.
Core rule:
Do one task.
Prove the current state.
Change narrowly.
Verify with the right evidence.
Update the tracker.
Then move to the next task.
Required Reading
- Always read
references/workflow.md before acting.
- Read
references/gates.md before task selection, after task intake, and
before advancing to another task.
- Always read
references/review-and-delegation.md before the review phase.
Its Standards, Spec, and correctness/evidence axes apply to every task;
trigger rules determine review depth and whether extra independent review is
required.
- Read
references/evidence-contract.md before completing or updating a task.
- Read
references/execution-discipline.md after task intake. Select its bug,
feature, or refactor lane from the task's existing Type and stated goal; do
not add a mandatory task field.
- Read
../build-right-engineering-principles/references/principles.md before
implementation or review when a task touches architecture boundaries, public
APIs, package ownership, provider adapters, generated code, error semantics,
tests, observability, security, or enforceable policy.
- Use
assets/templates/task-template.md when creating a missing task or
splitting an overbroad task.
- Use bundled helper scripts only through the full Bun command form shown
below. Do not rely on PATH aliases or invoke short names such as
continue-check as shell commands.
- Invoke every managed helper used as evidence as its own direct Bun shell
command. Do not chain it with
&&, ;, pipes, redirects, or trailing
commands; the native evidence gate binds success to that isolated invocation.
- Use the state resolver before selecting a task or advancing through a queue.
Report and reconcile its decision before continuing.
- The managed execution entrypoint performs setup orchestration before calling
the separate read-only
scripts/continue-check.ts resolver and provider
adapter when task bindings exist. Never ask the user to invoke provider
setup, validation, progress, synchronization, archive, or any provider
command.
- Use the execution helper for deterministic task, contract, and gate signals.
Treat script output as input to judgment, not authority.
Operating Mode
Run the Build Right state resolver:
bun <skill-path>/scripts/managed-continue-check.ts --cwd <project> --format markdown --strict
For a bound task this command automatically runs the explicit setup boundary,
then calls the read-only resolver path to check the pinned runtime, strictly
validate the change, resolve the exact work item, and detect cross-system
drift. Unbound legacy tasks retain the prior resolver path without setup or a
provider call. Stop fail-closed on every structured planning gate.
Report the resolver findings before selecting work:
Resolver decision: <decision>
Confidence: <confidence>
Next action: <next action>
Next task: <task or none>
Blocking gates: <gates or none>
External follow-ups: <follow-ups or none>
Follow the resolver decision before selecting work:
ask-founder: ask or report the founder-owned gate; do not continue.
wait-external: report the external-state gate; do not continue.
create-blocker: create or propose the smallest AI-owned blocker.
no-ready-task: stop and report that no AI-owned task is ready.
invalid-state: stop and reconcile contradictory tracker/gate state.
continue-active-task or execute-task: select exactly that task.
Run the read-only execution helper when available:
bun <skill-path>/scripts/execution-check.ts --cwd <project> --mode next-task --format markdown
Read task, sprint/milestone tracker, authority docs, and local agent
instructions.
Print task intake:
Active task: <task id or path>
Done means: <observable completion criteria>
Non-goals: <explicit exclusions>
Assumption basis: <founder-claimed | ai-inferred | prototype-assumption | repo-evidence-backed | public-evidence-backed | customer-evidence-backed>
Requirement basis: <authority path, decision ID, evidence reference, or explicit assumption>
Reversibility: <easy | moderate | hard>
Learning hook: <how this task will produce evidence>
Source under test: <repo-local path | installed path | GitHub source | release tag | n/a>
Baseline evidence: <artifact or command>
Verification ladder: <focused -> broader checks>
Evidence destination: <task file or evidence file>
Run the execution helper in task-contract or all mode when a task path
exists, then reconcile any missing fields before editing.
Inspect current workspace state before editing.
Capture baseline evidence.
Select and follow the task-type discipline in
references/execution-discipline.md. A bug task must establish a
red-capable feedback command before hypotheses.
Implement the smallest change that satisfies the task and its requirement
basis while preserving required guarantees.
Verify in layers.
Run separate Standards and Spec review lanes plus the main workflow's
correctness/evidence review. Use subagents only when explicitly authorized
and available; otherwise run clearly separated sequential passes.
Record implementation and verification evidence before marking the task
complete.
For a managed planning binding, construct a fresh repository-bound
work-item-ready-for-closeout proof and invoke the bundled
scripts/complete-planning-work-item.ts internally. It is the only allowed
path to check the work item, complete the Build Right task, and promote one
successor. Do not expose this provider bookkeeping to the user.
For an unbound task, update only the relevant tracker/docs.
When the completed binding was the last work item, invoke the read-only
archive-readiness mode internally. If and only if it returns a fresh
archive-ready proof, invoke the separate allowlisted finalizer:
bun <skill-path>/scripts/execution-check.ts --cwd <project> --mode archive-readiness --change <change> --format json
bun <skill-path>/scripts/finalize-openspec-change.ts --cwd <project> --change <change> --readiness <fresh-readiness.json>
The finalizer reruns readiness under lock, archives only in isolated
scratch space, validates the exact allowlisted diff, and atomically
publishes the complete validated planning tree. Record the returned
commands/results in Build Right evidence. Never expose provider validation,
synchronization, or archive work to the user.
After successful finalization, reconcile the Build Right authority surface:
replace active-change references in every bound task with the returned
archive path; clear the completed active task and execution-ready gate from
docs/blueprint-status.md; point its managed-planning evidence at the
archive; make its next action match the resolver; and mark a sprint complete
when every row is terminal. Never leave an execution handoff to a completed
task or an absent active change.
Run the full Bun managed execution command and the execution helper in
stop-gates mode before selecting another task.
Report the resolver findings again before deciding whether another task is
safe to select.
Stop at any founder, external-state, failed-verification, stale-task, source
mismatch, open-conflict, non-AI-owner, or release-claim gate. Do not
advance to the next task until the gate is resolved or explicitly converted
into a ready AI-owned task.
Hand off. Commit only when the user explicitly authorizes the exact commit.
Not-Ready Rule
If authority docs, MVP scope, execution rules, requirement basis, or task files
are missing, do not pretend execution is ready. Route the user to
/build-right-preflight or create the smallest Sprint 0 blocker needed to
establish the missing execution surface.
Prototype tasks may run from prototype-assumption only when reversibility,
learning hook, and validation required before product truth are explicit.
For skill release/manual trials, record the exact source under test. If the
installed or invoked skill is stale versus the repo-local skill source, mark the
trial partial-needs-rerun and do not advance release gates to ready.
Scope Rule
Do not silently widen scope. If the task reveals unrelated work, create a
follow-up issue and continue only inside the selected task boundary.
Stop/Ask Gate
After each task, check whether the next step is truly AI-owned and ready. Stop
and ask or report the blocker when the next step requires:
- founder-owned product, positioning, buyer/user, or MVP decisions
- ready or active task ownership that is not AI
- open conflicts in
docs/conflicts.md
- external discovery, search indexing, publishing, secrets, paid services, or
production access
- failed verification, stale task state, source mismatch, or ambiguous evidence
- required subagent review that was skipped without an equivalent substitute
Continuing through a prepared queue is allowed only while every next task is
ready, AI-owned, evidence-backed, and not blocked by one of these gates.
Never automatically commit, push, merge, publish, deploy, or abort or resolve
an existing Git operation. Perform those actions only when the user explicitly
authorizes the exact action and target.
User-Visible Status Badge
End every final response with exactly one status badge block:
✅ [DONE] Status: DONE
Decision: <decision/result>
Next action: <next action or none>
Needs user input: <none | concise ask>
Blocked by: <none | blocker>
Use this status map:
✅ [DONE] Status: DONE for a completed task with evidence,
verification, and tracker updates.
🟢 [GREEN] Status: ALL GREEN for execute-task or
continue-active-task before implementation starts.
🟡 [YELLOW] Status: NEEDS INPUT for ask-founder.
🟠 [ORANGE] Status: NEEDS WORK for AI-owned follow-up work that is
not yet a ready execution task.
🔵 [BLUE] Status: WAITING EXTERNAL for wait-external, publishing,
indexing, credentials, paid services, production access, or third-party state.
🔴 [RED] Status: BLOCKED for create-blocker, no-ready-task,
invalid-state, open conflicts, failed verification, stale/source mismatch,
non-AI-owned task ownership, or skipped required review without substitute.
1---2name: build-right-execution3description: Execute one bounded task using baseline evidence, narrow implementation, verification, evidence capture, and tracker updates. Use when the user invokes /build-right-execution, wants to work the next issue, run an evidence-driven implementation loop, verify a task, update task state, or continue execution from a prepared task queue.4---56# Build Right Execution78Use this skill after pre-execution work has produced product truth, MVP scope,9operating rules, and an executable task queue.1011Core rule:1213```text14Do one task.15Prove the current state.16Change narrowly.17Verify with the right evidence.18Update the tracker.19Then move to the next task.20```2122## Required Reading2324- Always read `references/workflow.md` before acting.25- Read `references/gates.md` before task selection, after task intake, and26 before advancing to another task.27- Always read `references/review-and-delegation.md` before the review phase.28 Its Standards, Spec, and correctness/evidence axes apply to every task;29 trigger rules determine review depth and whether extra independent review is30 required.31- Read `references/evidence-contract.md` before completing or updating a task.32- Read `references/execution-discipline.md` after task intake. Select its bug,33 feature, or refactor lane from the task's existing `Type` and stated goal; do34 not add a mandatory task field.35- Read `../build-right-engineering-principles/references/principles.md` before36 implementation or review when a task touches architecture boundaries, public37 APIs, package ownership, provider adapters, generated code, error semantics,38 tests, observability, security, or enforceable policy.39- Use `assets/templates/task-template.md` when creating a missing task or40 splitting an overbroad task.41- Use bundled helper scripts only through the full Bun command form shown42 below. Do not rely on PATH aliases or invoke short names such as43 `continue-check` as shell commands.44- Invoke every managed helper used as evidence as its own direct Bun shell45 command. Do not chain it with `&&`, `;`, pipes, redirects, or trailing46 commands; the native evidence gate binds success to that isolated invocation.47- Use the state resolver before selecting a task or advancing through a queue.48 Report and reconcile its decision before continuing.49- The managed execution entrypoint performs setup orchestration before calling50 the separate read-only `scripts/continue-check.ts` resolver and provider51 adapter when task bindings exist. Never ask the user to invoke provider52 setup, validation, progress, synchronization, archive, or any provider53 command.54- Use the execution helper for deterministic task, contract, and gate signals.55 Treat script output as input to judgment, not authority.5657## Operating Mode58591. Run the Build Right state resolver:6061 ```sh62 bun <skill-path>/scripts/managed-continue-check.ts --cwd <project> --format markdown --strict63 ```6465 For a bound task this command automatically runs the explicit setup boundary,66 then calls the read-only resolver path to check the pinned runtime, strictly67 validate the change, resolve the exact work item, and detect cross-system68 drift. Unbound legacy tasks retain the prior resolver path without setup or a69 provider call. Stop fail-closed on every structured planning gate.70712. Report the resolver findings before selecting work:7273 ```text74 Resolver decision: <decision>75 Confidence: <confidence>76 Next action: <next action>77 Next task: <task or none>78 Blocking gates: <gates or none>79 External follow-ups: <follow-ups or none>80 ```81823. Follow the resolver decision before selecting work:8384 - `ask-founder`: ask or report the founder-owned gate; do not continue.85 - `wait-external`: report the external-state gate; do not continue.86 - `create-blocker`: create or propose the smallest AI-owned blocker.87 - `no-ready-task`: stop and report that no AI-owned task is ready.88 - `invalid-state`: stop and reconcile contradictory tracker/gate state.89 - `continue-active-task` or `execute-task`: select exactly that task.90914. Run the read-only execution helper when available:9293 ```sh94 bun <skill-path>/scripts/execution-check.ts --cwd <project> --mode next-task --format markdown95 ```96975. Read task, sprint/milestone tracker, authority docs, and local agent98 instructions.996. Print task intake:100101 ```text102 Active task: <task id or path>103 Done means: <observable completion criteria>104 Non-goals: <explicit exclusions>105 Assumption basis: <founder-claimed | ai-inferred | prototype-assumption | repo-evidence-backed | public-evidence-backed | customer-evidence-backed>106 Requirement basis: <authority path, decision ID, evidence reference, or explicit assumption>107 Reversibility: <easy | moderate | hard>108 Learning hook: <how this task will produce evidence>109 Source under test: <repo-local path | installed path | GitHub source | release tag | n/a>110 Baseline evidence: <artifact or command>111 Verification ladder: <focused -> broader checks>112 Evidence destination: <task file or evidence file>113 ```1141157. Run the execution helper in `task-contract` or `all` mode when a task path116 exists, then reconcile any missing fields before editing.1178. Inspect current workspace state before editing.1189. Capture baseline evidence.11910. Select and follow the task-type discipline in120 `references/execution-discipline.md`. A bug task must establish a121 red-capable feedback command before hypotheses.12211. Implement the smallest change that satisfies the task and its requirement123 basis while preserving required guarantees.12412. Verify in layers.12513. Run separate Standards and Spec review lanes plus the main workflow's126 correctness/evidence review. Use subagents only when explicitly authorized127 and available; otherwise run clearly separated sequential passes.12814. Record implementation and verification evidence before marking the task129 complete.13015. For a managed planning binding, construct a fresh repository-bound131 `work-item-ready-for-closeout` proof and invoke the bundled132 `scripts/complete-planning-work-item.ts` internally. It is the only allowed133 path to check the work item, complete the Build Right task, and promote one134 successor. Do not expose this provider bookkeeping to the user.13516. For an unbound task, update only the relevant tracker/docs.13617. When the completed binding was the last work item, invoke the read-only137 archive-readiness mode internally. If and only if it returns a fresh138 `archive-ready` proof, invoke the separate allowlisted finalizer:139140 ```sh141 bun <skill-path>/scripts/execution-check.ts --cwd <project> --mode archive-readiness --change <change> --format json142 bun <skill-path>/scripts/finalize-openspec-change.ts --cwd <project> --change <change> --readiness <fresh-readiness.json>143 ```144145 The finalizer reruns readiness under lock, archives only in isolated146 scratch space, validates the exact allowlisted diff, and atomically147 publishes the complete validated planning tree. Record the returned148 commands/results in Build Right evidence. Never expose provider validation,149 synchronization, or archive work to the user.15018. After successful finalization, reconcile the Build Right authority surface:151 replace active-change references in every bound task with the returned152 archive path; clear the completed active task and execution-ready gate from153 `docs/blueprint-status.md`; point its managed-planning evidence at the154 archive; make its next action match the resolver; and mark a sprint complete155 when every row is terminal. Never leave an execution handoff to a completed156 task or an absent active change.15719. Run the full Bun managed execution command and the execution helper in158 `stop-gates` mode before selecting another task.15920. Report the resolver findings again before deciding whether another task is160 safe to select.16121. Stop at any founder, external-state, failed-verification, stale-task, source162 mismatch, open-conflict, non-AI-owner, or release-claim gate. Do not163 advance to the next task until the gate is resolved or explicitly converted164 into a ready AI-owned task.16522. Hand off. Commit only when the user explicitly authorizes the exact commit.166167## Not-Ready Rule168169If authority docs, MVP scope, execution rules, requirement basis, or task files170are missing, do not pretend execution is ready. Route the user to171`/build-right-preflight` or create the smallest Sprint 0 blocker needed to172establish the missing execution surface.173174Prototype tasks may run from `prototype-assumption` only when reversibility,175learning hook, and validation required before product truth are explicit.176177For skill release/manual trials, record the exact source under test. If the178installed or invoked skill is stale versus the repo-local skill source, mark the179trial `partial-needs-rerun` and do not advance release gates to ready.180181## Scope Rule182183Do not silently widen scope. If the task reveals unrelated work, create a184follow-up issue and continue only inside the selected task boundary.185186## Stop/Ask Gate187188After each task, check whether the next step is truly AI-owned and ready. Stop189and ask or report the blocker when the next step requires:190191- founder-owned product, positioning, buyer/user, or MVP decisions192- ready or active task ownership that is not AI193- open conflicts in `docs/conflicts.md`194- external discovery, search indexing, publishing, secrets, paid services, or195 production access196- failed verification, stale task state, source mismatch, or ambiguous evidence197- required subagent review that was skipped without an equivalent substitute198199Continuing through a prepared queue is allowed only while every next task is200ready, AI-owned, evidence-backed, and not blocked by one of these gates.201202Never automatically commit, push, merge, publish, deploy, or abort or resolve203an existing Git operation. Perform those actions only when the user explicitly204authorizes the exact action and target.205206## User-Visible Status Badge207208End every final response with exactly one status badge block:209210```text211✅ [DONE] Status: DONE212Decision: <decision/result>213Next action: <next action or none>214Needs user input: <none | concise ask>215Blocked by: <none | blocker>216```217218Use this status map:219220- `✅ [DONE] Status: DONE` for a completed task with evidence,221 verification, and tracker updates.222- `🟢 [GREEN] Status: ALL GREEN` for `execute-task` or223 `continue-active-task` before implementation starts.224- `🟡 [YELLOW] Status: NEEDS INPUT` for `ask-founder`.225- `🟠 [ORANGE] Status: NEEDS WORK` for AI-owned follow-up work that is226 not yet a ready execution task.227- `🔵 [BLUE] Status: WAITING EXTERNAL` for `wait-external`, publishing,228 indexing, credentials, paid services, production access, or third-party state.229- `🔴 [RED] Status: BLOCKED` for `create-blocker`, `no-ready-task`,230 `invalid-state`, open conflicts, failed verification, stale/source mismatch,231 non-AI-owned task ownership, or skipped required review without substitute.