Plan Viewer
The Plan Viewer is the component that renders a generated pipeline plan — structured sections, rationale, affected files, acceptance criteria — with syntax-highlighted code blocks and a full-screen mode for reading long plans.
It lives in packages/ui/src/ as a shared primitive and is mounted inline in the IssueDetail overlay at apps/desktop/src/renderer/components/IssueDetail.tsx.
Inline vs full-screen
The viewer renders in two modes:
- Inline — embedded directly in the IssueDetail overlay, collapsed by default, expandable to fit the available space.
- Full-screen — click the
Maximize2icon on a plan row to open a full-window Dialog with the same content at maximum width. This is the mode to use when reviewing a long plan or comparing plan vs review side-by-side.
The full-screen mode was added in Session 24 specifically to make long plans readable without squinting.
What the viewer renders
- Plan version — ShipCode keeps every planner output as a versioned
PlanRecordrow; the viewer shows which version you’re reading - Sections — parsed from the structured
ShipCodePlanshape: summary, affected files, implementation steps, risks, acceptance criteria - Rationale blocks — reviewer comments inlined next to the section they pertain to, when a review round exists
- Raw markdown fallback — if structural parsing fails, the viewer falls back to rendering the raw planner output as plain markdown so you never lose visibility
Review pairing
When a thread has both a plan and a review, the full-screen viewer shows them side-by-side — plan on the left, reviewer critique on the right — so you can read the adversarial pass in context without scrolling between panes.
Related
- Pipeline Overview — what the plan, review, and revise phases do
- Kanban Board — where you click into IssueDetail to reach the viewer
Last updated on