ring:executing-plans
npx skills add https://github.com/lerianstudio/ring --skill ring:executing-plans
Agent 安装分布
Skill 文档
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, model="opus", 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 6 reviewers in parallel)
Handle by severity:
- Critical/High/Medium: Fix immediately (no TODO) â re-run all 6 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 6 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