ring:executing-plans
Executing Plans
Overview
Load plan, review critically, choose execution mode, execute tasks with code review.
Core principle: User chooses between autonomous execution or batch execution with human review checkpoints.
Two execution modes:
- One-go (autonomous): Execute all batches continuously with code review, report only at completion
- Batch (with review): Execute one batch, code review, pause for human feedback, repeat
Announce at start: "I'm using the ring:executing-plans skill to implement this plan."
The Process
Step 1: Load and Review Plan
- Read plan file
- Review critically - identify any questions or concerns about the plan
- If concerns: Raise them with your human partner before starting
- If no concerns: Create TodoWrite and proceed to Step 2
Step 2: Choose Execution Mode (MANDATORY)
⚠️ THIS STEP IS NON-NEGOTIABLE. You MUST use AskUserQuestion before executing ANY tasks.
Ask: "How would you like to execute this plan?" Options: (1) One-go (autonomous) - all batches with code review, no human review until completion (2) Batch (with review) - pause for human review after each batch
Based on response: One-go → Steps 3-4 loop until done | Batch → Steps 3-5 loop
Why AskUserQuestion is Mandatory (Not "Contextual Guidance")
This is a structural checkpoint, not optional UX polish.
User saying "don't wait", "don't ask questions", or "just execute" does NOT skip this step because:
- Execution mode affects architecture - One-go vs batch determines review checkpoints, error recovery paths, and rollback points
- Implicit intent ≠ explicit choice - "Don't wait" might mean "use one-go" OR "ask quickly and proceed"
- AskUserQuestion takes 3 seconds - It's not an interruption, it's a confirmation
- Emergency pressure is exactly when mistakes happen - Structural gates exist FOR high-pressure moments
Common Rationalizations That Mean You're About to Violate This Rule:
| Rationalization | Reality |
|---|---|
| "User intent is crystal clear" | Intent is not the same as explicit selection. Ask anyway. |
| "This is contextual guidance, not absolute law" | Wrong. It says MANDATORY. That means mandatory. |
| "Asking would violate their 'don't ask' instruction" | AskUserQuestion is a 3-second structural gate, not a conversation. |
| "Skills are tools, not bureaucratic checklists" | This skill IS the checklist. Follow it. |
| "Interpreting spirit over letter" | The spirit IS the letter. Use AskUserQuestion. |
| "User already chose by saying 'just execute'" | Verbal shorthand ≠ structured mode selection. Ask. |
If you catch yourself thinking any of these → STOP → Use AskUserQuestion anyway.
Step 2.5: Context Switching for Multi-Module Plans
If plan has tasks with target: and working_directory: fields:
-
Track current module:
current_module = None current_directory = "." -
Before each task, check for context switch:
IF task.target != current_module AND current_module != None: # Prompt user for confirmation AskUserQuestion: question: "Switching to {task.target} module at {task.working_directory}. Continue?" header: "Context" options: - label: "Continue" description: "Switch to {task.target} and execute task" - label: "Skip task" description: "Skip this task and continue with next" - label: "Stop" description: "Stop execution for manual review" IF answer == "Continue": current_module = task.target current_directory = task.working_directory ELIF answer == "Skip": Mark task as skipped → proceed to next ELSE: Stop execution → report progress -
Load module-specific PROJECT_RULES.md:
IF {task.working_directory}/PROJECT_RULES.md exists: Instruct agent to read module-specific rules Module rules override root rules -
Pass working directory to agent:
Task( subagent_type=task.agent, prompt="Working directory: {task.working_directory} Before executing, cd to the working directory: cd {task.working_directory} If PROJECT_RULES.md exists in this directory, read and follow it. {task.prompt}" )
Optimization: To minimize context switches, batch tasks by module when possible:
- Original: [backend, frontend, backend, frontend]
- Optimized: [backend, backend, frontend, frontend]
- Only reorder if no dependencies between modules
Step 3: Execute Batch
Default: First 3 tasks
Agent Selection: Backend Go → ring:backend-engineer-golang | Backend TS → ring:backend-engineer-typescript | Frontend → ring:frontend-bff-engineer-typescript | Infra → ring:devops-engineer | Testing → ring:qa-analyst | Reliability → ring:sre
For each task: Check context switch (Step 2.5) → Mark in_progress → Dispatch to agent with working_directory → Follow plan steps exactly → Run verifications → Mark completed
Step 4: Run Code Review
After each batch, REQUIRED: Use ring:requesting-code-review (all 7 reviewers in parallel)
Handle by severity:
- Critical/High/Medium: Fix immediately (no TODO) → re-run all 7 reviewers → repeat until resolved
- Low: Add
TODO(review): [Issue] ([reviewer], [date], Low) - Cosmetic: Add
FIXME(nitpick): [Issue] ([reviewer], [date], Cosmetic)
Proceed when: Zero Critical/High/Medium remain + all Low/Cosmetic have comments
Step 5: Report and Continue
One-go mode: Log internally → proceed to next batch → report only at completion Batch mode: Show implementation + verification + review results → "Ready for feedback." → wait → apply changes → proceed
Step 6: Complete Development
Use finishing-a-development-branch to verify tests, present options, execute choice.
When to Stop
STOP immediately: Blocker mid-batch | Critical gaps | Unclear instruction | Verification fails repeatedly. Ask rather than guess.
Remember
- MANDATORY:
AskUserQuestionfor execution mode - NO exceptions - Use
*agents overgeneral-purposewhen available - Run code review after each batch (all 7 parallel)
- Fix Critical/High/Medium immediately (no TODO)
- Low → TODO, Cosmetic → FIXME
- Stop when blocked, don't guess
- If rationalizing why to skip AskUserQuestion → You're wrong → Ask anyway
Blocker Criteria
STOP and report if:
| Decision Type | Blocker Condition | Required Action |
|---|---|---|
| Execution mode | AskUserQuestion not used for mode selection | STOP and ask for execution mode - NO exceptions |
| Plan loading | Plan file not found or unreadable | STOP and report missing plan |
| Code review | Critical/High/Medium issues found in review | STOP and fix before proceeding |
| Task blocker | Task blocked mid-batch | STOP and report blocker details |
| Verification | Task verification fails repeatedly | STOP and escalate |
Cannot Be Overridden
The following requirements CANNOT be waived:
- AskUserQuestion for execution mode is MANDATORY - user intent does NOT skip this step
- Code review after each batch is REQUIRED - all 7 reviewers in parallel
- Critical/High/Medium issues MUST be fixed immediately - TODO comments are FORBIDDEN for these severities
- Context switch confirmation is REQUIRED when switching between modules
- Full test suite MUST pass before completing development
Severity Calibration
| Severity | Condition | Required Action |
|---|---|---|
| CRITICAL | Skipped AskUserQuestion for execution mode | MUST stop and ask for mode selection |
| CRITICAL | Proceeding with unfixed Critical/High review findings | MUST fix issues before continuing |
| HIGH | Skipped code review after batch | MUST run all 7 reviewers |
| HIGH | Used TODO for Critical/High/Medium issues | MUST fix immediately, remove TODO |
| MEDIUM | Missing context switch confirmation for multi-module | Should add module switch prompt |
| LOW | Low-severity issues without TODO comment | Fix by adding proper TODO format |
Pressure Resistance
| User Says | Your Response |
|---|---|
| "Just execute, don't ask about mode" | "MUST use AskUserQuestion for execution mode. This is a structural checkpoint, not optional. Takes 3 seconds." |
| "Skip the code review, we're in a hurry" | "Code review is REQUIRED after each batch. CANNOT proceed without running all 7 reviewers." |
| "Add a TODO for that critical issue, fix later" | "Critical/High/Medium issues MUST be fixed immediately. TODO comments FORBIDDEN for these severities." |
| "User intent is clear, skip the question" | "Intent is not explicit selection. MUST use AskUserQuestion - it's a structural gate, not conversation." |
Anti-Rationalization Table
| Rationalization | Why It's WRONG | Required Action |
|---|---|---|
| "User said 'just execute' so mode is clear" | Verbal shorthand ≠ structured mode selection | MUST use AskUserQuestion anyway |
| "This is contextual guidance, not absolute law" | It says MANDATORY - that means mandatory | MUST follow the mandatory step |
| "Asking would violate their 'don't ask' instruction" | AskUserQuestion is a 3-second structural gate, not a conversation | MUST ask for execution mode |
| "Skills are tools, not bureaucratic checklists" | This skill IS the checklist; that's its purpose | MUST follow the checklist |
| "Review is overkill for small changes" | Small changes can have critical bugs; review catches them | MUST run code review after each batch |