Plan Mode Mastery
SkillDatabases & dataUse when starting a complex multi-step task to create an approved plan, track todos in SQL, and execute with checkpoints
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Plan Mode Mastery skill
What this skill tells your AI
The instructions your AI receives, as published by drvoss/everything-copilot-cli in skills/copilot-exclusive/plan-mode-mastery/SKILL.md and read by ahel’s review.
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
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: Built-in workspace-mutating tool calls are hard-blocked in Plan Mode. Planning artifacts may still be written inside the session folder, so this is a workspace mutation boundary rather than a claim that Plan Mode cannot write anything anywhere.
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:
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
4-A. Freeze a before-view before retargeting the plan
Before changing the plan's execution target or scope, write down an immutable plan preview of the plan as currently understood. Keep that snapshot as the before-record, then apply the retargeting change. This lightweight discipline makes it obvious what shifted if the plan changes course mid-execution.
5. Execution with Status Tracking
As Copilot works, it updates todo status:
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:
SELECT id, title, status FROM todos ORDER BY created_at;
Examples
Dependency-Aware Execution
-- 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:
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.
If the refinement changes the execution target or scope, first capture a frozen preview of the current plan summary before applying the new target.
Mode Transitions
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_depstable 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_fleetfor parallel execution. - Query your progress:
SELECT status, COUNT(*) FROM todos GROUP BY statusgives 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
blockedwith a reason when external dependencies prevent progress.
Signals
- GitHub stars
- 46
- Forks
- 11
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
plan-mode-mastery- Source
- github.com/drvoss/everything-copilot-cli