The Revise feature grid has grown to 13 buttons across three groups and reads as a wall. Splitting this out so it gets its own discussion rather than riding along with an unrelated change.
Current state
frontend/src/pages/revise/index.tsx — promptList, rendered as a 2-column grid in three groups:
- Document structure (5): Hierarchical Outline, Inspirational Exemplar, Possible Structure, Where to Work Next, Related parts
- Content analysis (2): Main Point, Important Concepts
- Critical analysis (6): Claims and Arguments, Counterarguments, Further Evidence, Outside the Box, Questions Addressed by Writer, Questions a Reader Might Have
Observations
The grouping classifies by what the AI examines, not by what the writer wants. "Content analysis" vs "Critical analysis" is a distinction about the assistant's method. A writer arriving at the page is asking something more like "what have I got?", "what could this become?", "where do I go next?", "how will this land?" — those cut across the current groups.
isOverall is a hidden second axis. It splits the 13 5-to-8, and a non-overall prompt is silently rewritten to Go part-by-part through the document. For each part, please do the following: … (index.tsx:377). Whole-document and part-by-part features produce very different results and take very different amounts of time, and nothing in the UI distinguishes them. Selecting the six "Critical analysis" features is six sequential part-by-part sweeps of the whole document.
The per-feature icons are dead code. All 13 entries carry an icon: field and there are 13 matching react-icons imports, but prompt.icon is never referenced in the JSX — every button renders a generic featDot span (index.tsx:585). Either wire the icons up or drop the field and the imports.
Several features are near-duplicates from the writer's chair. Counterarguments, Further Evidence, Questions a Reader Might Have, and Questions Addressed by Writer all answer some version of "what would a reader push on, and what's missing."
Options discussed
- Regroup by the writer's question — keep all 13, replace the method-based labels with intent-based ones. Cheap; mostly a relabel plus recategorization.
- Collapse to lenses — the regrouping above, plus each group collapses to a single header row with only the first open. Writer sees ~4 lines instead of 13 buttons. Depends on the regrouping being right, since the collapsed state is all you see.
- Surface the whole-doc / part-by-part split — mark or separate the 8 part-by-part features so their cost is visible. Probably a complement to (1) rather than a substitute, since it organizes by mechanism.
- Drop the multi-select batch — the "Run N features" footer asks the writer to compose a batch before seeing anything. An alternative is one feature at a time, with the result panel offering contextually related follow-ups.
Constraints
- The Google Docs sidebar is locked at ~300px (see
frontend/CLAUDE.md), so horizontal space is not available.
- Three Playwright specs click a button by its label
Hierarchical Outline (tests/editor.spec.ts:115, tests/chat-revise-flows.spec.ts:44, tests/error-visibility.spec.ts:48). Any change that hides features behind a collapsed group needs those specs updated to expand first.
docs/design/interface-concepts.md Concept 1 (the Charter) suggests a longer-run answer in which the grid dissolves: once success criteria exist, the writer picks a criterion and the features become evidence-gatherers pointed at it. Worth not painting over that.
The Revise feature grid has grown to 13 buttons across three groups and reads as a wall. Splitting this out so it gets its own discussion rather than riding along with an unrelated change.
Current state
frontend/src/pages/revise/index.tsx—promptList, rendered as a 2-column grid in three groups:Observations
The grouping classifies by what the AI examines, not by what the writer wants. "Content analysis" vs "Critical analysis" is a distinction about the assistant's method. A writer arriving at the page is asking something more like "what have I got?", "what could this become?", "where do I go next?", "how will this land?" — those cut across the current groups.
isOverallis a hidden second axis. It splits the 13 5-to-8, and a non-overall prompt is silently rewritten toGo part-by-part through the document. For each part, please do the following: …(index.tsx:377). Whole-document and part-by-part features produce very different results and take very different amounts of time, and nothing in the UI distinguishes them. Selecting the six "Critical analysis" features is six sequential part-by-part sweeps of the whole document.The per-feature icons are dead code. All 13 entries carry an
icon:field and there are 13 matchingreact-iconsimports, butprompt.iconis never referenced in the JSX — every button renders a genericfeatDotspan (index.tsx:585). Either wire the icons up or drop the field and the imports.Several features are near-duplicates from the writer's chair. Counterarguments, Further Evidence, Questions a Reader Might Have, and Questions Addressed by Writer all answer some version of "what would a reader push on, and what's missing."
Options discussed
Constraints
frontend/CLAUDE.md), so horizontal space is not available.Hierarchical Outline(tests/editor.spec.ts:115,tests/chat-revise-flows.spec.ts:44,tests/error-visibility.spec.ts:48). Any change that hides features behind a collapsed group needs those specs updated to expand first.docs/design/interface-concepts.mdConcept 1 (the Charter) suggests a longer-run answer in which the grid dissolves: once success criteria exist, the writer picks a criterion and the features become evidence-gatherers pointed at it. Worth not painting over that.