skills/workflow-planning-process/SKILL.md
--- name: workflow-planning-process user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs) --- # Planning Process Act as **expert technical architect**, **product owner**, and **plan documenter**. Collaborate with the user to translate specifications into actionable implementation plans. Your role spans product (WHAT we're building and WHY) and technical (HOW to structure the wor
npx skillsauth add leeovery/claude-technical-workflows workflow-planning-processInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Act as expert technical architect, product owner, and plan documenter. Collaborate with the user to translate specifications into actionable implementation plans.
Your role spans product (WHAT we're building and WHY) and technical (HOW to structure the work).
Follows specification. Transform the validated specification into actionable phases, tasks, and acceptance criteria.
epic, feature, or bugfix. Determines which context-specific guidance is loaded during phase and task design.Follow these steps EXACTLY as written. Do not skip steps or combine them.
CRITICAL: This guidance is mandatory.
*_gate_mode: auto value in the manifest, set by the user's explicit a/auto choice at a prior gate.**STOP.** directives) — no courtesy check-ins, mid-loop summaries that end the turn, or unprescribed pauses between tasks/topics/phases.Context refresh (compaction) summarizes the conversation, losing procedural detail. When you detect a context refresh has occurred — the conversation feels abruptly shorter, you lack memory of recent steps, or a summary precedes this message — follow this recovery protocol:
.workflows/{work_unit}/planning/{topic}/planning.md), task detail files (phase-{N}-tasks.md), task files via the format's reading.md, plan review tracking files (review-*-tracking-c*.md), and manifest state. If a task detail file contains pending tasks, you are mid-authoring for that phase — resume the approval loop in author-tasks.md.git status and git log --oneline -10 to see recent commits. Commit messages follow a conventional pattern that reveals what was completed.auto, the user previously opted in during this session. Preserve these values.
node .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.planning.{topic} task_list_gate_modenode .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.planning.{topic} author_gate_modenode .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.planning.{topic} finding_gate_modeDo not guess at progress or continue from memory. The files on disk and git history are authoritative — your recollection is not.
This process constructs a plan from a specification. A plan consists of:
.workflows/{work_unit}/planning/{topic}/planning.md. The human-readable plan: phases with goals and acceptance criteria, task tables with internal IDs and edge cases. This is plan content — all state lives in the manifest.task_map) is stored in the manifest via the CLI. The manifest is the single source of truth for planning state..workflows/{work_unit}/planning/{topic}/phase-{N}-tasks.md containing full task specifications. Written during authoring, persist as a permanent record alongside the output format.Follow every step in sequence. No steps are optional.
Output the next fenced block as a code block:
── Resume Detection ─────────────────────────────
Output the next fenced block as markdown (not a code block):
> Checking for an existing plan. If one exists, you can
> pick up where you left off or start fresh.
Check if a planning entry exists in the manifest:
node .claude/skills/workflow-manifest/scripts/manifest.cjs exists {work_unit}.planning.{topic}
→ Proceed to Step 1.
Check the planning status via manifest CLI:
node .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.planning.{topic} status
Note the current phase and task position from the manifest:
node .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.planning.{topic} phase
node .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.planning.{topic} task
Check spec_commit from the manifest:
node .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.planning.{topic} spec_commit
Load spec-change-detection.md and follow its instructions as written. Then present the user with an informed choice:
Output the next fenced block as a code block:
Found existing plan for {work_unit} (previously reached phase {N}, task {M}).
{spec change summary from spec-change-detection.md}
Output the next fenced block as markdown (not a code block):
· · · · · · · · · · · ·
Continue or restart?
- **`c`/`continue`** — Walk through the plan from the start. You can review, amend, or navigate at any point — including straight to the leading edge.
- **`r`/`restart`** — Erase all planning work for this topic and start fresh. This deletes the planning file, authored tasks, and clears manifest state. Other topics are unaffected.
· · · · · · · · · · · ·
STOP. Wait for user response.
continue→ Proceed to Step 2.
restartformat from the manifest:
node .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.planning.{topic} format
rm -rf .workflows/{work_unit}/planning/{topic}/node .claude/skills/workflow-manifest/scripts/manifest.cjs delete {work_unit}.planning items.{topic}
planning({work_unit}): restart planning→ Proceed to Step 1.
Output the next fenced block as a code block:
── Initialize Plan ──────────────────────────────
Output the next fenced block as markdown (not a code block):
> Setting up the plan. Selecting an output format and creating
> the planning file structure.
Load initialize-plan.md and follow its instructions as written.
→ Proceed to Step 2.
Output the next fenced block as a code block:
── Session Setup ────────────────────────────────
Output the next fenced block as markdown (not a code block):
> Loading context from previous work. Reading the specification
> and any existing planning progress.
Load session-setup.md and follow its instructions as written.
→ Proceed to Step 3.
Output the next fenced block as a code block:
── Load Planning Principles ─────────────────────
Output the next fenced block as markdown (not a code block):
> Loading the guidelines for how plans are structured.
> These ensure tasks are well-scoped, testable, and sequenced
> correctly.
Load planning-principles.md and follow its instructions as written.
→ Proceed to Step 4.
Output the next fenced block as a code block:
── Knowledge Usage ──────────────────────────────
Output the next fenced block as markdown (not a code block):
> Loading the usage guide for the knowledge base. Planning operates
> from the spec as the golden source — the guide documents the narrow
> cases where a KB query is warranted, and those where it is not.
Load knowledge-usage.md and follow its instructions as written.
→ Proceed to Step 5.
Output the next fenced block as a code block:
── Verify Source Material ───────────────────────
Output the next fenced block as markdown (not a code block):
> Reading the specification that drives this plan. Everything
> in the plan traces back to the specification.
Load verify-source-material.md and follow its instructions as written.
→ Proceed to Step 6.
Output the next fenced block as a code block:
── Plan Construction ────────────────────────────
Output the next fenced block as markdown (not a code block):
> Building the plan. Designing phases with goals and acceptance
> criteria, then authoring detailed tasks for each phase. You'll
> approve task lists and individual tasks as we go.
Load plan-construction.md and follow its instructions as written.
→ Proceed to Step 7.
Output the next fenced block as a code block:
── Analyze Task Graph ───────────────────────────
Output the next fenced block as markdown (not a code block):
> Analysing dependencies between tasks. Setting priority and
> execution order based on what depends on what.
Load analyze-task-graph.md and follow its instructions as written.
→ Proceed to Step 8.
Output the next fenced block as a code block:
── Resolve External Dependencies ────────────────
Output the next fenced block as markdown (not a code block):
> Checking for dependencies on other plans. For epics,
> tasks in one plan may depend on tasks in another.
epic→ Proceed to Step 9.
Load resolve-dependencies.md and follow its instructions as written.
→ Proceed to Step 9.
Output the next fenced block as a code block:
── Plan Review ──────────────────────────────────
Output the next fenced block as markdown (not a code block):
> Reviewing the plan. Agents will check that tasks are
> well-scoped, dependencies are sound, and nothing from the
> specification was missed.
Load plan-review.md and follow its instructions as written.
→ Proceed to Step 10.
Output the next fenced block as a code block:
── Compliance Self-Check ────────────────────────
Output the next fenced block as markdown (not a code block):
> Verifying the plan follows workflow conventions.
Load compliance-check.md and follow its instructions as written.
→ Proceed to Step 11.
Output the next fenced block as a code block:
── Conclude the Plan ────────────────────────────
Output the next fenced block as markdown (not a code block):
> Wrapping up. Final confirmation before marking the plan
> as complete and handing off to implementation.
Load conclude-plan.md and follow its instructions as written.
tools
--- name: workflow-discovery user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-discovery/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs), Bash(git status), Bash(git add), Bash(git commit), Bash(cp), Bash(mkdir -p .workflows/), Bash(mv .workflows/.inbox/) --- # Discovery The universal first phase. Shape the work the user is bringing — confirm what kind of work it is,
tools
--- name: workflow-continue-quickfix user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-continue-quickfix/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs) --- Continue an in-progress quick-fix. Determines current phase and routes to the appropriate phase skill. > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file
tools
--- name: workflow-continue-feature user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-continue-feature/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs) --- Continue an in-progress feature. Determines current phase and routes to the appropriate phase skill. > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file expl
tools
--- name: workflow-continue-epic user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-continue-epic/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs), Bash(node .claude/skills/workflow-legacy-research-split/scripts/detect.cjs), Bash(node .claude/skills/workflow-discovery/scripts/discovery.cjs) --- Continue an in-progress epic. Shows full phase-by-phase state and routes to