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.