Plan a development task into a self-sufficient execution contract stored in `.plans/<task-slug>/` for later fresh-context implementation and review.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add siarhei-belavus/agent-public --skill plan-task --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Plan Task?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/siarhei-belavus-plan-task)More formats (shields.io, HTML) on the badges page.
---
name: plan-task
description: Plan a development task into a self-sufficient execution contract stored in `.plans/<task-slug>/` for later fresh-context implementation and review.
---
# plan-task
Turn ambiguous engineering work into a concrete execution contract. Plan for a fresh implementer, not for the current chat.
Assume the plan will be followed strictly unless a human explicitly amends it.
Assume implementation may happen in a clean context window with no access to prior conversation.
## Read first
- `../references/task-packet-contract.md`
- `../references/persistent-artifacts-contract.md`
- `../references/compatibility-policy.md`
- `../references/ownership-and-reuse-policy.md`
- `../references/final-state-authoring-policy.md`
- `../references/initiative-workflow-contract.md` when planning an initiative child packet
- `../../references/communication-mode.md`
- relevant tracked `AGENTS.md` chain
- applicable `AGENTS.override.md` only if local execution constraints matter
## Planning workflow
1. Establish scope.
- Clarify the exact task, desired outcome, constraints, and what is out of scope.
- Prefer concrete deliverables over vague goals.
- Name the real acceptance criteria early.
2. Identify the true change surface.
- Find the owner modules, state transitions, APIs, persistence paths, tests, and tracked `AGENTS.md` constraints the task will affect.
- Distinguish direct change points from incidental neighbors.
- Distinguish internal boundaries from real external boundaries relative to the service.
- If the task is lifecycle-heavy, treat restart, retry, cancellation, and recovery as first-class planning concerns.
3. Resolve ownership and reuse first.
- Identify the current owner for each important behavior, invariant, or responsibility.
- Prefer reusing, extending, or slightly refactoring that existing owner over introducing a parallel entity.
- If existing code is close but awkward, plan a tidy-first refactor that makes reuse possible.
- Only allow a new helper/service/adapter/store/module/type when the new boundary is explicitly different and non-overlapping.
- If the plan would leave two same-purpose entities alive, treat that as a design problem and rewrite the plan.
4. Resolve compatibility policy correctly.
- Backward compatibility is prohibited by default.
- Do not add compatibility work to the plan unless the human explicitly asked for it.
- If the task touches a real external boundary and compatibility requirements are unresolved, stop and ask the human explicitly whether backward compatibility is required.
- For internal-only changes, do not ask; plan the clean internal change with no compatibility scaffolding.
5. Write the target state, not the migration story.
- Describe the intended steady state directly: final owners, final vocabulary, final status model, final artifact layout.
- Do not write canonical plan steps as `old + new`, `keep this for now`, `add another path`, or similar transition prose when the clean final design is already known.
- If a real external boundary truly requires compatibility work, keep the steady-state owner and current contract obvious in the plan.
6. Bootstrap the packet.
- Create or update `.plans/<task-slug>/INDEX.md`.
- Create empty canonical placeholders for `AMENDMENTS.md` and `ARTIFACT_CANDIDATES.md` immediately, even if they are still empty.
- Ensure `INDEX.md` points to those files from the first packet version.
- `BRIEF.md` is optional. Use it only when discovery output needs to be normalized into a compact handoff artifact before writing `PLAN.md`.
- `grill-me` may populate `BRIEF.md`; `plan-task` may normalize, complete, or create it if discovery context has not yet been captured cleanly.
7. Define success before steps.
- State the observable behavior that must be true when the task is done.
- Define validation early: tests, checks, smoke paths, or user-visible outcomes.
- Call out unknowns, assumptions, and risky edges before finalizing sequencing.
8. Slice the work into low-risk increments.
- Prefer steps that keep the system coherent after each increment.
- Separate foundational refactors from behavior changes unless combining them is clearly safer.
- Favor plans that are easy to review and easy to revert.
9. Plan for amendment, not improvisation.
- State exact stop conditions.
- Make it explicit that implementation must stop if the plan becomes unsafe, impossible, or contradicted by the codebase.
- Require amendment flow: blocker, options, pros/cons, plan impact, human decision, packet update.
- If a better but non-essential design appears during implementation, require a `REVIEW_NOTE` rather than silent deviation.
10. Optimize for human maintainability.
- Minimize how much context a human must hold at once.
- Prefer plans that centralize risky logic, reduce change amplification, and keep ownership obvious.
- Avoid plans that require many synchronized edits unless there is no safer alternative.
11. Make the plan self-sufficient for handoff.
- Name the concrete target models, contracts, files, artifact paths, and boundaries instead of relying on chat shorthand.
- Include exact terminology when names affect correctness.
- State failure behavior and unsupported-capability behavior explicitly when implementation would otherwise have to guess.
12. Produce the plan.
- Write `PLAN.md` as the canonical execution contract.
- Keep the steps ordered, imperative, and dependency-aware.
- If likely durable residue is already obvious, note it in `ARTIFACT_CANDIDATES.md`; do not write tracked `AGENTS.md`.
## Planning principles
- Plan for the real dependency graph, not the order the idea was explained.
- Make the safest next step obvious.
- Keep steps independently verifiable where possible.
- Prefer plans that simplify later review, not just faster coding.
- If one safe pass is unrealistic, split the work into phases instead of pretending it is one change.
- Eliminate hidden branches: if the plan intends one design, say `do X`, not `do X or Y`.
- Prefer imperative decisions over advisory wording when implementation should not choose among alternatives.
- Prefer tidy-first reuse over greenfield parallel abstractions.
- Keep one owner and one authoritative path per important behavior whenever possible.
- Write `PLAN.md` as the target design artifact, not as a migration diary.
## Good plan qualities
A strong plan:
- defines done in observable terms
- identifies risky edges early
- keeps each step reviewable
- explains why the order matters
- includes validation strategy
- defines amendment triggers
- reduces future maintenance burden, not just present effort
- is self-sufficient enough for another agent to execute cold
- leaves no important term, rename, or target contract open to interpretation
- makes the owner and reuse path obvious instead of leaving room for parallel implementations
- reads like the current intended system, not like notes about how the old system is being patched
## Anti-ambiguity rules
- Do not present multiple design branches unless the human is explicitly being asked to choose.
- Do not use vague wording like `consider`, `might`, `could`, `recommended`, or `where possible` for core implementation decisions.
- Do not rely on a new implementer to infer final naming for important types, fields, keys, endpoints, or artifacts.
- Do not leave failure behavior implicit. Say whether the system warns, fails fast, retries, skips, or continues.
- Do not leave ownership implicit. Say which layer owns the contract, which layer adapts it, and which layer consumes it.
- Do not leave cleanup as an unspecified follow-up. Name legacy fields, shims, tests, or docs that must change.
- Do not introduce backward-compatibility branches, aliases, wrappers, or fallback behavior unless the human explicitly required compatibility for a real external boundary.
- Do not allow the plan to create a second same-purpose entity when a tidy-first refactor of the current owner would make reuse possible.
- Do not let canonical plan prose teach both an old and a new model when one final model is already chosen.
## Stateful-system planning
For queues, runners, durable workflows, async services, orchestration, or any lifecycle-heavy feature, explicitly plan for:
- state ownership
- recovery and restart
- retry and idempotency
- cancellation and partial progress
- truthfulness of status, logs, and persisted state
## Human maintainability rule
Ask:
- How many files will the implementer need open at once?
- Is there one obvious owner per step?
- Can each step be reasoned about locally?
- Will the final design lower or raise navigation cost?
- Will future changes touch one owner or require coordinated edits across same-purpose entities?
## Review alignment
Shape plans so later reviews can answer cleanly:
- what changed
- why the order mattered
- what proves the behavior
- whether maintainability improved or degraded
- whether any durable residue should later be distilled into tracked `AGENTS.md`
- whether the design kept one owner and one authoritative implementation path
## Requester-response rule
Always report the result back to the requesting side.
- If the lead/orchestrator requested the planning pass, reply back to the lead/orchestrator.
- If a human directly requested the planning pass in this pane, reply back in this pane.
- Local stdout/status text without an explicit reply to the requester does not count as completion.
## Output shape
Default output should leave the packet with:
- `INDEX.md`
- `PLAN.md`
- `AMENDMENTS.md`
- `ARTIFACT_CANDIDATES.md`
- optional `BRIEF.md`
## Do not
- depend on chat-only context
- restate the user request without turning it into an execution contract
- mix unrelated concerns in one step without justification
- treat validation as an afterthought
- leave naming, ownership, or failure behavior implicit
- write tracked `AGENTS.md` directly
- write `AGENTS.override.md`
- plan backward-compatibility work by default
- ask about backward compatibility when the change is internal-only
- propose a parallel same-purpose entity when a small tidy-first refactor would unlock reuse
- write canonical artifacts as if they were migration notes instead of the target design
## Initiative-created child packets
If the packet already exists because `hydrate-child-packet` created it:
- read `INDEX.md`, `BRIEF.md`, optional `CONTRACT_DECISION.md`, placeholder `PLAN.md`, `AMENDMENTS.md`, and `ARTIFACT_CANDIDATES.md` in that order before planning
- treat `Parent Initiative` and `Imported Context` as the frozen handoff from the parent initiative
- replace the placeholder `PLAN.md` that says `Status: not_authored`; do not bootstrap parallel packet files
- update child `INDEX.md` to `Packet phase: plan_authored`
- keep standalone-task bootstrap behavior unchanged when there is no parent initiative
## Communication
Honor active caveman mode for user-facing replies per `../../references/communication-mode.md`. Keep durable artifacts normal unless the human asks otherwise. Drop caveman for safety/clarity when needed, then resume.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!