- name
- plan
- description
- Design a maintainable solution grounded in existing code and break it into ordered, verifiable tasks. Use for substantial features, architectural changes, or work spanning multiple implementation steps. Skip obvious, narrowly scoped changes that can be implemented directly.
# Plan
Design the smallest understandable solution, then break it into verifiable tasks.
Prefer reuse and clear ownership over speculative extensibility.
Do not implement production code or execute implementation tasks. Bounded planning
experiments and artifact writes must respect host mode, permissions, and user
constraints. For discussion-only or read-only requests, deliver the plan in chat.
## 0. Establish the Goal
Establish **Goal**, observable **Success criteria**, **Constraints**, and
**Non-goals** before designing. Distinguish outcomes from implementation choices;
honor explicitly chosen solutions. Clarify whether a solution is required or
illustrative when that materially affects the design. Do not invent objectives
or numerical targets.
Investigate context and resolve material ambiguity before architecture. Ask only
questions the repository and conversation cannot answer; honor existing decisions
and authorization. Scale detail to the task. Use success criteria to judge the
design, task acceptance, and verification.
Before selecting or creating a plan, read
[plan selection and lifecycle](../../references/plan-lifecycle.md) in full. It owns
feature selection, artifact paths, and lifecycle transitions.
## 1. Establish Requirements and Context
Read repository instructions, relevant code, interfaces, callers, and tests.
Record required behavior, compatibility, important failure cases, and reuse
candidates with paths and responsibilities. Separate requirements from assumptions.
Apply [code quality](../../references/code-quality.md) to acceptance and verification.
When evidence cannot resolve a material decision, define the question before
running a bounded experiment. Isolate experimental code in a temporary location;
record results, limitations, and the resulting decision. Experiments are optional
when evidence suffices. Unresolved decisions or unavailable necessary experiments
keep the plan **Not ready**; state what would unblock them.
## 2. Design and Review
Describe behavior, data flow, ownership, interfaces, invariants, new components,
and meaningful trade-offs. Omit unnecessary alternatives analysis.
Read [structural-review](../structural-review/SKILL.md) in full and perform its
**plan review** before task breakdown. Supply requirements, design, reuse
candidates, and repository evidence; that skill owns the structural criteria.
Resolve High and Medium findings through revisions or evidence-backed acceptance
of trade-offs. Low findings do not block. Repeat review only when changes warrant.
Require **Review status: Complete**; unresolved High/Medium findings, a **Pending**
review, or an unavailable review skill keep the plan **Not ready**.
## 3. Decompose and Order Tasks
- Prefer vertical slices sized for one focused implementation and verification
session. Separate contracts, migrations, or investigations when prerequisites.
- Record dependencies, validate risky assumptions early, and keep the system
working between steps where practical.
- Parallelize only independent responsibilities, edits, and interfaces. Establish
shared contracts first; sequence conflicting edits, mutable state, and migrations.
For each task use:
```markdown
### Task N: Title
- Outcome: Observable behavior delivered.
- Changes: Specific changes, likely files, and existing code to reuse.
- Dependencies: Task IDs or none; unresolved decisions if any.
- Acceptance: Expected behavior and important invariants preserved.
- Verification: Relevant tests, checks, or runtime evidence.
```
Scale verification to the change. Include structural **code review** at substantial
checkpoints, especially ownership, interface, or abstraction changes; resolve
significant findings before dependent work. Also include independent correctness
review under [implementation's review policy](../implementation/SKILL.md#independent-correctness-review).
Allow verification and repair time; structural review does not replace correctness
review.
## 4. Review Verification Coverage
Check that planned verification demonstrates every success criterion and the
complete outcome, including integrated behavior where relevant. Reuse sufficient
task checks without duplicate tests or a new suite. Revise checks to close gaps
or keep the plan **Not ready** with specific coverage blockers.
## 5. Deliver the Plan
Mark the whole plan **Ready for implementation** only when requirements and success
criteria are clear, structural review is Complete, material decisions and blocking
findings are resolved, every task defines dependencies, acceptance and verification,
and coverage review confirms every success criterion is demonstrated by planned
checks. Otherwise mark **Not ready** and give each blocker's resolution action.
Any task blocked by an unresolved decision blocks readiness; normal ordering
dependencies do not.
Readiness means plan completeness, not execution authorization, completed tasks,
or passed implementation checks. Planned tests need not have run. Respect existing
approval boundaries without adding per-task approvals.
Save artifacts and lifecycle under the shared contract. Organize the plan around
goal and success criteria, constraints and non-goals, existing components and
design with paths, decisions and review outcomes, ordered tasks, and material
risks, assumptions, and questions. Omit empty sections. Keep todo as a short
checklist linking to task details; leave implementation items unchecked.
Report selected feature, lifecycle when known, readiness, artifact paths, and
remaining blockers or decisions.
View on GitHub