Features
Everything on this page is shipped and works today.
Reading experience
Section titled “Reading experience”- One reading column with coordinated light and dark variants for every colour theme.
- A
Settingsdialog built as a sidebar of settings pages beside the page you pick. A standalone document opens it from the branding bar’s gear; a live review opens it from More actions. Every setting is its own page there, so none crowds another and a later one joins the sidebar instead of lengthening a page. On wide screens the sidebar is a narrow column beside a dominant content pane; on phones it becomes a compact row of pages above a single column, wrapping onto a second row rather than scrolling sideways. - The
Appearancepage offersLight,Dark, andSystem. The choice applies immediately, is saved for every review document in this browser, and is applied before the first paint so the other appearance never flashes. - The
Color themepage offersDefault,Rosé Pine,Nord,Catppuccin, andBrutalist. A theme is a palette rather than a mode: each one works in both light and dark, appearance still decides which, and every swatch previews that theme’s own shades. The choice also applies immediately, is saved across review documents, and is restored before the first paint.Defaultis Big Plan’s warm paper look and is what a document with no saved choice renders.Brutalistalso squares cards and controls, replaces the soft shadows with hard offset slabs, and sets one weight heavier, so it changes the shape of the reading surface and not only its colours; pill-shaped badges stay round. Systemfollows your OS preference, and is the value you get on a first run or when the browser refuses storage.- The
Approval messagepage holds the covering note sent to the agent with a plan approval. One note covers every plan; there is no separate one per plan. It starts from a standard wording, accepts up to 2,000 characters, saves as you type, andReset to defaultputs the standard wording back. Emptying the field does the same thing: a blank note falls back to the standard wording, so an approval never carries nothing. If the browser refuses to save, the field keeps what you typed and says so. Like the other settings, it is saved for every review document in this browser. - A fixed branding bar whose logo follows the effective light or dark appearance, independently of the colour theme.
- In-document
Maximizecontrols for fenced code, code snippets and diffs, tree diffs, data tables, database schemas, flow diagrams, and wireframes, with Escape restoring the reading view after any pending-feedback prompt is resolved.
Navigation
Section titled “Navigation”- A table of contents built from the plan’s level-two headings.
- A viewport-bounded sticky sidebar on wide screens, with a fixed
Contentsheader and an independently scrolling section list that reveals the active entry when needed; a compact stickySectionsmenu on narrow ones. - Section links scroll smoothly, unless you’ve asked your OS for reduced motion.
- During a wide-screen section-link jump, the sidebar keeps its exact scroll position until the requested section becomes current, then resumes active-entry tracking.
- Collapse controls on Parts, slides, and sub-slides, plus document-wide expand-all and collapse-all controls in the table of contents; TOC jumps expand collapsed ancestors.
- Collapse choices, CodeDiff and FileTreeDiff views, and database-schema column order and visibility persist only for the exact source path and authored revision, so same-titled plans and distinct authored revisions never share viewer state.
- A static render’s document-level review-comment draft follows that same revision-scoped browser-storage rule; live review persistence is described below.
Live review
Section titled “Live review”big-plan reviewserves a loopback session with a per-plan review token, comments on slides, components, or selected text, plus plan-wide chat and coding-agent status.- Sent feedback stays attached to durable threads while the connected coding agent answers, asks for input, declines, warns, or publishes a validated plan revision.
- Proposed changes gives each comment thread one evolving change set: its first committed baseline against the result of its latest committed reply. Every changed round is marked Updated plan, while the thread shows one current diff in its own conversation turn instead of retaining superseded per-reply diffs. If another reply advances a change set while its diff stepper is open, the stepper follows the set and keeps the reviewer on the change they were reading when it can identify the same plan block. Plan-wide chat and unsolicited revisions remain request-scoped change sets. Every diff preserves structured component presentation and guides the reviewer through accepting each changed place; comment threads then offer resolution.
- Confirmed decision answers are saved with the review and stay current only while their decision’s content is unchanged; they remain in the review until approval writes each answer into the plan source and delivers the recorded answers to the agent, and a standalone rendered document keeps answers for the reading session only.
- An Inputs list names what the review is still waiting for - for now, every decision the plan asks - with each one marked answered, not answered, or stale, and the ones the plan’s author called critical marked as such.
- Approve plan sits in the branding bar of a live, authoritative review. The dialog shows change sets, decisions, and the covering note from Settings; confirming auto-accepts every change set, records answered decisions in the plan source while leaving unanswered decisions unchanged, writes a durable approval record, sends an
approvalrequest to the agent, and stamps the page approved. If the plan later changes, the bar offers Re-approve. Revoke returns the plan to review and cancels a still-unanswered approval request. Read-only sessions keep showing an approval already in force without offering approval actions; static documents do not show the control, but abig-plan renderexport of a plan whose approval still pins that exact source carries the approved stamp, and an unapproved or stale plan exports with no stamp. - More actions in a live review offers Export and Settings, in that order. Export downloads the latest committed plan source as portable Markdown, with every built-in component represented as semantic text. It includes current saved decision answers and an approval only when that approval matches the exported version. Comments, draft agent edits, feedback dispositions, and agent status are excluded. Standalone documents keep the Settings gear and do not offer export because they have no authoritative current source to read.
- Review state and feedback packages stay in an ignored, owner-only
.big-plan/directory beside the plan. - When stable-link publication succeeds, a review gets a stable local address that stays identical through runtime restarts, even when the replacement runtime’s direct debugging address changes. The CLI presents this stable address as the one to open and labels the runtime address for debugging only; if publication is unavailable, it explains why and falls back to the direct runtime address. A small loopback service serves the live review while one runs, holds an unexpectedly interrupted review for its replacement, explains deliberate endings, starts itself when a command prints an address, and is inspected or stopped with
big-plan service.
See Reviewing a plan for the workflow, persistence model, causal diff behavior, and trust boundaries.
Feedback and revision
Section titled “Feedback and revision”big-plan reviewserves the plan locally for anchored comments, plan-wide chat, agent progress, revision-aware responses, and source diffs without an account or third-party service.big-plan agentconnects a coding-agent session to that live review while the MDX remains authoritative; Reviewing a plan owns the workflow, persistence, revision, and trust-boundary details.
- Syntax highlighting for fenced code blocks with a declared language.
- Unknown and undeclared languages stay plain and readable.
- Keyboard-accessible copy controls for fenced code, code snippets and diffs, data tables, and database schemas; success replaces the copy icon with a check without shifting the toolbar, updates the accessible name, and suppresses the tooltip until the control resets.
Plan authoring
Section titled “Plan authoring”- An MDX plan format made of standard Markdown, GFM, and built-in components; imports, exports, expressions, and inline JSX are rejected and never executed.
- Positional diagnostics that aggregate recoverable unsupported syntax, unknown components, invalid attributes, and malformed component content after MDX parses.
Slidemarkers from a closed, growing catalog, with type-specific authoring guidance, derived structural names, plan-specific heading titles, and conservative objective lint.DecisionAnalysiscomponents for weighty choices, rendered as keyed qualitative or weighted criteria matrices with lifecycle state, recommendations, required reversibility, optional interactive choice, and calculated totals.Calloutcomponents for notes, tips, warnings, and dangers.CodeDiffcomponents with optional line numbers and change counts, unified and side-by-side views, and scoped line annotations.CodeSnippetcomponents for excerpts with optional file identity, file-absolute line numbers, and scoped annotations.DataTablecomponents for reference datasets with sorting, optional search, selectable and reorderable columns, grouping, and text-fit controls.DatabaseTableSchemacomponents for one table’s schema: a psql-style columns grid with key badges, foreign keys, indexes, checks, and titled verbatim-DDL bands.FileTreecomponents for plain hierarchies with optional per-entry notes.FileTreeDiffcomponents with entry-level change status, summaries, and combined or side-by-side before/after views.HttpEndpointcomponents for HTTP contracts with location-grouped parameters, request examples, and status-coded responses.GraphqlOperationcomponents for queries, mutations, and subscriptions with literal argument types, one-level input and payload fields, and grouped executable examples with repeatable labeled responses.GrpcMethodcomponents for streaming-aware proto signatures, message-typed request and response fields, gRPC status codes, grouped examples, and proto source.QuickDecisioncomponents for standalone brief questions with recommendations and an answer flow, without a comparison expander.Wireframecomponents for true-width product screens with device-honest fixed or growing frames, walkable prototypes, opt-in common layout patterns, and an open vocabulary for custom layouts, including named glyphs as standalone marks or inside controls, verbatim references drawn as one bordered object with the copy control inside it, surfaces layered over the page with a dimmed or clear backdrop, and toolbars anchored at both ends.
Output
Section titled “Output”- Local, self-contained review delivery; the two-artifact delivery ADR owns the artifact and script-behavior contract.
- No external requests, ever.
- Renders anywhere Node.js 22+ runs, straight from
npx -y big-plan@latest render.
See the CLI reference for command details.