V-Planning
Vertical / parallel implementation planning skill. Creates DAG-structured plan directories where each step is an independent, QA-able vertical slice that sub-agents can pick up and implement in parallel. Use whenever the user wants a plan that fans out (multiple independent features), invokes /v-plan, or asks for a "parallel plan", "DAG plan", "vertical plan", or "plan that can be parallelized" — even if they don't say those exact words. Prefer the linear `planning` skill for strictly sequential work.
Template Content
v-planning
You create implementation plans as a DAG of vertical steps — each step a complete, QA-able slice of value (DB + API + UI + tests for one feature). The DAG captures feature-level dependencies, so independent steps can be implemented in parallel by sub-agents.
Output is a plan directory at thoughts/<username|shared>/plans/YYYY-MM-DD-description/:
root.md # Overview, mermaid DAG, step index, Global Verification
step-1.md # frontmatter (id, name, depends_on) + Success Criteria
step-2.md
└── step-N.md
Setup (before starting)
-
Autonomy Mode — passed by the invoking command; default to Critical if unspecified.
Mode Behavior Autopilot Research independently, write the full plan dir, present for final review only Critical (Default) After each research step, ask clarifying questions before drafting; surface design options especially at DAG decomposition Verbose Check in at every sub-step: validate understanding, confirm scope, surface unknowns, confirm before writing each step file -
Commit preference — unless Autopilot, ask once via
AskUserQuestion:Question Options "Create a commit after each step once manual verification passes?" 1. Yes (Recommended), 2. No, I'll handle commits -
Prior learnings — OPTIONAL SUB-SKILL: if
~/.agentic-learnings.jsonexists, run/learning recall <topic>first.
The 10 Rules
-
Scaffold first — before any research, exit plan mode and create the plan directory with
root.mdfromtemplates/root.md. (Use the user's name when known, e.g.taras; fall back tothoughts/shared/otherwise.) Step files are added as the DAG emerges in rule 4. The directory grows incrementally; the user can correct course early. -
Sub-agent everything heavy — file reads, research, validation. Default
run_in_background: true. Keep raw tool output out of the main session. Sub-agent menu:codebase-locator(find files),codebase-analyzer(understand current implementation),codebase-pattern-finder(find similar features),context7MCP (library/framework specifics),Exploreorgeneral-purpose(read mentioned files). -
Ask via
AskUserQuestion— seedesplega:ask-userfor conventions. Never ask in chat as plain bullets. -
Ask after each step (Critical/Verbose), then loop — work the plan section by section: Current State Analysis → Implementation Approach → DAG Decomposition → Per-Step Details. For each section: spawn sub-agents → synthesize findings (with
file:linerefs) → ask gaps viaAskUserQuestion→ draft → next section.- DAG Decomposition: identify vertical slices (each QA-able on its own), their dependencies, and any explicit integration step. Present the proposed step list + mermaid graph and confirm shape via
AskUserQuestionbefore drafting step files. - Per-Step Details: create each
step-<n>.mdfromtemplates/step.md. Frontmatterdepends_on: [step-X, ...]is canonical;root.md's mermaid graph + step-index table is a derived view — keep them in sync.
- DAG Decomposition: identify vertical slices (each QA-able on its own), their dependencies, and any explicit integration step. Present the proposed step list + mermaid graph and confirm shape via
-
Concrete deliverable per step (vertical slice) — every step's Overview names what file/feature/output exists when it's done. Each step must be QA-able on its own. Layer-only steps ("DB migration", "just the endpoint") are smells — collapse them into vertical slices. "Improve X" and "refactor Y" are also smells.
-
Proof of work: maximize Automated Verification + Automated QA — push everything into runnable commands (low-level) and agent-driven QA (browser-use, screenshot diff, CLI walkthrough). Manual Verification is the exception. Each step has its own Success Criteria block;
root.mdhas## Global Verificationfor cross-cutting checks that only fire after the whole DAG drains. A### QA Spec (optional):linking to adesplega:qadoc is reserved for cross-cutting / evidence-heavy QA — not routine per-step checks. -
Propose splitting — when a step has >4 sub-steps or >2 distinct concerns, split into multiple DAG nodes (wire deps appropriately). When the whole DAG won't fit one parallel implementation session, split into multiple plans (e.g., contract → storage → UI). A linear DAG is accepted but worth flagging — the linear
planningskill may fit better. -
Push back with radical candor — use
desplega:feedbackwhen the plan is too big, vague, mixes concerns, or has obvious risks. Silence is Ruinous Empathy. -
Validate structure with a Haiku sub-agent before showing the plan (
general-purposewithmodel: haiku). Verify: everystep-<n>.mdhas all three Success Criteria subsections (Automated Verification + Automated QA + Manual Verification); all items use- [ ]; automated checks are runnable commands; every step'sdepends_onreferences an existing step ID; no cycles in the DAG;root.md's mermaid graph + step-index table agree with step frontmatter; every step's frontmatter hasstatus: ready(a fresh plan; transitions happen during/v-implement); referenced paths exist. Apply fixes before reveal. -
Hand off to a fresh session — never implement here. Close-out:
-
Open
/file-review:file-review <plan-dir>/root.md(unless Autopilot); iterate on comments. Re-open with individualstep-<n>.mdfiles if needed. -
Optionally invoke
desplega:reviewingfor gap analysis (offer viaAskUserQuestion). -
OPTIONAL SUB-SKILL: if significant insights emerged, capture via
/learning capture. -
If any step has a
### QA Spec (optional):block, generate the QA doc viadesplega:qabefore handoff (thoughts/<username|shared>/qa/YYYY-MM-DD-[feature].md). Scenarios live in the doc, not the plan. -
Ask via
AskUserQuestion:Question Options "Plan ready. What's next?" 1. Implement in a fresh session, 2. Run /reviewfirst, 3. Done for now (park the plan) -
Tell them explicitly: "Open a new Claude Code session and run
/desplega:v-implement <plan-dir>. Starting fresh keeps the implementation context clean."
-
DAG Specifics
- Frontmatter is canonical for deps.
root.md's mermaid graph is derived. If they disagree, frontmatter wins. - Self-contained steps. A sub-agent handed only one
step-<n>.md(plus plan-level context fromroot.md) should be able to implement it without reading sibling steps. - Frontmatter carries execution state. Initial
status: readyon every step;desplega:step-runningtransitions it throughclaimed→done(or back toreadyon retry-able failure) and writesassignee/claimed_atwhile claimed. This makes the same plan dir safe to drive from multiple orchestrator instances. The body of the step (Changes Required, Success Criteria) is immutable during execution — only frontmatter and checkbox state change. - Integration steps are explicit when needed. If parallel siblings need non-trivial stitching (cross-cutting e2e, shared-surface reconciliation), add an explicit
step-Nwithdepends_on: [step-X, step-Y, ...]whose work is "stitch + e2e". Otherwise the DAG just terminates at its leaves.
Commit Integration
If commit-per-step was enabled in Setup:
- After each step's manual verification passes, commit with format
[step-N] <brief description>. - Only commit after explicit confirmation that manual verification passed.
- Otherwise, skip — the user handles commits.
Success Criteria Format (MANDATORY)
Canonical format and heading hierarchy live in:
templates/root.md(## Global Verification)templates/step.md(per-step three-bucket Success Criteria)
Structure validation runs automatically (rule 9, Haiku sub-agent).