Executing Plans
Overview
Load plan, review critically, execute all tasks, report when complete.
Announce at start: "I'm using the executing-plans skill to implement this plan."
For non-trivial execution, include Aegis Visibility: briefly tie the active
slice to its plan, checkpoint, drift or verification boundary. At completion,
pass plan adherence, evidence, complexity and residual risk to
verification-before-completion for the unified receipt.
If subagents are available and the plan has genuinely independent tasks,
prefer subagent-driven-development; lack of subagent support does not block
inline execution. Same-task agents share one workspace, and the coordinator
remains the only Git mutation owner.
The Process
Step 1: Load and Review Plan
- Read plan file
- If the plan or active checkpoint includes an
Execution Readiness View, read it before implementation and compare the plan against its intent lock, scope fence, baseline lock, owner / contract constraints, compatibility boundary, retirement boundary, test obligations, review gates, drift / rewind rules, and evidence required before completion. - Review critically - identify any questions or concerns about the plan
- If the view contradicts the plan, baseline, or current worktree evidence, return to plan review or refresh the advisory handoff before editing.
- Run the TDD Route Guard before implementation: confirm
Mode,Decision,Strict authority, strict signals, light eligibility,Test posture, and verification. Strict steps require either an explicit user/project request or a recorded auto decision; plan approval or risk labels alone are not authority. An off-mode missing record may be repaired only asMode: off / Decision: skippedwithout loading TDD. Missing/unsupported auto decisions return to plan review. An auto-light record is unsupported when any strict signal is present or when its tiny/low-risk/single-owner/no-behavior-change proof is incomplete. OnlyDecision: strictwith recorded strict authority may authorize steps namedWrite failing test,Verify RED,GREEN, orREFACTOR. Do not inferstrictduring execution. - If concerns: Raise them with your human partner before starting
- Before the first write, capture
TaskStartSnapshot: root,HEAD, branch or detached state, upstream divergence, staged/unstaged/untracked paths, active Git operations, andgit worktree list --porcelain. Preserve task-preexisting state; do not stash, reset, clean, or commit it. - Reuse the current branch unless rules require independent history or another goal owns it. If justified, switch/create it in the current workspace when safe; a worktree still requires concurrent checkout or blocking dirty state.
- If no concerns: Create TodoWrite and proceed
Step 1.5: Long-Task Checkpoint Setup
If the plan has multiple tasks, may span sessions, or includes architecture / contract / workflow changes:
- Announce: "I'm using the long-task-continuation skill to keep this plan checkpointed and drift-aware."
- Load aegis:long-task-continuation.
- Create the initial checkpoint from the plan:
- current todo
- active task
- completed tasks
- evidence refs
- blockers
- next step
- Before each task, restate the current checkpoint.
- After each task, update checkpoint, evidence refs, and drift check.
Before a verification-driven unplanned edit, read retained PatchShape,
CanonicalOwner, UpwardDrillSignal, outcome, and evidence refs. Route their
comparison with the candidate to systematic-debugging before editing; it
decides whether the directions converge. A proven independent canonical-owner
root stays on the normal plan path.
Step 2: Execute Tasks
For each task:
Mark as in_progress
Follow each step exactly (plan has bite-sized steps)
Before any new source-code path is added by a task, restate the plan's
Change Necessityor create a compact one if the plan failed to carry it forward. Plan approval is not by itself proof that a new helper, small guard, new branch, fallback, adapter, or owner is necessary.Change Necessity: - User-visible need: - No-change / non-code option: - Why code change is necessary: - Minimum change boundary: - Decision: no-change | docs/config-only | code-change | needs-clarificationIf the decision is not
code-change, pause execution and return to plan review instead of editing. If the decision iscode-change, carry the minimum boundary into the edit and verification scope.Before any non-trivial source edit, run the plan's
Pre-Edit Complexity Checkor create a compact one:Use
using-aegis/references/complexity-governance.mdfor shared artifact classes, pressure signals, andover-budgethandling.Complexity Budget: - Artifact class: - Target files / artifacts: - Current pressure: - Projected post-change pressure: - Budget result: within-budget | at-risk | over-budget - Planned governance: Pre-Edit Complexity Check: - Target edit file: - Existing pressure signal: - Safer edit boundary: - Decision: edit-in-place | extract helper | add owner file | split task | pause for plan update Pre-Edit Owner-Fit Decision: - Edit intent: wiring-only | move-out / extract-first | local-fix-without-new-responsibility | new-responsibility | emergency / compatibility patch - Owner fit: - Safer edit boundary: - Decision: edit-in-place | extract helper | add owner file | split task | pause for plan updateIf the check contradicts the plan's file boundary, pause and return to plan review instead of silently stuffing logic into an overloaded owner. If the budget result is
over-budgetand the task does not also govern that overrun, stop execution and return to plan review rather than pushing the task through as if it were still atomic. When the target edit file is over-budget or mixed-purpose,new-responsibilitymust not be added in place by default.wiring-only,move-out / extract-first, andlocal-fix-without-new-responsibilitymay proceed only when they do not add a new responsibility and the verification boundary is clear.emergency / compatibility patchrequires residual risk and a retirement trigger.Run verifications as specified
The coordinator is the Git mutation owner. After the coherent Task passes its planned verification, use
verification-before-completionbefore a default local commit, stage only task-owned paths, and read backHEAD, the committed file list, and remaining task delta.no commit, read-only, no-change, and failed-verification tasks create no normal commit.Update
TodoCheckpointDraftandDriftCheckDraftbefore marking the task completed. When anExecution Readiness Viewexists, the drift check must explicitly compare the active slice against the view's intent lock, scope fence, baseline lock, compatibility boundary, retirement boundary, test obligations, and review gates.Mark as completed
Step 3: Complete Development
After all tasks complete and verified:
- if Aegis created a branch/worktree or the user requests integration handling,
use
aegis:finishing-a-development-branch; - otherwise use
verification-before-completion, report the local task commit andTask clean/Repository clean, and do not invent merge/PR ceremony.
When to Stop and Ask for Help
STOP executing immediately when:
- Hit a blocker (missing dependency, test fails, instruction unclear)
- Plan has critical gaps preventing starting
- You don't understand an instruction
- Verification fails repeatedly
Ask for clarification rather than guessing.
When to Revisit Earlier Steps
Return to Review (Step 1) when:
- Partner updates the plan based on your feedback
- Fundamental approach needs rethinking
Don't force through blockers - stop and ask.
Remember
- Review plan critically first
- Follow plan steps exactly
- Don't skip verifications
- Reference skills when plan says to
- Stop when blocked, don't guess
- Do not create a branch merely because the current branch is
main/master - Do not let task complexity, TDD, planning, or subagents alone trigger a worktree
Integration
Required workflow skills:
- aegis:writing-plans - Creates the plan this skill executes
- aegis:using-git-worktrees - Only when the approved Git lifecycle says a concurrent checkout is necessary
- aegis:finishing-a-development-branch - Only when branch/worktree integration or cleanup is in scope