From skills
Read-only status view for plan suites in the current project. Detects the active suite (one with chunks not yet done) and shows status, dependencies, and what's runnable next. Use when the user invokes /plan-tracker or asks "what's the state of the plan" / "what's next in the plan" / "what's left".
How this skill is triggered — by the user, by Claude, or both
Slash command
/skills:plan-trackerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Show the current state of plan suites in this project. **Read-only** — this skill never modifies any plan file.
Show the current state of plan suites in this project. Read-only — this skill never modifies any plan file.
Every plan produced by /deep-plan is a suite (a directory containing index.md and one or more chunk files), including single-chunk plans. This tracker operates on every such suite uniformly.
This skill is strictly read-only. Do not use Edit, Write, MultiEdit, or any Bash command that modifies files or repository state. Use Read, Glob, Grep, and read-only Bash (ls, find, cat) only.
This skill prefers the AskUserQuestion tool for interactive prompts. If AskUserQuestion is not available (older Claude Code versions, restricted environments), fall back to plain text: print the question, list the options as a numbered list with the recommended option marked (Recommended), and wait for the user's reply (a number or the option label). The skill proceeds normally in either mode — every call site below that says "call AskUserQuestion" follows this fallback rule.
Resolve the plans directory before scanning: read .claude/plans-config.json if present and use its plansDir; otherwise default to .claude/plans. If the config file is missing or malformed, silently fall back to the default. Everywhere this skill says "the plans directory" or <plansDir> below, it means the resolved value.
Look for plan suites in the plans directory (<plansDir>). A suite is a subdirectory containing an index.md file.
Run roughly: find <plansDir> -name index.md -type f
For each suite found, parse its index to determine:
# Suite: <name> heading)## Goal section)## Chunks section)If a bare .md file exists directly under the plans directory (not inside a suite directory), it's a legacy single-plan from before the suite-everywhere refactor. Note it under "Legacy plans (untracked)" but do not parse it. Suggest the user re-run /deep-plan if they want to track it.
If no suites exist, print:
No plan suites found in <plansDir>/.
Use /deep-plan to create a new plan.
End your turn.
A suite is active if at least one of its chunks has status pending, in-progress, or blocked.
A suite is complete if all chunks are done.
Identify active suites and complete suites separately.
Default to it. Skip to Phase 3.
Call AskUserQuestion:
If user picks "List all suites", print all active suites with their last-modified time, then ask in plain text: "Which suite? (paste the name or path)".
Once a suite is selected, proceed to Phase 3.
Print:
No active suites. Completed suites:
- <suite-name> (all <N> chunks done)
- ...
Ask via AskUserQuestion: "View a completed suite, or stop?" with options "View completed suite", "Stop". If view, list completed suites and let user pick.
Print a clear, scannable status view:
📋 Suite: <Suite name>
Goal: <goal>
Path: <suite-directory>
Chunks:
✅ <chunk-name> done
🟡 <chunk-name> in-progress (started: <relative time, e.g. "2h ago" if inferable from file mtime>)
⏸️ <chunk-name> blocked (depends on: <deps>)
⏳ <chunk-name> pending (depends on: <deps>)
⏳ <chunk-name> pending (no dependencies — runnable now)
Progress: <done>/<total> chunks done
Runnable now (no blockers):
- <chunk-name>: claude "/execute-plan <path>"
- <chunk-name>: claude "/execute-plan <path>"
Blocked (waiting on dependencies):
- <chunk-name>: depends on <chunk-name> (status: <status>)
Status icons:
A chunk is runnable if its status is pending and all its dependencies have status done.
A chunk is shown as blocked in the runnable section if its status is pending but a dependency is not done. (This is distinct from a chunk explicitly marked blocked — that one needs human resolution, not just waiting.)
If the user has multiple runnable chunks, list them all. Do not pick one for them.
After displaying status, end your turn. Do not call any further tools, do not modify any files, do not suggest concrete actions beyond the runnable commands already printed.
If the user wants to act, they will run /execute-plan <path> themselves. The tracker's job is to inform, not to drive.
index.md). Single plans are not tracked./execute-plan or any action.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub vpaivag/skills --plugin skills