Preflight Checklist
Problem Statement
The redesigned Claude Code desktop app (released April 14, 2026) introduced a dedicated Plan side panel that renders the current plan alongside the chat, with an "Approve / Reject" flow. This panel is populated by Claude Code's native Plan Mode — specifically when the agent calls the ExitPlanMode tool after writing a plan to the plan-mode plan file.
The superpowers:writing-plans skill does something functionally similar (writes a structured implementation plan and hands it off for review/execution), but it operates on a completely different mechanism:
- It writes the plan as a Markdown file to
docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md (configurable).
- It never enters native Plan Mode and never calls
ExitPlanMode.
- As a result, the Plan side panel in the desktop app stays empty ("No plan yet. Claude writes the plan here as it explores. Keep chatting.") even though a much more thorough plan is actively being written in the chat.
This creates two concrete UX gaps for users on the Claude Code desktop app:
- Discoverability/visibility: The plan is buried in the chat transcript (and on disk) instead of being pinned in the dedicated Plan panel. For long planning sessions like
writing-plans produces, scrolling back to review the plan is painful when the panel is sitting empty right next to it.
- Approval flow: Native Plan Mode gives you the "Accept plan? [Yes, auto-accept edits / Yes, with manual approval / No, keep planning]" prompt.
writing-plans has its own handoff (execute via subagent-driven-development vs inline), but it doesn't benefit from the desktop app's built-in approval UI.
Describe the solution you'd like
When running on Claude Code and the agent is producing a plan via writing-plans, optionally route the plan through native Plan Mode so the desktop Plan panel is populated. A few possible implementation shapes, from least to most invasive:
Option A — Opt-in hook at the end of writing-plans:
After the plan file is written and passes the self-review checklist, if the harness is detected as Claude Code (and the session is not already in Plan Mode), instruct the agent to enter Plan Mode, have it read/summarize the plan from disk into the plan-mode plan file, then call ExitPlanMode. This preserves the full plan on disk (source of truth) while giving the desktop app a rendered copy in the panel.
Option B — Write both locations in parallel:
When on Claude Code, write the plan to both docs/superpowers/plans/...md and the active plan-mode plan file, so the panel shows the plan even without entering Plan Mode explicitly. (Not sure this is possible without entering Plan Mode — would need to verify.)
Option C — Config flag:
A new setting like superpowers.useNativePlanPanel: true that users can toggle in their plugin config, falling back to the current behavior elsewhere (Codex, Copilot, Gemini CLI) where no such panel exists.
Option A seems most aligned with the existing cross-platform philosophy — the skill already branches on subagent availability, so branching on "is this Claude Code desktop" is a natural extension.
Describe alternatives you've considered
- Manually copy-pasting the plan into Plan Mode after the fact: works but defeats the point of an agentic workflow.
- Ignoring the panel entirely: acceptable, but the panel is prime screen real estate and users on the new desktop app (all Pro/Max/Team/Enterprise users) will increasingly expect plans to show up there.
- Starting the whole session in Plan Mode (
--permission-mode plan): conflicts with writing-plans assumptions about being in a worktree with full tool access for research, and with the brainstorming → using-git-worktrees → writing-plans flow where earlier skills need write access.
Additional context
Environment
- Claude Code desktop app (macOS), post-April-14-2026 redesign with the Plan side panel
- Superpowers installed via
superpowers@superpowers-marketplace
- Observed behavior:
writing-plans skill produces a full plan in docs/superpowers/plans/..., chat shows the planning progress, Plan side panel remains empty throughout.
Preflight Checklist
Problem Statement
The redesigned Claude Code desktop app (released April 14, 2026) introduced a dedicated Plan side panel that renders the current plan alongside the chat, with an "Approve / Reject" flow. This panel is populated by Claude Code's native Plan Mode — specifically when the agent calls the
ExitPlanModetool after writing a plan to the plan-mode plan file.The
superpowers:writing-plansskill does something functionally similar (writes a structured implementation plan and hands it off for review/execution), but it operates on a completely different mechanism:docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md(configurable).ExitPlanMode.This creates two concrete UX gaps for users on the Claude Code desktop app:
writing-plansproduces, scrolling back to review the plan is painful when the panel is sitting empty right next to it.writing-planshas its own handoff (execute via subagent-driven-development vs inline), but it doesn't benefit from the desktop app's built-in approval UI.Describe the solution you'd like
When running on Claude Code and the agent is producing a plan via
writing-plans, optionally route the plan through native Plan Mode so the desktop Plan panel is populated. A few possible implementation shapes, from least to most invasive:Option A — Opt-in hook at the end of
writing-plans:After the plan file is written and passes the self-review checklist, if the harness is detected as Claude Code (and the session is not already in Plan Mode), instruct the agent to enter Plan Mode, have it read/summarize the plan from disk into the plan-mode plan file, then call
ExitPlanMode. This preserves the full plan on disk (source of truth) while giving the desktop app a rendered copy in the panel.Option B — Write both locations in parallel:
When on Claude Code, write the plan to both
docs/superpowers/plans/...mdand the active plan-mode plan file, so the panel shows the plan even without entering Plan Mode explicitly. (Not sure this is possible without entering Plan Mode — would need to verify.)Option C — Config flag:
A new setting like
superpowers.useNativePlanPanel: truethat users can toggle in their plugin config, falling back to the current behavior elsewhere (Codex, Copilot, Gemini CLI) where no such panel exists.Option A seems most aligned with the existing cross-platform philosophy — the skill already branches on subagent availability, so branching on "is this Claude Code desktop" is a natural extension.
Describe alternatives you've considered
--permission-mode plan): conflicts withwriting-plansassumptions about being in a worktree with full tool access for research, and with thebrainstorming → using-git-worktrees → writing-plansflow where earlier skills need write access.Additional context
ExitPlanModetool description (Piebald mirror of CC system prompts): https://github.com/Piebald-AI/claude-code-system-prompts/blob/main/system-prompts/tool-description-exitplanmode.mdExitPlanModeis the signal): https://lucumr.pocoo.org/2025/12/17/what-is-plan-mode/Environment
superpowers@superpowers-marketplacewriting-plansskill produces a full plan indocs/superpowers/plans/..., chat shows the planning progress, Plan side panel remains empty throughout.