Skip to content

Flow — Review and decide on an exact proposal

Generated from the architecture model

This page is rendered from model/**/*.yaml by tools/docs_model during mkdocs build. Edit the YAML, not this page; hand-written design lives on the linked service, platform and plane pages.

Persona Yoav (Reviewer)
Experience requirements FUX-05, FUX-06
Steps 3

A reviewer decides on the exact proposal version shown, with evidence, and sees stale or superseded proposals refused.

flowchart TD
    s1["1. approvals-list<br/>which approval first?"] --> s2
    s2["2. approval-card<br/>approve, reject, request changes?"] --> s3
    s3["3. run-detail"]
    s1 -. "approval expiring soon flagged" .-> x1_1["adverse 1.1"]
    s1 -. "requester and reviewer identical: not eligible" .-> x1_2["adverse 1.2"]
    s2 -. "proposal version changed: 412 with the new proposal rendered" .-> x2_1["adverse 2.1"]
    s2 -. "approval expired while reading: Expired state, new request needed" .-> x2_2["adverse 2.2"]
    s2 -. "separation-of-duties refusal explained" .-> x2_3["adverse 2.3"]
    s3 -. "run resumes; if the action later settles Uncertain the reviewer is notified" .-> x3_1["adverse 3.1"]
Hold "Alt" / "Option" to enable pan & zoom

Steps

# Screen Decision point Reads Commands Adverse branches
1 approvals-list — Approvals waiting which approval first? ListApprovals — approval expiring soon flagged; requester and reviewer identical: not eligible
2 approval-card — Approval card approve, reject, request changes? ListApprovals, GetRun, ListRunArtifacts DecideApproval proposal version changed: 412 with the new proposal rendered; approval expired while reading: Expired state, new request needed; separation-of-duties refusal explained
3 run-detail — Run detail — GetRun, GetRunTimeline, ListRunArtifacts, ListRunReceipts, ListRunToolReceipts, GetRunUsage CancelRun run resumes; if the action later settles Uncertain the reviewer is notified

Acceptance

Every step is exercised keyboard-only at 1440×900 and 390×844, in light and dark, in en and he (RTL); every adverse branch renders its state from the states catalog with words, never colour alone; a command's outcome is the server's response, never a toast.