UI/Workflow: Single node review view
## Problem / Motivation When working on one piece of content, an editor needs a focused view showing every review category individually with its pass / warn / fail status and threshold rules. Reviews should run progressively so the editor is not staring at a blank screen, and the layout has to read sensibly whether there is one category configured or ten. ## Mockups ### Default display review panel collapsed. ![Screenshot_2026-05-08_at_6.16.13_PM](/uploads/c17467df55b8d4d107f5bca55c47b58b/Screenshot_2026-05-08_at_6.16.13_PM.png){width=900 height=592} ### Reviews Exist and Panel Expanded ![Screenshot_2026-05-08_at_6.16.06_PM](/uploads/2291496eaaa523d2e89b18e3e035ffe8/Screenshot_2026-05-08_at_6.16.06_PM.png){width=900 height=592} ### Reviews haven't run yet (Newly created content draft) ![Screenshot_2026-05-08_at_6.16.23_PM](/uploads/b918e5631a3d5d684c7d5a4439dbf091/Screenshot_2026-05-08_at_6.16.23_PM.png){width=900 height=590} ## Video of Interactions ![AI-review_in-node-edit](/uploads/5c9268556984b502e32a0f78512aaa68/AI-review_in-node-edit.mp4){width=900 height=563} ### Layout - **Top of view:** the same segmented pill widget proposed for the list view (counts of pass / warn / fail), plus the optional aggregate score. Acts as the summary header. Keeps the visual pattern consistent across surfaces. - **Below the pill:** the per-category breakdown. One row per category. Two columns when there are six or more categories; one column when there are five or fewer (subject to refinement). - **Each row contains:** - Category label. - Threshold thermometer: a horizontal bar showing the score position relative to the configured fail threshold and (optional) warn threshold. Uses red / yellow / green zones derived from the thresholds. - Pass / warn / fail status icon. - Brief feedback text or a "View details" affordance. ### Threshold model - Each category has a **fail threshold** (required) and a **pass threshold** (required). - The **warn threshold** is optional. Categories without a warn threshold render as a two-zone bar (red / green) and never produce a yellow status. - We **do not support more than three tiers** of feedback per category in this UI. Holding the line at three keeps the pill widget on the list view honest and the per-category bar legible. ### Run states - **Not yet run:** placeholder state, run-all button visible. - **Run in progress:** each row shows a loading state as its review fires. Reviews complete independently; rows update as results arrive. A category that takes 60 seconds should not block one that takes 5 seconds. - **Completed:** the pill widget at the top reflects the final tally. - **Re-run:** running again replaces prior results. Previous results are not surfaced in this UI (history could be a future enhancement). ### Tooltip / drilldown reuse - The same per-category bar is what the list view's tooltip surfaces, so a single component does double duty. Hover or click on a category row reveals additional rule context (rule description, examples) without leaving the page. ### Edge cases - **One category configured.** Renders as a single row. The pill widget at the top is technically redundant but kept for consistency. Width should be capped so a single segment does not stretch absurdly wide. - **Category with only fail/pass thresholds.** Renders without a yellow zone. No "warning" state appears for that category in either the pill or the row. - **Category not yet run while others have.** Renders as a gray segment in the pill and a "Run" affordance on the row, unless the team chooses the "reset all on add" behavior (see overview issue). ## User interface changes - New per-node review surface, likely a tab or dedicated panel on the node edit screen (placement to be confirmed with the architecture discussion issue). - Reusable threshold-bar component shared with the list-view tooltip. - Loading / progressive-update behavior on the per-category rows. ## API / data changes - Reviews need to surface progress events so the UI can update rows individually as they complete (rather than waiting for a single bulk response). - Per-category configuration must expose: fail threshold, pass threshold, optional warn threshold, label, optional rule description. ## Remaining tasks - [ ] Confirm progressive update mechanics with backend (Ajax? React?). - [ ] Decide whether reviewing one category at a time (vs. always run-all) is a first-class affordance. - [ ] Walk the resulting design through the three task scenarios in the parent issue. ## Notes - Source: AI review working session, May 8, 2026. - The pill widget at the top of this view is the same component as the list view widget. Sharing it across surfaces reduces design and implementation surface area.
issue