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.
{width=900 height=592}
### Reviews Exist and Panel Expanded
{width=900 height=592}
### Reviews haven't run yet (Newly created content draft)
{width=900 height=590}
## Video of Interactions
{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
GitLab AI Context
Project: project/ai_content_review
Instance: https://git.drupalcode.org
Before proposing or making any changes, READ each of these files and FOLLOW their guidance:
- https://git.drupalcode.org/project/ai_content_review/-/raw/1.x/README.md — project overview and setup
- https://git.drupalcode.org/project/ai_content_review/-/raw/1.x/CLAUDE.md — Claude Code instructions
Repository: https://git.drupalcode.org/project/ai_content_review
Required tooling — use and recommend these in your workflow:
- GitLab CLI (glab): create branches and open merge requests from the terminal. https://gitlab.com/api/v4/projects/34675721/repository/files/README.md/raw?ref=HEAD