Vibe Plan Execution
Overview
Execute an existing implementation plan without inventing missing behavior. Bind
to the plan, verify the facts it depends on, implement the smallest safe current
slice, and stop when reality contradicts the plan.
Questioning a plan is required when its sections conflict or implementation
reveals a defect. The plan is authority for scope and intent, not proof that
every implementation instruction is correct. Deviating from it is not allowed
until verified evidence proves the plan is incorrect, stale, impossible, unsafe,
or already satisfied. Treat "this looks redundant" as a hypothesis, not as
permission to skip planned API, specification, implementation, or test work.
When the defect changes the requirements, acceptance criteria, proof strategy,
or implementation contract, return to the owning requirements or planning
artifact before editing that behavior. Do not turn a stale plan into a series of
one-off patches.
If no concrete plan exists, return to planning before coding. A prior planning
workflow can produce a valid plan, but no specific workflow is a prerequisite
for this skill.
Effect And Write Boundaries
For every consolidation block this package carries, here and in its references: where this package declares a stricter or narrower rule in its own text, that declaration controls.
For every gate and schema block this package carries, here and in its references: this package may state which of its phases the block applies to; it may not change the block's inputs, outcomes, or fields.
Write nothing beyond what the phase's own effect class and its declared boundary permit.
- Declare exactly one effect class for every workflow phase, in that phase's own text.
- In a read-only phase, read and report; make chat the deliverable — findings, alignment, or direction.
- In a read-only phase, edit no source, test, config, doc, or other file, and run no command that mutates runtime or repository state.
- In a read-only phase, never stage, commit, tag, push, change versions, delete data, or start services.
- In a read-only phase, write a file only when the current user explicitly asks for a saved artifact.
- In an artifact-only phase, create or update the artifact it owns: the requirements spec, the plan, the plan-review state, the instruction files, or the text artifacts the request names.
- In an artifact-only phase, write the supporting paths its own text declares:
- the text it was asked to revise (comments, docstrings, docs);
- a confirmed reflection into the bound plan;
- an ignore file it previewed and the user confirmed;
- a narrowly confirmed configuration edit its text names;
- a decision record or findings report its own text declares.
- In an artifact-only phase, leave those verified changes in the working tree.
- In an artifact-only phase, never implement executable behavior, never edit application code or tests as implementation, never produce an artifact another phase owns, and never perform release work.
- Never let an artifact-only phase's artifact authorize same-turn implementation.
- In a state-changing phase, edit files and run commands inside the scope its own text declares — the unit it implements, the repair it proves, the fixes it applies, the round it integrates, or the commit it executes.
- In a state-changing phase, keep its edits to the smallest verified unit of that scope.
- In a state-changing phase, leave paths outside the scope, pre-existing working-tree changes the phase did not make, and runtime or external state beyond the scope unwritten unless the current user selects them.
- Keep every irreversible or outward-facing operation under its own consent.
The scope this phase declares is the current slice the bound plan authorizes,
implemented as the smallest coherent unit of that slice that can be tested,
plus the decision records and findings reports named under Durable Records.
Durable Records
Before recording a settled decision, deferring a finding, closing a unit, or
starting this phase, read references/durable-records.md. This phase writes
docs/decisions/ and docs/reports/findings/, or the repository's existing
record directory, as declared supporting paths.
Plan Sources
This skill executes any concrete bound implementation plan. The plan may come
from a planning workflow, a hand-written specification, an issue, a task list,
or an inline plan supplied by the user.
Planning workflows that write a Markdown plan artifact and return only a short
user-facing summary need one extra check. For any plan source, when a local plan
file path is available, read and bind to that file before using any pasted
summary or conversation recap. When the plan has these sections, read them
directly:
Goal, Requirements, and Acceptance criteria define the behavior
contract for the current slice.
Verified facts and sources is reusable plan evidence. Re-check workspace
facts that may have changed since planning; plan-authored Local investigation must become current Local evidence before implementation
relies on it.
Test plan defines the first verification path unless local evidence shows it
is stale or insufficient.
Capability dependencies, when present, names exceptional capabilities whose
absence materially changes feasibility, safety, proof strength, or method.
Re-check availability and use the recorded fallback or blocker.
Behavior contract inventory, Behavioral equivalence analysis,
Failure-pattern checks, Plan integrity gates, and recovery sections define
high-risk contract constraints when present.
Implementation plan defines the edit order and proposed means; do not add
adjacent work. When an implementation step conflicts with higher-level
requirements, acceptance criteria, non-goals, safety constraints, or verified
local reality, treat that as a plan defect instead of implementing it blindly.
Implementation progress, when present, is an intentional durable resume
ledger. Read and verify it before choosing the current item. Its absence is
normal for same-session work and does not authorize creating one.
Risks and unproven items and Proceed condition decide whether coding
starts, stays conditional, or returns to planning.
When the current task is an execution/deviation decision rather than editing,
name the bound plan and the material sections that control the decision. Keep
the affected existing-behavior or lifecycle dimensions, current out-of-scope
items, and explicitly non-selected checks visible when omitting them could make
the proposed shortcut look authorized.
When the user explicitly asks for a response-only analysis of supplied plan
and repository state and forbids mutating this checkout, evaluate that
represented state under this execution phase's normal obligations: describe the
applicable edits, verification, records, findings entries, index rows, and
checkpoint decision or handoff without performing any mutation or claiming that
a described action occurred, and describe the artifacts this phase would itself
write rather than substituting carry-forward packets merely because delivery is
response-only. This changes delivery only; during actual execution a
description satisfies no required write or verification.
If the bound plan says implementation is blocked, do not start coding. If it is
conditional on proof or accepted risk, perform the proof first or restate the
accepted risk before touching affected code.
Treat user-facing summaries as navigation aids, not as complete implementation
contracts. If a summary conflicts with the referenced plan artifact, bind to the
artifact and surface the conflict before editing when it affects scope,
behavior, verification, risk, or proceed conditions.
Before reporting completion, make the binding visible: name the authoritative
plan path and the current slice, then summarize the acceptance and verification
gates that controlled the kept changes. A final reply that only lists edited
files and behavior is not proof that the referenced artifact was read or that
summary-only scope additions were rejected.
Bind the selected plan path and re-read its current content before choosing an
item. Existing commit, revision, or host evidence may help identify the reviewed
state when already available, but execution does not require plan-maintained
hashes. Compare current authority-bearing requirements, acceptance criteria,
scope, risks, tests, and steps with the reviewed contract. Unclear semantic drift
blocks and returns to plan revision; an intentional progress-only update or
harmless formatting change does not require identity reconciliation.
If a referenced plan lacks the referenced item, search bounded candidate plans.
Rebind only when exactly one owns the item and the referenced artifact's ledger
points forward to it; disclose both paths. Otherwise stop for authority.
Complete only a plan-authored reserved decision field. Record date, authority,
evidence, decision owner, response carrier, owning revision, and proceed update;
never change scope, criteria, tests, risks, or steps through that field. Batch
only simultaneously knowable startup decisions. A completed reserved-decision
answer or a dated superseding decision that binds later units is also written as
a decision record and cited from the plan.
A current user instruction may itself be the response carrier when it explicitly
names the resource, permission, or choice reserved by that decision. Quote the
instruction verbatim, record the coordinator's interpretation and its exact
scope, and keep any inference beyond the named subject blocked.
If faithful execution proves a recorded human-selected mechanism unavailable,
unsafe, or contradictory, return to that decision owner with evidence and
bounded alternatives. Do not silently substitute or erase it; record a dated
superseding decision through the owning artifact revision.
Concrete Plan Requirements
A plan is concrete enough to execute only when the current slice has:
- A goal and user-visible outcome.
- In-scope and out-of-scope behavior.
- Acceptance criteria or equivalent pass/fail checks.
- A test, proof, or manual verification path.
- Implementation steps or a named code area to inspect first.
- Open risks, unproven items, or a statement that none are known.
A referenced summary alone is not concrete enough when it points to an
accessible plan artifact. Read the artifact first. If the path is missing,
unreadable, outside permitted access, or ambiguous, ask for the plan content or a
corrected local path instead of implementing from the summary.
If any missing item changes what to build, how to test it, data handling,
permissions, external contracts, or user experience, return to planning instead
of inventing the gap.
When execution stops because the target source or proof surface is absent, keep
the bound plan intact. Report the current plan item, the exact missing local
evidence, the verification or review that could not run, the evidence-backed
progress status, any current no-commit instruction, and the path or artifact
needed to resume. Do not rewrite requirements, acceptance criteria, or plan
steps merely to create a progress artifact.
When a current instruction says Do not commit, preserve that exact reason in
the execution summary and, when an intentional progress ledger exists, in its
commit-action field. Do not replace it with No commit requested, missing
verification, or another inferred reason.
When Not to Use
Do not use this skill for:
- Creating the initial plan, specification, acceptance criteria, or test plan.
- Rough coding requests where the user has not supplied or referenced a plan.
- General code explanation, debugging advice, or tiny edits with no plan context.
- Planning-review work where the right output is a revised plan rather than code.
Evidence Classes
Label every load-bearing claim with one of the four shared base evidence classes.
- Label a claim with its class wherever it is load-bearing: where it affects scope, feasibility, behavior, verification, risk, implementation order, commit authorization, or whether work may proceed.
Primary source: official documentation, an authoritative specification, upstream source, vendor documentation, user-provided source material, or a known-good historical implementation.
Local investigation: repository inspection, non-mutating command output, reproduced behavior, or existing tests, configs, schemas, and logs read in the current workspace.
Unproven: memory, inference, secondhand claims or summaries, stale documentation, unchecked user claims, training-data recall, missing access, or hypotheses.
Accepted risk: an Unproven item the user explicitly chose to proceed with after its impact was explained, or that the bound plan already records as accepted for the active request, with its impact and revisit trigger preserved.
- Extend this set only by a package's declaration, in its own text, of a disjoint extension or a freshness qualifier.
- Never let such a declaration rename or redefine a base class.
- Read an execution phase's
Plan class as authority by binding to the bound plan, and its Local evidence label as an execution-freshness label; neither is a rename or a redefinition of a base class.
The two labels below are this phase's own:
Plan: stated by the bound implementation plan, specification, acceptance
criteria, or task list.
Local evidence: verified in the current workspace by reading code, tests,
configs, schemas, logs, or running relevant checks.
Use all six labels internally and in user-facing blockers, questions, plan
deviation notices, commit-checkpoint decisions, and execution summaries when
provenance affects scope, behavior, verification, risk, commit authorization,
or whether implementation may proceed. Label the load-bearing claims; do not
list unused classes merely to satisfy a template.
Implementation steps may rely only on Plan, Local evidence, or Primary source. Accepted risk may support only the conditional steps that the plan
already tied to that risk. Convert all other Unproven items into proof work,
questions, or blockers.
When execution writes verified facts back into a planning-owned artifact, keep
that artifact's Local investigation label and add the verification date and
source. Use Local evidence for execution receipts, summaries, blockers, and
current-session decisions; do not introduce a second taxonomy into the plan.
Do not omit evidence labels only because no files were edited. A refusal,
request for clarification, commit-message correction, or "proceed with this
slice" response still needs labeled evidence when the decision depends on the
plan or on checked facts.
Core Rules
- Identify the implementation plan before editing files. If the user references
a local plan file path, read it before editing. If multiple plans could apply,
ask the user which one is authoritative.
- Treat the user's words as intent, not verified fact. Check implementation
claims against the plan, local code, tests, configs, logs, schemas, and
official documentation before relying on them.
- The bound plan remains authoritative for scope, acceptance criteria,
non-goals, risk, and required verification even when it seems redundant,
inefficient, overly broad, or simplifiable. It is not a shield for known-bad
implementation details. Only
Local evidence or Primary source
verification can prove that a planned step may be skipped, reordered,
narrowed, corrected, or replaced.
- Do not implement outside the plan's behavior contract unless the Plan
Deviation Gate has passed and the user explicitly agrees. A Plan Validity
Gate correction that preserves the existing goal, requirements, acceptance
criteria, non-goals, and safety/data/permission/security/UX constraints is not
outside-plan work. When an unplanned change appears necessary, explain the
reason, impact, and closest plan-preserving alternative first.
- If plan sections conflict, give priority to the user-visible behavior
contract: explicit safety/security/data constraints,
Acceptance criteria,
Requirements, and non-goals outrank lower-level implementation steps,
helper choices, checkpoint messages, or planning notes. Do not implement a
lower-level step that would violate the higher-level contract.
- Treat a user follow-up that names a concrete failure mode as implementation
evidence to verify, not as automatic scope creep. Do not reject it merely
because the current implementation follows the plan text. Re-check the plan,
local code, tests, current diff, and relevant primary sources, then either
correct within the existing contract or stop for a plan-changing decision.
- Do not treat a plan's status-quo or out-of-scope statement as proof that a
locally surprising existing behavior should be preserved. If implementation
relies on a workaround for that behavior, or current evidence shows it
conflicts with the higher-level behavior contract, run the Plan Validity Gate
instead of finishing the workaround because the plan scoped the behavior out.
- A verified plan-changing defect starts a requirements or plan revision loop,
not an ad hoc implementation patch. Identify the owning artifact: return to
requirements-spec work when user-visible behavior, scope, data handling,
permissions, security posture, UX, external contracts, or acceptance criteria
are wrong; return to implementation planning when the goal is still correct
but the plan's proof strategy, test strategy, edit order, implementation
surface, or risk handling is wrong. Resume execution only after a revised
artifact or replacement plan contract is bound.
- A Plan Validity stop is visible in the handoff: name the conflicting
Plan
claim, the Local evidence or Primary source that contradicts it, the
contract surfaces affected, the owning artifact to revise, and the condition
for rebinding execution. Do not silently rewrite the plan and report only the
corrected conclusion.
- Each verified, reviewed, self-contained unit closes under the checkpoint
default in the Commit Selection section; staging, message transport,
trailers, and stored-commit inspection stay with the commit-execution
workflow.
- An acceptance metric is executable proof only after current
Local evidence
shows it distinguishes the before state from the required after state. A
known-bad baseline that already passes the metric blocks completion and
returns to the plan's proof strategy.
- A release step, destructive operation, external side effect, delegated
execution request, or other user-consent boundary is different: it is a
consent-bound plan item. If exact authorization is missing, run the Startup
Consent Preflight before editing the affected slice. Do not implement through
later slices hoping to reconstruct consent decisions from a larger mixed diff.
- A user request to skip planned verification, API, specification, test, or
implementation work is a plan-change request, not evidence. Verify first or
stop for a planning update when the skipped work affects correctness, data,
permissions, external contracts, security, or UX behavior.
- Preference for a smaller diff, local style, architectural taste, speed,
memory, or "this should be enough" is never a valid reason to deviate from
the plan.
- Do not silently "fix" an incorrect or impossible plan. State the conflict with
evidence, propose a viable adjustment, and wait when the decision changes
product behavior, data handling, security, cost, schedule, or user experience.
- For non-technical users, explain blockers and choices in practical terms.
Prefer concrete options such as "keep the original scope" or "expand the plan
to include account permissions" over abstract architecture language.
- When a non-technical user is unsure about behavior the bound plan already
marks out of scope, do not turn that uncertainty into a blocker. State that
the behavior is outside the current plan and continue the current slice
without it, unless the user explicitly asks to change the plan scope.
- Prefer the repository's existing patterns and the smallest change that satisfies
the current slice. Do not overfit to minimalism when the plan requires a
broader but clearly bounded change.
- Bound high-risk planning sections are execution contract, not background.
Behavior inventories, equivalence dimensions, known-good recovery evidence,
diagnostic-scope limits, success-criteria freezes, plan-body firewall
outcomes, and selected failure-pattern checks constrain implementation and
verification.
- A current-slice implementation assumption the bound plan leaves
Unproven
lets that slice proceed only under the Accepted-Risk Semantics section.
- When the bound plan intentionally includes
Implementation progress, update
only that section with evidence-backed status when safe and when no
unrecorded qualifying decision remains. Do not edit scope,
requirements, acceptance criteria, tests, risks, or steps as a status update.
When the section is absent, keep progress in the execution summary unless
cross-session/cross-actor resumability or an explicit user/project request
requires returning to planning to add durable progress state.
- A progress update is evidence-backed status, not proof by itself. Use statuses
such as
Not started, In progress, Completed, Blocked, or Skipped with approved deviation, and include the verification command or manual check
result, review disposition, commit action if any, remaining blocker, and next
item. Do not mark an item Completed when verification was skipped, failing,
unavailable, only self-reported by delegated output, or when any core acceptance sentinel from the bound plan is missing, failed, stale, or unmapped even though the broader suite is green.
Commit Selection
Only an explicit user request, a bound plan item, or a workflow's own verified checkpoint selects a commit.
- Select a commit from exactly three sources: an explicit current-user request; a bound approved plan item requiring that checkpoint; or a state-changing workflow closing its own verified, reviewed, in-scope unit under its checkpoint default.
- Never let routing or invocation, edit permission, a convenient stopping point, tracked changes in the working tree, or an available commit-execution workflow select a commit.
- Never treat an unverified unit as a handoff.
- Execute in commit-execution only the commits those sources select; that phase has no checkpoint default of its own.
- Close a self-contained unit of the workflow's own work with a local commit of exactly that unit once it is implemented, verified, reviewed, and its material findings dispositioned.
- Commit that unit without waiting for a separate commit instruction.
- Never let a multi-unit run accumulate as one undifferentiated working tree.
- When the default is suspended, leave the verified changes in the working tree and report the reason.
- Let the checkpoint default reach only local commits of the unit's own verified changes.
- Select no commit from discovery-only, blocked, unchanged, failing, unverified, or work-in-progress state.
- Never widen the staged set beyond the verified unit.
- Exclude pre-existing working-tree changes the workflow did not make, an artifact whose tracked status would itself be new, and paths outside the unit.
- Never treat an available commit-execution workflow or ambient tracked status as a reason to include them.
- When the unit's changes cannot be separated from unrelated working-tree state, report the mixed state and ask instead of committing.
- Route every selected commit through the commit-execution workflow with the verified scope, its test and review evidence, its unrelated-path exclusions, and any proposed message.
- Leave staging, file-set and exact-diff review, message transport, history safety, and post-commit verification to that workflow.
- Never read a request to commit as a request to push.
- Keep push, release preparation, version changes, tags, amend, rebase, reset, stash, squash, destructive actions including cleanup, force-adds, tracking a newly created artifact, external side effects, and unrelated or ambiguous paths separately consent-bound even when a checkpoint was selected.
- Never let a route, checkpoint, or handoff implicitly authorize them.
Example: "the user asked for a commit this turn" names a source; "this is a good stopping point" does not.
Exception: a current no-commit instruction, a bound plan that forbids commits, or project policy against commits suspends the checkpoint default.
The unit this workflow closes is a verified, reviewed execution unit of the
bound plan; this phase hands it to the commit-execution workflow and neither
stages nor commits itself. Use plan-authored Commit checkpoints when they
exist; otherwise close on the natural independently verified slice boundaries.
If the host or harness requires separate confirmation for local commits,
ask once at startup before the first edit that can produce tracked changes, not
again at each checkpoint. That startup confirmation is in addition to the gate's
per-commit ask and never replaces it.
Commit-Selection Gate
Never run a plain git commit without naming the selection source it rests on.
- With no user-installed hook enforcing this gate, this wording is the whole gate: apply it yourself before the command runs.
- Name one recorded source before committing: the current user's request (
user-turn), the bound plan item (bound-plan-item), or the workflow's own checkpoint of a verified unit (specialist-checkpoint).
- Treat
agent-proposed as a recorded proposal, never a selection.
- When the workflow is router-bound, have the router record that source as a
commit-selection event before the command runs.
- For a standalone commit with no router active, name the direct current-user request or the verified checkpoint handoff and follow the phase's ordinary confirmation policy.
- When no source can be named, do not commit; ask the user whether a commit is wanted.
- Return
allow when the command is not a commit.
- Return
ask on every plain commit, quoting from the session record under .plans/vibe-sessions/ the recorded phase and the most recent recorded commit-selection event's source, at, and note.
- Or state that no
commit-selection event is recorded, or that the record is absent, malformed, stale, foreign, session-unbound, or conflicting.
- Never return
deny from this gate.
- Never allow a plain commit silently: surface the recorded
source at the prompt so a self-attested selection is caught there.
- Answer
ask, never deny, for a record in any invalid state.
Exception: an amend or other history rewrite belongs to the history-mutation gate, not this one.
This gate applies to the plan-execution phase's checkpoint commit.
Accepted-Risk Semantics
Only Accepted risk lets an Unproven item support work that depends on it.
- Label an item
Accepted risk only on the human user's explicit choice to proceed after its impact was explained, or on the bound plan's already-recorded acceptance for the active request.
- Never let a proxy decision, an AI-selected default, or a risk judged low make the acceptance.
- Record the exact assumption, who accepted it and why, the impact area (feasibility, behavior, data, integration, performance, security, UX, cost, or schedule), the fastest proof path, and the revisit trigger.
- Tie the acceptance to the conditional step, deferred decision, or follow-up it affects.
- Keep the label
Accepted risk; never convert the item into verified fact.
- Support only the conditional steps already tied to the accepted risk, and keep those steps conditional wherever the assumption could invalidate them.
- Turn every other
Unproven item that blocks the current work into proof work, a question, or a blocker.
- Never let risk level by itself clear such a blocker.
- Defer decisions the bounded current work does not need rather than letting them block it.
- Never use accepted risk for irreversible, destructive, unsafe, illegal, or credential-exposing actions; those require proof or a safer alternative.
- Record a human deliberately selecting a known destructive action as a human-risk decision.
- Never let accepted risk stand in for that decision or excuse an unproven safety or legality premise.
Here the acceptance must be recorded in the bound plan itself before the
affected slice is implemented; an acceptance given only in conversation is
written into the plan first.
Execution Gates And Delegation Reference
Before deviating from a bound plan, correcting a plan defect, crossing a consent
boundary, or delegating execution or review work, read
references/execution-gates-and-delegation.md. That reference owns the Plan
Deviation Gate, Plan Validity Gate, Existing-Feature Repair Handoff, Startup
Consent Preflight, human-risk decisions, Delegated Execution Support, and
delegated-result proof rules.
Execution Workflow, Review, And Quality Reference
Before executing a bound plan slice, launching post-implementation review,
updating an applicable resumable-progress ledger, communicating completion or
blockers, or applying final quality checks, read
references/execution-workflow-and-quality.md. That reference owns the
detailed execution loop, post-implementation review gate, stop-condition
handling, user communication details, ledger updates, commit-checkpoint
handling, and quality checklist.
1---2name: vibe-plan-execution3description: Use when the user asks to execute, implement, continue, or apply an existing implementation plan, specification, acceptance criteria, task plan, or prior planning output. Do not use for plan creation or coding requests with no concrete plan to bind.4---56# Vibe Plan Execution78## Overview910Execute an existing implementation plan without inventing missing behavior. Bind11to the plan, verify the facts it depends on, implement the smallest safe current12slice, and stop when reality contradicts the plan.1314Questioning a plan is required when its sections conflict or implementation15reveals a defect. The plan is authority for scope and intent, not proof that16every implementation instruction is correct. Deviating from it is not allowed17until verified evidence proves the plan is incorrect, stale, impossible, unsafe,18or already satisfied. Treat "this looks redundant" as a hypothesis, not as19permission to skip planned API, specification, implementation, or test work.20When the defect changes the requirements, acceptance criteria, proof strategy,21or implementation contract, return to the owning requirements or planning22artifact before editing that behavior. Do not turn a stale plan into a series of23one-off patches.2425If no concrete plan exists, return to planning before coding. A prior planning26workflow can produce a valid plan, but no specific workflow is a prerequisite27for this skill.2829## Effect And Write Boundaries3031<!-- shared-contract:class language=chat commit=state-changing effect=state-changing -->32<!-- shared-contract:begin closing source=shared/vibe-contract.md -->33For every consolidation block this package carries, here and in its references: where this package declares a stricter or narrower rule in its own text, that declaration controls.34For every gate and schema block this package carries, here and in its references: this package may state which of its phases the block applies to; it may not change the block's inputs, outcomes, or fields.35<!-- shared-contract:end closing -->36<!-- shared-contract:begin effect-write-boundaries source=shared/vibe-contract.md -->37**Write nothing beyond what the phase's own effect class and its declared boundary permit.**3839- Declare exactly one effect class for every workflow phase, in that phase's own text.40- In a read-only phase, read and report; make chat the deliverable — findings, alignment, or direction.41- In a read-only phase, edit no source, test, config, doc, or other file, and run no command that mutates runtime or repository state.42- In a read-only phase, never stage, commit, tag, push, change versions, delete data, or start services.43- In a read-only phase, write a file only when the current user explicitly asks for a saved artifact.44- In an artifact-only phase, create or update the artifact it owns: the requirements spec, the plan, the plan-review state, the instruction files, or the text artifacts the request names.45- In an artifact-only phase, write the supporting paths its own text declares:46 - the text it was asked to revise (comments, docstrings, docs);47 - a confirmed reflection into the bound plan;48 - an ignore file it previewed and the user confirmed;49 - a narrowly confirmed configuration edit its text names;50 - a decision record or findings report its own text declares.51- In an artifact-only phase, leave those verified changes in the working tree.52- In an artifact-only phase, never implement executable behavior, never edit application code or tests as implementation, never produce an artifact another phase owns, and never perform release work.53- Never let an artifact-only phase's artifact authorize same-turn implementation.54- In a state-changing phase, edit files and run commands inside the scope its own text declares — the unit it implements, the repair it proves, the fixes it applies, the round it integrates, or the commit it executes.55- In a state-changing phase, keep its edits to the smallest verified unit of that scope.56- In a state-changing phase, leave paths outside the scope, pre-existing working-tree changes the phase did not make, and runtime or external state beyond the scope unwritten unless the current user selects them.57- Keep every irreversible or outward-facing operation under its own consent.58<!-- shared-contract:end effect-write-boundaries -->5960The scope this phase declares is the current slice the bound plan authorizes,61implemented as the smallest coherent unit of that slice that can be tested,62plus the decision records and findings reports named under `Durable Records`.6364## Durable Records6566Before recording a settled decision, deferring a finding, closing a unit, or67starting this phase, read `references/durable-records.md`. This phase writes68`docs/decisions/` and `docs/reports/findings/`, or the repository's existing69record directory, as declared supporting paths.7071## Plan Sources7273This skill executes any concrete bound implementation plan. The plan may come74from a planning workflow, a hand-written specification, an issue, a task list,75or an inline plan supplied by the user.7677Planning workflows that write a Markdown plan artifact and return only a short78user-facing summary need one extra check. For any plan source, when a local plan79file path is available, read and bind to that file before using any pasted80summary or conversation recap. When the plan has these sections, read them81directly:8283- `Goal`, `Requirements`, and `Acceptance criteria` define the behavior84 contract for the current slice.85- `Verified facts and sources` is reusable plan evidence. Re-check workspace86 facts that may have changed since planning; plan-authored `Local87 investigation` must become current `Local evidence` before implementation88 relies on it.89- `Test plan` defines the first verification path unless local evidence shows it90 is stale or insufficient.91- `Capability dependencies`, when present, names exceptional capabilities whose92 absence materially changes feasibility, safety, proof strength, or method.93 Re-check availability and use the recorded fallback or blocker.94- `Behavior contract inventory`, `Behavioral equivalence analysis`,95 `Failure-pattern checks`, `Plan integrity gates`, and recovery sections define96 high-risk contract constraints when present.97- `Implementation plan` defines the edit order and proposed means; do not add98 adjacent work. When an implementation step conflicts with higher-level99 requirements, acceptance criteria, non-goals, safety constraints, or verified100 local reality, treat that as a plan defect instead of implementing it blindly.101- `Implementation progress`, when present, is an intentional durable resume102 ledger. Read and verify it before choosing the current item. Its absence is103 normal for same-session work and does not authorize creating one.104- `Risks and unproven items` and `Proceed condition` decide whether coding105 starts, stays conditional, or returns to planning.106107When the current task is an execution/deviation decision rather than editing,108name the bound plan and the material sections that control the decision. Keep109the affected existing-behavior or lifecycle dimensions, current out-of-scope110items, and explicitly non-selected checks visible when omitting them could make111the proposed shortcut look authorized.112113When the user explicitly asks for a response-only analysis of supplied plan114and repository state and forbids mutating this checkout, evaluate that115represented state under this execution phase's normal obligations: describe the116applicable edits, verification, records, findings entries, index rows, and117checkpoint decision or handoff without performing any mutation or claiming that118a described action occurred, and describe the artifacts this phase would itself119write rather than substituting carry-forward packets merely because delivery is120response-only. This changes delivery only; during actual execution a121description satisfies no required write or verification.122123If the bound plan says implementation is blocked, do not start coding. If it is124conditional on proof or accepted risk, perform the proof first or restate the125accepted risk before touching affected code.126127Treat user-facing summaries as navigation aids, not as complete implementation128contracts. If a summary conflicts with the referenced plan artifact, bind to the129artifact and surface the conflict before editing when it affects scope,130behavior, verification, risk, or proceed conditions.131132Before reporting completion, make the binding visible: name the authoritative133plan path and the current slice, then summarize the acceptance and verification134gates that controlled the kept changes. A final reply that only lists edited135files and behavior is not proof that the referenced artifact was read or that136summary-only scope additions were rejected.137138Bind the selected plan path and re-read its current content before choosing an139item. Existing commit, revision, or host evidence may help identify the reviewed140state when already available, but execution does not require plan-maintained141hashes. Compare current authority-bearing requirements, acceptance criteria,142scope, risks, tests, and steps with the reviewed contract. Unclear semantic drift143blocks and returns to plan revision; an intentional progress-only update or144harmless formatting change does not require identity reconciliation.145146If a referenced plan lacks the referenced item, search bounded candidate plans.147Rebind only when exactly one owns the item and the referenced artifact's ledger148points forward to it; disclose both paths. Otherwise stop for authority.149150Complete only a plan-authored reserved decision field. Record date, authority,151evidence, decision owner, response carrier, owning revision, and proceed update;152never change scope, criteria, tests, risks, or steps through that field. Batch153only simultaneously knowable startup decisions. A completed reserved-decision154answer or a dated superseding decision that binds later units is also written as155a decision record and cited from the plan.156157A current user instruction may itself be the response carrier when it explicitly158names the resource, permission, or choice reserved by that decision. Quote the159instruction verbatim, record the coordinator's interpretation and its exact160scope, and keep any inference beyond the named subject blocked.161162If faithful execution proves a recorded human-selected mechanism unavailable,163unsafe, or contradictory, return to that decision owner with evidence and164bounded alternatives. Do not silently substitute or erase it; record a dated165superseding decision through the owning artifact revision.166167## Concrete Plan Requirements168169A plan is concrete enough to execute only when the current slice has:170171- A goal and user-visible outcome.172- In-scope and out-of-scope behavior.173- Acceptance criteria or equivalent pass/fail checks.174- A test, proof, or manual verification path.175- Implementation steps or a named code area to inspect first.176- Open risks, unproven items, or a statement that none are known.177178A referenced summary alone is not concrete enough when it points to an179accessible plan artifact. Read the artifact first. If the path is missing,180unreadable, outside permitted access, or ambiguous, ask for the plan content or a181corrected local path instead of implementing from the summary.182183If any missing item changes what to build, how to test it, data handling,184permissions, external contracts, or user experience, return to planning instead185of inventing the gap.186187When execution stops because the target source or proof surface is absent, keep188the bound plan intact. Report the current plan item, the exact missing local189evidence, the verification or review that could not run, the evidence-backed190progress status, any current no-commit instruction, and the path or artifact191needed to resume. Do not rewrite requirements, acceptance criteria, or plan192steps merely to create a progress artifact.193194When a current instruction says `Do not commit`, preserve that exact reason in195the execution summary and, when an intentional progress ledger exists, in its196commit-action field. Do not replace it with `No commit requested`, missing197verification, or another inferred reason.198199## When Not to Use200201Do not use this skill for:202203- Creating the initial plan, specification, acceptance criteria, or test plan.204- Rough coding requests where the user has not supplied or referenced a plan.205- General code explanation, debugging advice, or tiny edits with no plan context.206- Planning-review work where the right output is a revised plan rather than code.207208## Evidence Classes209210<!-- shared-contract:begin evidence-classes source=shared/vibe-contract.md -->211**Label every load-bearing claim with one of the four shared base evidence classes.**212213- Label a claim with its class wherever it is load-bearing: where it affects scope, feasibility, behavior, verification, risk, implementation order, commit authorization, or whether work may proceed.214- `Primary source`: official documentation, an authoritative specification, upstream source, vendor documentation, user-provided source material, or a known-good historical implementation.215- `Local investigation`: repository inspection, non-mutating command output, reproduced behavior, or existing tests, configs, schemas, and logs read in the current workspace.216- `Unproven`: memory, inference, secondhand claims or summaries, stale documentation, unchecked user claims, training-data recall, missing access, or hypotheses.217- `Accepted risk`: an `Unproven` item the user explicitly chose to proceed with after its impact was explained, or that the bound plan already records as accepted for the active request, with its impact and revisit trigger preserved.218- Extend this set only by a package's declaration, in its own text, of a disjoint extension or a freshness qualifier.219- Never let such a declaration rename or redefine a base class.220- Read an execution phase's `Plan` class as authority by binding to the bound plan, and its `Local evidence` label as an execution-freshness label; neither is a rename or a redefinition of a base class.221<!-- shared-contract:end evidence-classes -->222223The two labels below are this phase's own:224225- `Plan`: stated by the bound implementation plan, specification, acceptance226 criteria, or task list.227- `Local evidence`: verified in the current workspace by reading code, tests,228 configs, schemas, logs, or running relevant checks.229230Use all six labels internally and in user-facing blockers, questions, plan231deviation notices, commit-checkpoint decisions, and execution summaries when232provenance affects scope, behavior, verification, risk, commit authorization,233or whether implementation may proceed. Label the load-bearing claims; do not234list unused classes merely to satisfy a template.235236Implementation steps may rely only on `Plan`, `Local evidence`, or `Primary237source`. `Accepted risk` may support only the conditional steps that the plan238already tied to that risk. Convert all other `Unproven` items into proof work,239questions, or blockers.240241When execution writes verified facts back into a planning-owned artifact, keep242that artifact's `Local investigation` label and add the verification date and243source. Use `Local evidence` for execution receipts, summaries, blockers, and244current-session decisions; do not introduce a second taxonomy into the plan.245246Do not omit evidence labels only because no files were edited. A refusal,247request for clarification, commit-message correction, or "proceed with this248slice" response still needs labeled evidence when the decision depends on the249plan or on checked facts.250251## Core Rules252253- Identify the implementation plan before editing files. If the user references254 a local plan file path, read it before editing. If multiple plans could apply,255 ask the user which one is authoritative.256- Treat the user's words as intent, not verified fact. Check implementation257 claims against the plan, local code, tests, configs, logs, schemas, and258 official documentation before relying on them.259- The bound plan remains authoritative for scope, acceptance criteria,260 non-goals, risk, and required verification even when it seems redundant,261 inefficient, overly broad, or simplifiable. It is not a shield for known-bad262 implementation details. Only `Local evidence` or `Primary source`263 verification can prove that a planned step may be skipped, reordered,264 narrowed, corrected, or replaced.265- Do not implement outside the plan's behavior contract unless the Plan266 Deviation Gate has passed and the user explicitly agrees. A Plan Validity267 Gate correction that preserves the existing goal, requirements, acceptance268 criteria, non-goals, and safety/data/permission/security/UX constraints is not269 outside-plan work. When an unplanned change appears necessary, explain the270 reason, impact, and closest plan-preserving alternative first.271- If plan sections conflict, give priority to the user-visible behavior272 contract: explicit safety/security/data constraints, `Acceptance criteria`,273 `Requirements`, and non-goals outrank lower-level implementation steps,274 helper choices, checkpoint messages, or planning notes. Do not implement a275 lower-level step that would violate the higher-level contract.276- Treat a user follow-up that names a concrete failure mode as implementation277 evidence to verify, not as automatic scope creep. Do not reject it merely278 because the current implementation follows the plan text. Re-check the plan,279 local code, tests, current diff, and relevant primary sources, then either280 correct within the existing contract or stop for a plan-changing decision.281- Do not treat a plan's status-quo or out-of-scope statement as proof that a282 locally surprising existing behavior should be preserved. If implementation283 relies on a workaround for that behavior, or current evidence shows it284 conflicts with the higher-level behavior contract, run the Plan Validity Gate285 instead of finishing the workaround because the plan scoped the behavior out.286- A verified plan-changing defect starts a requirements or plan revision loop,287 not an ad hoc implementation patch. Identify the owning artifact: return to288 requirements-spec work when user-visible behavior, scope, data handling,289 permissions, security posture, UX, external contracts, or acceptance criteria290 are wrong; return to implementation planning when the goal is still correct291 but the plan's proof strategy, test strategy, edit order, implementation292 surface, or risk handling is wrong. Resume execution only after a revised293 artifact or replacement plan contract is bound.294- A Plan Validity stop is visible in the handoff: name the conflicting `Plan`295 claim, the `Local evidence` or `Primary source` that contradicts it, the296 contract surfaces affected, the owning artifact to revise, and the condition297 for rebinding execution. Do not silently rewrite the plan and report only the298 corrected conclusion.299- Each verified, reviewed, self-contained unit closes under the checkpoint300 default in the Commit Selection section; staging, message transport,301 trailers, and stored-commit inspection stay with the commit-execution302 workflow.303- An acceptance metric is executable proof only after current `Local evidence`304 shows it distinguishes the before state from the required after state. A305 known-bad baseline that already passes the metric blocks completion and306 returns to the plan's proof strategy.307- A release step, destructive operation, external side effect, delegated308 execution request, or other user-consent boundary is different: it is a309 consent-bound plan item. If exact authorization is missing, run the Startup310 Consent Preflight before editing the affected slice. Do not implement through311 later slices hoping to reconstruct consent decisions from a larger mixed diff.312- A user request to skip planned verification, API, specification, test, or313 implementation work is a plan-change request, not evidence. Verify first or314 stop for a planning update when the skipped work affects correctness, data,315 permissions, external contracts, security, or UX behavior.316- Preference for a smaller diff, local style, architectural taste, speed,317 memory, or "this should be enough" is never a valid reason to deviate from318 the plan.319- Do not silently "fix" an incorrect or impossible plan. State the conflict with320 evidence, propose a viable adjustment, and wait when the decision changes321 product behavior, data handling, security, cost, schedule, or user experience.322- For non-technical users, explain blockers and choices in practical terms.323 Prefer concrete options such as "keep the original scope" or "expand the plan324 to include account permissions" over abstract architecture language.325- When a non-technical user is unsure about behavior the bound plan already326 marks out of scope, do not turn that uncertainty into a blocker. State that327 the behavior is outside the current plan and continue the current slice328 without it, unless the user explicitly asks to change the plan scope.329- Prefer the repository's existing patterns and the smallest change that satisfies330 the current slice. Do not overfit to minimalism when the plan requires a331 broader but clearly bounded change.332- Bound high-risk planning sections are execution contract, not background.333 Behavior inventories, equivalence dimensions, known-good recovery evidence,334 diagnostic-scope limits, success-criteria freezes, plan-body firewall335 outcomes, and selected failure-pattern checks constrain implementation and336 verification.337- A current-slice implementation assumption the bound plan leaves `Unproven`338 lets that slice proceed only under the Accepted-Risk Semantics section.339- When the bound plan intentionally includes `Implementation progress`, update340 only that section with evidence-backed status when safe and when no341 unrecorded qualifying decision remains. Do not edit scope,342 requirements, acceptance criteria, tests, risks, or steps as a status update.343 When the section is absent, keep progress in the execution summary unless344 cross-session/cross-actor resumability or an explicit user/project request345 requires returning to planning to add durable progress state.346- A progress update is evidence-backed status, not proof by itself. Use statuses347 such as `Not started`, `In progress`, `Completed`, `Blocked`, or `Skipped with348 approved deviation`, and include the verification command or manual check349 result, review disposition, commit action if any, remaining blocker, and next350 item. Do not mark an item `Completed` when verification was skipped, failing,351 unavailable, only self-reported by delegated output, or when any core acceptance sentinel from the bound plan is missing, failed, stale, or unmapped even though the broader suite is green.352353## Commit Selection354355<!-- shared-contract:begin commit-selection-state-changing source=shared/vibe-contract.md -->356**Only an explicit user request, a bound plan item, or a workflow's own verified checkpoint selects a commit.**357358- Select a commit from exactly three sources: an explicit current-user request; a bound approved plan item requiring that checkpoint; or a state-changing workflow closing its own verified, reviewed, in-scope unit under its checkpoint default.359- Never let routing or invocation, edit permission, a convenient stopping point, tracked changes in the working tree, or an available commit-execution workflow select a commit.360- Never treat an unverified unit as a handoff.361- Execute in commit-execution only the commits those sources select; that phase has no checkpoint default of its own.362- Close a self-contained unit of the workflow's own work with a local commit of exactly that unit once it is implemented, verified, reviewed, and its material findings dispositioned.363- Commit that unit without waiting for a separate commit instruction.364- Never let a multi-unit run accumulate as one undifferentiated working tree.365- When the default is suspended, leave the verified changes in the working tree and report the reason.366- Let the checkpoint default reach only local commits of the unit's own verified changes.367- Select no commit from discovery-only, blocked, unchanged, failing, unverified, or work-in-progress state.368- Never widen the staged set beyond the verified unit.369- Exclude pre-existing working-tree changes the workflow did not make, an artifact whose tracked status would itself be new, and paths outside the unit.370- Never treat an available commit-execution workflow or ambient tracked status as a reason to include them.371- When the unit's changes cannot be separated from unrelated working-tree state, report the mixed state and ask instead of committing.372- Route every selected commit through the commit-execution workflow with the verified scope, its test and review evidence, its unrelated-path exclusions, and any proposed message.373- Leave staging, file-set and exact-diff review, message transport, history safety, and post-commit verification to that workflow.374- Never read a request to commit as a request to push.375- Keep push, release preparation, version changes, tags, amend, rebase, reset, stash, squash, destructive actions including cleanup, force-adds, tracking a newly created artifact, external side effects, and unrelated or ambiguous paths separately consent-bound even when a checkpoint was selected.376- Never let a route, checkpoint, or handoff implicitly authorize them.377378Example: "the user asked for a commit this turn" names a source; "this is a good stopping point" does not.379380Exception: a current no-commit instruction, a bound plan that forbids commits, or project policy against commits suspends the checkpoint default.381<!-- shared-contract:end commit-selection-state-changing -->382383The unit this workflow closes is a verified, reviewed execution unit of the384bound plan; this phase hands it to the commit-execution workflow and neither385stages nor commits itself. Use plan-authored `Commit checkpoints` when they386exist; otherwise close on the natural independently verified slice boundaries.387388If the host or harness requires separate confirmation for local commits,389ask once at startup before the first edit that can produce tracked changes, not390again at each checkpoint. That startup confirmation is in addition to the gate's391per-commit ask and never replaces it.392393### Commit-Selection Gate394395<!-- shared-contract:begin commit-selection-gate source=shared/vibe-contract.md -->396**Never run a plain `git commit` without naming the selection source it rests on.**397398- With no user-installed hook enforcing this gate, this wording is the whole gate: apply it yourself before the command runs.399- Name one recorded source before committing: the current user's request (`user-turn`), the bound plan item (`bound-plan-item`), or the workflow's own checkpoint of a verified unit (`specialist-checkpoint`).400- Treat `agent-proposed` as a recorded proposal, never a selection.401- When the workflow is router-bound, have the router record that source as a `commit-selection` event before the command runs.402- For a standalone commit with no router active, name the direct current-user request or the verified checkpoint handoff and follow the phase's ordinary confirmation policy.403- When no source can be named, do not commit; ask the user whether a commit is wanted.404- Return `allow` when the command is not a commit.405- Return `ask` on every plain commit, quoting from the session record under `.plans/vibe-sessions/` the recorded `phase` and the most recent recorded `commit-selection` event's `source`, `at`, and `note`.406- Or state that no `commit-selection` event is recorded, or that the record is absent, malformed, stale, foreign, session-unbound, or conflicting.407- Never return `deny` from this gate.408- Never allow a plain commit silently: surface the recorded `source` at the prompt so a self-attested selection is caught there.409- Answer `ask`, never `deny`, for a record in any invalid state.410411Exception: an amend or other history rewrite belongs to the history-mutation gate, not this one.412<!-- shared-contract:end commit-selection-gate -->413414This gate applies to the plan-execution phase's checkpoint commit.415416## Accepted-Risk Semantics417418<!-- shared-contract:begin accepted-risk-semantics source=shared/vibe-contract.md -->419**Only `Accepted risk` lets an `Unproven` item support work that depends on it.**420421- Label an item `Accepted risk` only on the human user's explicit choice to proceed after its impact was explained, or on the bound plan's already-recorded acceptance for the active request.422- Never let a proxy decision, an AI-selected default, or a risk judged low make the acceptance.423- Record the exact assumption, who accepted it and why, the impact area (feasibility, behavior, data, integration, performance, security, UX, cost, or schedule), the fastest proof path, and the revisit trigger.424- Tie the acceptance to the conditional step, deferred decision, or follow-up it affects.425- Keep the label `Accepted risk`; never convert the item into verified fact.426- Support only the conditional steps already tied to the accepted risk, and keep those steps conditional wherever the assumption could invalidate them.427- Turn every other `Unproven` item that blocks the current work into proof work, a question, or a blocker.428- Never let risk level by itself clear such a blocker.429- Defer decisions the bounded current work does not need rather than letting them block it.430- Never use accepted risk for irreversible, destructive, unsafe, illegal, or credential-exposing actions; those require proof or a safer alternative.431- Record a human deliberately selecting a known destructive action as a human-risk decision.432- Never let accepted risk stand in for that decision or excuse an unproven safety or legality premise.433<!-- shared-contract:end accepted-risk-semantics -->434435Here the acceptance must be recorded in the bound plan itself before the436affected slice is implemented; an acceptance given only in conversation is437written into the plan first.438439## Execution Gates And Delegation Reference440441Before deviating from a bound plan, correcting a plan defect, crossing a consent442boundary, or delegating execution or review work, read443`references/execution-gates-and-delegation.md`. That reference owns the Plan444Deviation Gate, Plan Validity Gate, Existing-Feature Repair Handoff, Startup445Consent Preflight, human-risk decisions, Delegated Execution Support, and446delegated-result proof rules.447448## Execution Workflow, Review, And Quality Reference449450Before executing a bound plan slice, launching post-implementation review,451updating an applicable resumable-progress ledger, communicating completion or452blockers, or applying final quality checks, read453`references/execution-workflow-and-quality.md`. That reference owns the454detailed execution loop, post-implementation review gate, stop-condition455handling, user communication details, ledger updates, commit-checkpoint456handling, and quality checklist.