plan-mode-mastery
Use when starting a complex multi-step task to create an approved plan, track todos in SQL, and execute with checkpoints
Best use case
plan-mode-mastery is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when starting a complex multi-step task to create an approved plan, track todos in SQL, and execute with checkpoints
Teams using plan-mode-mastery should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/plan-mode-mastery/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How plan-mode-mastery Compares
| Feature / Agent | plan-mode-mastery | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when starting a complex multi-step task to create an approved plan, track todos in SQL, and execute with checkpoints
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Plan Mode Mastery
## Why This is Copilot-Exclusive
Copilot CLI has a **dedicated Plan Mode** activated by Shift+Tab that fundamentally changes
how you interact with the agent. Instead of executing immediately, Copilot creates a structured
plan with SQL-backed todo tracking, presents it in the terminal for review, and lets you choose
between interactive execution, autopilot, or fleet mode. Claude Code has no dedicated planning mode — it
either executes immediately or you manually structure your requests.
## When to Use
- Complex multi-step tasks that benefit from upfront planning
- Tasks where you want to review the approach before execution begins
- Work that should be tracked with status updates (pending → in_progress → done)
- When you need to choose between interactive, autopilot, or fleet execution
- Team-visible task breakdowns for collaborative work
## Workflow
### 1. Enter Plan Mode
Press **Shift+Tab** to toggle Plan Mode on. The mode indicator appears in your prompt.
### 2. Describe Your Task
```text
You: "Refactor the authentication system to use JWT tokens instead of sessions"
```
### 3. Copilot Creates a Structured Plan
Copilot analyzes the codebase, creates SQL todos, and presents a plan:
```sql
INSERT INTO todos (id, title, description, status) VALUES
('jwt-lib', 'Add JWT library', 'Install jsonwebtoken, add to package.json', 'pending'),
('token-service', 'Create token service', 'Build JWT sign/verify in src/auth/tokens.ts', 'pending'),
('auth-middleware', 'Update middleware', 'Replace session checks with JWT validation', 'pending'),
('login-endpoint', 'Update login', 'Return JWT instead of setting session cookie', 'pending'),
('logout-endpoint', 'Update logout', 'Implement token blacklist for logout', 'pending'),
('update-tests', 'Update tests', 'Fix all auth tests for JWT flow', 'pending');
INSERT INTO todo_deps (todo_id, depends_on) VALUES
('token-service', 'jwt-lib'),
('auth-middleware', 'token-service'),
('login-endpoint', 'token-service'),
('logout-endpoint', 'token-service'),
('update-tests', 'auth-middleware');
```
### 4. Review Plan in Terminal
Copilot calls `exit_plan_mode` to present the plan:
```text
exit_plan_mode:
summary: |
- Install jsonwebtoken and create token service
- Update auth middleware for JWT validation
- Modify login/logout endpoints
- Update all auth tests
- 6 todos with dependency chain
actions: ["autopilot_fleet", "autopilot", "interactive", "exit_only"]
recommendedAction: "autopilot"
```
You see a clean menu:
- **Autopilot** (recommended) — Copilot executes all todos autonomously
- **Fleet** — Parallel agents for independent todos
- **Interactive** — Step through each todo with your approval
- **Exit** — Leave plan mode without executing
### 5. Execution with Status Tracking
As Copilot works, it updates todo status:
```sql
UPDATE todos SET status = 'in_progress' WHERE id = 'jwt-lib';
-- ... does the work ...
UPDATE todos SET status = 'done' WHERE id = 'jwt-lib';
```
Query progress anytime:
```sql
SELECT id, title, status FROM todos ORDER BY created_at;
```
## Examples
### Dependency-Aware Execution
```sql
-- Find todos ready to execute (no pending dependencies)
SELECT t.* FROM todos t
WHERE t.status = 'pending'
AND NOT EXISTS (
SELECT 1 FROM todo_deps td
JOIN todos dep ON td.depends_on = dep.id
WHERE td.todo_id = t.id AND dep.status != 'done'
);
```
This query drives execution order — Copilot only starts a todo when its
dependencies are complete.
### Plan Refinement
If the plan doesn't look right, provide feedback:
```text
You: "Split the 'update-tests' todo into unit tests and integration tests,
and add a todo for updating the API documentation."
```
Copilot updates the plan and re-presents it for approval.
### Mode Transitions
```text
Interactive → "This is taking too long, switch to autopilot"
Autopilot → "Stop, I want to review the middleware changes"
Plan Mode → "Actually, use fleet for the independent test files"
```
Seamlessly transition between modes as your needs change.
## Tips
- **Plan Mode for big tasks, direct mode for small ones**: Don't over-plan
a one-file edit. Reserve Plan Mode for tasks with 3+ steps.
- **Use dependencies**: The `todo_deps` table ensures correct execution order.
Always model dependencies when they exist.
- **Fleet for parallelizable plans**: If your todos are independent (e.g., "add
tests to 8 files"), recommend `autopilot_fleet` for parallel execution.
- **Query your progress**: `SELECT status, COUNT(*) FROM todos GROUP BY status`
gives you an instant progress dashboard.
- **Iterate the plan**: Plan Mode is collaborative. Give feedback, refine, and
approve only when you're confident in the approach.
- **Blocked status**: Mark todos as `blocked` with a reason when external
dependencies prevent progress.Related Skills
threat-model-analyst
Use when a repository, system, or major change needs a structured STRIDE-A threat model — map architecture, data flows, trust boundaries, abuse cases, and prioritized findings, or update an existing model with a change-focused diff.
team-planner
Use when a task is too large or multi-domain for a single agent — assemble a specialist team, assign work via SQL tracking, dispatch with /fleet or task tool, and synthesize results
multi-model-strategy
Use when choosing which AI model to use for a task — pick the right model family and tier based on cost, speed, context needs, and reasoning depth
verification-before-completion
Use before claiming any task is done — run the exact command that proves the fix works, read the output, and only then report success.
using-git-worktrees
Use when you need multiple branches checked out at once — create isolated working directories for parallel development without cloning the repository repeatedly
triage
Use when a single issue needs structured triage — classify it, reproduce if needed, request missing information, and leave a durable brief or close-out note in the tracker.
to-issues
Use when a plan, spec, or PRD must become an actionable backlog — break it into thin dependency-aware issues that each deliver a verifiable vertical slice
sprint-workflow
Use when starting a new feature, refactor, or multi-step dev task — runs the full sprint cycle (Think → Plan → Build → Review → Test → Ship → Monitor) using Copilot CLI's plan/autopilot modes.
sprint-retro
Use at the end of a sprint to run a data-driven retrospective — analyzes session history and git metrics to surface what shipped, what slowed you down, and concrete improvements.
security-audit
Use when a codebase needs a formal security audit beyond a quick scan — applies OWASP Top 10 and STRIDE threat modeling from a CSO perspective to surface systemic vulnerabilities.
release
Use when a sprint or feature is complete and ready to ship — tags the version, generates GitHub Release notes, runs rollout or smoke verification, and publishes to npm/PyPI/Docker registries.
prompt-optimizer
Use when a rough prompt, vague idea, or task description needs to become a finished copy-pasteable prompt for a chat-based LLM - rewrite it into one ready-to-send prompt with no blanks, no placeholders, and a clear output shape.