From planning-tools
This skill should be used when the user invokes any /plan-* command from the planning-tools plugin (/plan-context, /plan-master, /plan-open-questions, /plan-verify, /plan-tick, /plan-progress, /plan-delete), asks how Claude Code's plan files work, asks where plans are stored, asks to author or audit a multi-phase master planning document, asks how to walk through a plan's Open Questions interactively, asks how to write progress entries, or mentions ~/.claude/plans/ or .claude/planning-tools.local.md. Provides the index of planning-tools commands, the master-plan workflow lifecycle, the v0.3.0+ list-shape mandate (phases and questions as headings + bulleted scope items, never tables), the v0.3.2+ plain-bullet shape (no `- [ ]` checkboxes — heading emoji is the sole tick signal), the progress-entry methodology, and the mechanics of Claude Code's plan-mode file storage.
How this skill is triggered — by the user, by Claude, or both
Slash command
/planning-tools:using-planning-toolsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This plugin provides two complementary workflows on top of Claude Code's plan mode:
This plugin provides two complementary workflows on top of Claude Code's plan mode:
~/.claude/plans/<slug>.md. The plugin's /planning-tools:plan-delete command cleans these up.context/tickets/, docs/plans/) and decompose work into actionable phases. The plugin's /planning-tools:plan-context, /planning-tools:plan-master, and /planning-tools:plan-verify commands cover this lifecycle.Use the Skill tool to invoke any skill by name. When invoked, follow the skill's guidance directly.
| Command | Triggers On |
|---|---|
/planning-tools:plan-context [topic] [--domains a,b,c] | Pre-loading context for a future master plan. Stage 1 Triage proposes domains, Stage 2 Confirm prints them as text + asks a binary AskUserQuestion (Proceed / Cancel — never multi-select, since the 4-option cap would crash on common N≥5), Stage 3 dispatches parallel plan-context-worker agents (one per domain), Stage 4 verifies findings with direct Reads. Emits a scope report. NO plan file written. |
/planning-tools:plan-master <topic> [--context <path>] [--domains a,b,c] | Drafting a multi-phase master plan. Reuses a prior /planning-tools:plan-context report if --context is supplied; otherwise runs the same Triage + Confirm + Explore + Verify pre-flight (Stage 2 uses the same binary-confirm pattern). Then dispatches plan-master-architect (opus) to synthesize. Writes to a project-local path (context/tickets/, docs/plans/, or .claude/plans/master/). |
/planning-tools:plan-open-questions [path] [question-number] | Walking through a master plan's Open Questions interactively. Resolves plan via branch-match (lifted from plan-tick). For each open question, the main conversation reads cited evidence files, composes a context block (question header → 1–2 context paragraphs → "Why X / Why it could matter / Risk profile" sub-analysis → 2–4 alternatives with one Recommended + one Defer), then calls AskUserQuestion — one call per question, never batched into a single multi-question call. Accumulates choices in memory; presents a batch summary and 3-option apply gate (Apply / Show diff first / Discard). On Apply: moves answered questions from ## Open Questions to ## Resolved Questions. Deferred questions stay in Open. Runs entirely in the main conversation — no subagent dispatch. Dual-shape support (v0.3.0 list shape primary, v0.2.x table shape with transition note). |
/planning-tools:plan-verify [path] | Auditing a drafted master plan. If no path is supplied, globs candidates and uses binary-confirm (Proceed with most-recent / Cancel) to pick. Dispatches plan-verifier agent against the plan-verification-checklist skill. Emits Critical/Important/Suggestion findings with a PASS/FAIL verdict. On PASS, optionally appends a - **Verified:** YYYY-MM-DD bullet to the plan's context block (a > **Verified:** line on legacy blockquote plans). |
/planning-tools:plan-tick [phase] [path] | Auto-ticking provenly-achieved phases in a master plan. Default (no args): detects the current branch, resolves the master plan that matches it, runs the audit inline in the main conversation (file existence + branch diff membership + symbol presence), ticks all phases verdicted ACHIEVED. Manual override /planning-tools:plan-tick <phase>: ticks one phase without audit. Both modes are non-interactive — never asks. No subagent dispatched. Works only on plans conforming to planning-tools:master-plan-methodology v0.2.1+. |
/planning-tools:plan-progress [--final] [--destination <type>:<id>] [--style-from <path>] [--ticket <id>] | Synthesizing a single dense progress entry for the current branch and applying it at the configured destination (markdown file / Linear comment / GitHub issue/PR comment). Reuses plan-tick's branch + plan resolution. SHA-based idempotency: safe to re-run between phases. Three-way detection on the existing entry: new / in-flight update / completed (3-option refresh prompt). First-run destination selection persists to .claude/planning-tools.local.md. --final flips to shipped state with **Shipped <date> via PR #<N>.** + ✅ heading. Composition runs inline in the main conversation — no subagent dispatched. Style spec, sub-markers, and adapter contracts in planning-tools:progress-methodology. |
/planning-tools:plan-delete | Clearing the current session's plan file at ~/.claude/plans/<slug>.md. Detects the slug via $CLAUDE_CODE_SESSION_ID + transcript grep, deletes the file, recreates empty, re-reads. Bootstraps with EnterPlanMode → no-op plan → ExitPlanMode if the session has never entered plan mode. |
┌───────────────────────────────────────────────────────────────────┐
│ 1. /planning-tools:plan-context [topic] [--domains a,b,c] │
│ Stage 0 (optional ticket-fetch) → Stage 1 Triage → Stage 2 │
│ Confirm → Stage 3 Parallel Explore → Stage 4 Verify. Emits a │
│ scope report. No plan file written. │
├───────────────────────────────────────────────────────────────────┤
│ 2. /planning-tools:plan-master <topic> [--context <report-path>] │
│ Reuses /plan-context report (if --context) or runs the same │
│ pre-flight. Auto-fetches ticket title + body + all comments │
│ if topic matches a Linear/GitHub pattern. Dispatches │
│ plan-master-architect (opus). Writes to a project-local path. │
├───────────────────────────────────────────────────────────────────┤
│ 3. /planning-tools:plan-open-questions [path] [Q-number] │
│ Walk through each Open Question one by one. Main conversation │
│ reads cited evidence + composes context block with 2–4 │
│ alternatives (one Recommended + one Defer). AskUserQuestion │
│ captures the choice. Batch apply moves answered questions │
│ from Open to Resolved. No subagent dispatch. │
├───────────────────────────────────────────────────────────────────┤
│ 4. /planning-tools:plan-verify <path> │
│ Audits the drafted plan. Critical/Important/Suggestion │
│ findings + PASS/FAIL verdict. Optional Verified callout. │
├───────────────────────────────────────────────────────────────────┤
│ 5. Manual phase iteration (built-in /plan) │
│ User copies the next unticked phase from the master plan into │
│ Claude Code's built-in /plan. Plan mode produces the per- │
│ phase plan at ~/.claude/plans/<slug>.md. User executes. │
├───────────────────────────────────────────────────────────────────┤
│ 6. /planning-tools:plan-tick │
│ Auto-tick: branch-matched plan + auditor-verdicted ACHIEVED │
│ phases get ✅. Conservative. Manual override: /plan-tick <n>. │
├───────────────────────────────────────────────────────────────────┤
│ 7. /planning-tools:plan-progress [--final] │
│ Synthesize one dense entry per branch; append/update at the │
│ configured destination (markdown / Linear / GitHub). SHA- │
│ based idempotency, three-way entry detection, --final ships. │
├───────────────────────────────────────────────────────────────────┤
│ 8. /planning-tools:plan-delete │
│ Clears the per-session plan file. Loop back to step 5. │
└───────────────────────────────────────────────────────────────────┘
/planning-tools:plan-master and /planning-tools:plan-context accept a ticket URL or ID as their first argument. When matched (Linear [A-Z]{2,6}-\d+ or https://linear.app/...; GitHub https://github.com/<owner>/<repo>/issues/<N> or <owner>/<repo>#<N>), the plugin fetches the ticket via the source adapter — title, body, and all comments, no cap — and propagates the block to Stage 1 Triage + every Stage 3 worker + the architect. The architect emits a - **Ticket:** <url> bullet as the first context bullet. Free-text topics still work — on no pattern match, existing behavior is preserved. See planning-tools:progress-methodology for the adapter contract.
| Skill | Purpose |
|---|---|
planning-tools:master-plan-methodology | Codifies the master-plan template: universal core sections, trigger-based optional sections, integer-only phase rule, Open Questions at top, status emoji convention, evidence attribution, callouts, cross-references. Read this before authoring or reviewing any master plan. |
planning-tools:plan-verification-checklist | Single owner of the audit dimensions used by /planning-tools:plan-verify and the plan-verifier agent. Defines severity (Critical/Important/Suggestion) and the PASS/FAIL verdict rule. |
planning-tools:progress-methodology | Single owner of the progress-entry style (dense paragraph), sub-marker convention (Piggybacked: / Verification: / Out of scope: / Shipped), entry-key marker format, SHA-tracking idempotency algorithm, three-way detection rule, comment-fetch policy (all comments, no cap), and the source + destination adapter contracts (markdown / Linear / GitHub). Read this when running or maintaining /planning-tools:plan-progress. |
For /planning-tools:plan-delete: Claude Code stamps every transcript entry with a top-level "slug" field once plan mode is entered. That slug equals the plan filename (without .md). This is the authoritative source:
$CLAUDE_CODE_SESSION_ID from the environment (the current session's UUID).$HOME/.claude/projects/<encoded-cwd>/$CLAUDE_CODE_SESSION_ID.jsonl
/ and . with - (e.g., /Users/o/Code.nosync/x becomes -Users-o-Code-nosync-x).grep -m1 -o '"slug":"[^"]*"' <transcript> | sed 's/"slug":"//; s/"$//'~/.claude/plans/<slug>.md.If the grep returns empty, the session has not entered plan mode yet — bootstrap with EnterPlanMode → minimal no-op plan → ExitPlanMode, then re-extract.
Why not "most recently modified file in ~/.claude/plans/"? Parallel sessions in other terminals/projects write to their own slugs concurrently. mtime is unreliable.
Why not grep the transcript for ~/.claude/plans/<slug>.md paths? That matches any plan path mentioned in conversation (e.g., ls output), not just the session's true plan slug. The "slug" field is set by Claude Code itself and is unambiguous.
/planning-tools:plan-delete solves both./planning-tools:plan-context, /planning-tools:plan-master) and audited (/planning-tools:plan-verify), with a strict format-driven methodology so plans are predictable and machine-checkable.1, 2, 3, …. No decimals, no letter suffixes, no sub-phases. The word "Phase" is reserved for integer-numbered work units inside a master plan.### Phase <N>: <name> <emoji> H3 headings with - bulleted scope items underneath (plain bullets canonical in v0.3.2+; legacy - [ ] / - [x] shapes parse silently with no finding). The phase heading emoji is the sole tick signal — per-bullet checkbox state is no longer tracked. Open Questions and Resolved Questions are bulleted - **Q<N> — <question>:** ... lines. No markdown tables for any of these three sections. /planning-tools:plan-tick supports the legacy v0.2.x table shape during a transition window.**TL;DR:** callout under its heading capturing what the phase does and why, 1–3 sentences. Tooling ignores the line; readers get a glance-able digest. Missing TL;DR = Important finding from /planning-tools:plan-verify.npx claudepluginhub oborchers/fractional-cto --plugin planning-toolsCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.