manual-planning
Manual Planning
Use this skill to produce Markdown plans that another coding agent can execute without reinterpreting the original conversation. Keep plans stable, explicit, and easy to update mechanically.
Default Location
Create the plan in docs/ when that directory exists. Otherwise create it at the repository root.
Use a descriptive kebab-case filename such as docs/payment-refactor-plan.md or manual-plan.md. Avoid temporary names like notes.md, scratch.md, or todo.md.
Plan Creation Workflow
- Gather enough repository context to identify scope, dependencies, test surfaces, and likely risks.
- Draft the plan as a Markdown file using one of:
assets/simple-plan-template.mdfor 10 or fewer tasks.assets/milestoned-plan-template.mdfor more than 10 tasks.
- Set
Plan StatustoQUESTIONS PENDINGif clarification is required, then surface all clarifying questions to the user. Put the same unresolved questions in the plan underOpen Questions. - Incorporate the answers, then self-check the whole plan before requesting final approval.
- Set
Plan StatustoREADY FOR APPROVALonly when the self-check passes and the only remaining gate is user approval.
Do not begin implementation until the user approves the plan, unless the user explicitly asks to proceed without approval.
Open Question Handling
Open questions are not plan-only notes. When clarification is needed, actively ask the user before marking the plan READY FOR APPROVAL.
Use this order:
- Prefer the native ask-user or request-input tool when the current harness exposes one.
- If no native ask-user tool is available, send a concise formatted message in the conversation.
- Mirror the exact unresolved questions in the plan's
Open Questionssection. - After the user answers, update
Open Questionswith the resolved answer or replace the section withNone.
Ask only questions that affect correctness, scope, risk, validation, sequencing, or user approval. Do not ask questions whose answers can be discovered from the repository or safely handled as explicit assumptions.
Fallback message format:
I drafted the plan, but need these clarifications before it is ready for approval:
1. [Question]
2. [Question]
Do not combine unresolved clarifying questions and final approval in the same user prompt. Ask for final approval only after the questions are answered and the self-check passes.
Plan State Lifecycle
Treat Plan Status in the metadata block as the authoritative plan-level state.
Use this lifecycle unless the user explicitly asks for a different one:
DRAFTwhile creating the first version.QUESTIONS PENDINGwhile waiting for required clarification.READY FOR APPROVALafter clarification is incorporated and self-check passes.APPROVEDafter the user approves execution.IN PROGRESSwhile implementation is underway.COMPLETEDafter cleanup and final verification pass.
Use BLOCKED when implementation or planning cannot continue. Record the blocker in Open Questions, task notes, or milestone notes as appropriate.
Plan Format Rules
Every plan must include:
- Title and metadata block.
- Goal, scope, and non-goals.
- Current status.
- Assumptions and open questions.
- Task list, optionally grouped by milestones.
- Validation command/check for every task.
- Cleanup phase after implementation.
- Final verification section.
- Approval gate.
Use exactly these task statuses:
TO BE DONEIN PROGRESSCOMPLETEDBLOCKEDSKIPPED
Use exactly these plan statuses:
DRAFTQUESTIONS PENDINGREADY FOR APPROVALAPPROVEDIN PROGRESSCOMPLETEDBLOCKED
If there are more than 10 tasks, group tasks into milestones. Each milestone must have a status and exit criteria. If there are 10 or fewer tasks, omit milestones unless they clarify independent delivery phases.
Task Rules
Each task must be concrete enough for an agent to execute from the plan alone.
Each task must include:
Status: one of the task statuses.Objective: the observable outcome.Steps: one or more concrete implementation steps.Validation: commands, tests, inspections, or self-checks that prove completion.Notes: constraints, dependencies, or affected files when known.
Prefer validation that can be run deterministically, such as a unit test, integration test, build command, linter, rendered artifact check, or exact file inspection. If deterministic validation is impossible, state the manual self-check in observable terms.
Milestone Rules
Each milestone must include:
Status: one of the task statuses.Purpose: why the group exists.Exit Criteria: observable conditions that prove the milestone is complete.- Tasks owned by the milestone.
Milestone exit criteria must be broader than a single task validation. They should confirm that the completed tasks work together and that the next milestone can safely start.
Implementation Workflow
When executing a manual plan:
- Set the plan status to
IN PROGRESSbefore starting implementation. - Before starting a task, update that task to
IN PROGRESS. - Complete the task.
- Run the task validation.
- Fix issues until validation passes or mark the task
BLOCKEDwith a reason. - Immediately update the task status to
COMPLETEDafter validation passes. - Update the milestone status when all tasks in the milestone satisfy its exit criteria.
- Start the next task only after the plan file reflects the current state.
The plan file is the execution ledger. Keep it accurate before moving forward.
Cleanup Phase
Every plan must include a cleanup task near the end. It must remove intermediate artifacts that should not ship, including temporary documentation, one-off test cases, scratch scripts, temporary fixtures, generated data, debug logs, local-only outputs, and obsolete plan fragments.
Do not remove artifacts that the user asked to keep, artifacts required for future maintainability, or generated files that are part of the repository contract.
Self-Check Before Approval
Before asking for final approval, verify:
- The plan location follows the default location rule.
- The plan status is
READY FOR APPROVAL. - Scope, non-goals, and assumptions are explicit.
- All open questions are either answered or clearly marked as unresolved.
- Any unresolved open questions have been surfaced to the user through a native ask-user tool or formatted conversation message.
- Every task has concrete steps and validation.
- More than 10 tasks are grouped into milestones.
- Every milestone has exit criteria when milestones exist.
- Cleanup and final verification are included.
- The plan avoids vague actions like "improve", "handle errors", or "write tests" without concrete targets.
- The plan can be executed by a coding agent without reading the original conversation.
Record the self-check result inside the plan before asking for approval. If any item fails, keep the plan out of READY FOR APPROVAL.
Resources
Copy and adapt one template into the target repository plan file:
assets/simple-plan-template.mdfor plans with 10 or fewer tasks.assets/milestoned-plan-template.mdfor plans with more than 10 tasks.