Responsible AI & Governance · 2 to 3 hours
Specify a review and escalation workflow
Specify how disputed AI feedback is re-reviewed, corrected, and escalated, with server-side authorization, artifact-bound approval, deadlines, and concurrency rules, then prove the rules with acceptance fixtures.
Hands-on workflow specification
3 h
1
Step 1: The question
Specify the workflow that handles a learner's dispute of published AI feedback on the fictional platform, from filing to closure. Define the case states and transitions, who may take each action and how that is enforced, how a corrected result is bound to the exact reviewed artifact, what happens when a deadline passes, and how concurrent actions and repeated publication requests are handled. Add a risk-register entry for the risk that a wrong score stays in final contest results because its dispute is not decided in time, the audit events and the remedy for affected records, a reviewer-capacity estimate for the contest window, and acceptance fixtures that would prove the dispute path.
Build a risk register with evidence
| Field | Example |
|---|---|
| Risk ID | R-017 |
| Scenario | A valid alternative solution receives a failing score |
| Affected people | Learners using less common but correct approaches |
| Cause hypothesis | Rubric and examples overfit a preferred implementation |
| Control | Broader fixtures, expert adjudication, accessible dispute path |
| Evidence | Evaluation report E-12 and review sample E-19 |
| Owner | Feedback quality owner |
| Residual uncertainty | Limited coverage of advanced asynchronous solutions |
| Decision and review trigger | Restrict score use; reassess after dataset expansion |
Keep the scenario concrete: "bias exists" tells nobody what to test. Separate observed incidents from hypothetical risks and record your confidence in the cause. A control needs an owner, a deadline, and evidence that it operates; a planned control is not an implemented one. The NIST AI RMF Playbook suggests actions for this work; adapt them rather than treating them as a mandatory checklist.
Review workflow specification
The review contract for the fictional platform in the fixtures below:
| Current state | Event | Actor | Preconditions | Result |
|---|---|---|---|---|
| Draft | Submit | Generator | Artifact and evidence revisions fixed | Pending review |
| Pending review | Approve | Queue reviewer | Every required evidence item present; the reviewer can open each one; reviewed artifact hash, evidence revision, and policy version equal the stored ones | Approved; approval bound to the reviewer, artifact hash, evidence revision, and policy version |
| Pending review | Reject | Queue reviewer | Reason recorded | Rejected |
| Pending review | Deadline reached | Scheduler | No valid decision before the deadline | Expired and escalated to the queue lead; never approved by default |
| Approved | Binding changes | Generator (output or evidence) or policy service (policy) | New output, material evidence revision, or new policy version | Draft with the new binding; the old approval is superseded |
| Approved | Publish | Publisher | The approval's artifact hash, evidence revision, and policy version still equal the stored ones at commit time | Published; score written to the learner's progress record once; one learner notification |
| Published | Restrict | Incident owner | Reason recorded | Restricted: explanation visible; score stops counting and shows as under review; investigation opened |
| Published | Withdraw | Incident owner | Reason recorded | Withdrawn: explanation and score hidden and removed from progress totals; learner sees an under-review notice; investigation opened |
| Published, Restricted, or Withdrawn | Correction published | Publisher | A corrected item for the same submission has just been published | Superseded: kept in history; its score leaves progress totals and the corrected score replaces it |
Rejected and Expired are final for that artifact revision; new output starts again as a Draft. Some workflows need two independent reviewers or more states; derive them from the use case rather than adding ceremonial approvals.
The feedback-review fixture
Suppose a coding-practice platform shows learners AI-drafted feedback on their solutions: an explanation and a practice score from 0 to 5 that counts toward their progress record. A model drafts each item, a reviewer approves it, a publisher service publishes it, and learners can dispute a published score.
Item F-31 is the draft feedback for learner Lee's solution S-88:
| Field | Value |
|---|---|
| Revision | 4 (the record version; every applied transition adds 1) |
| Artifact hash | h1 (the exact explanation and score) |
| Evidence revision | ev3 (hidden-test results and the rubric) |
| Policy version | p7 (current) |
| Review deadline | 48 hours after submission |
Actors. Identity always comes from the authenticated session, never from a request field.
| Actor | May do |
|---|---|
| Rina, Kai | Approve or reject items in this queue; can open all evidence |
| Omar | Approve or reject items in this queue; his access to the hidden-test results has lapsed |
| Lee | Dispute their own results once published |
| Generator | Submit drafts and write new model output or evidence for an item |
| Policy service | Move items to a new policy version |
| Publisher | Publish items |
| Dana | Restrict or withdraw published items (incident owner) |
| Scheduler | Fire deadline events |
Check order. Each command goes through these steps, and the first failing step decides the outcome.
- Authorize the actor for the event. Failure: refused as unauthorized; nothing changes; a denied-attempt log entry is written.
- Publish only: if the idempotency key was already applied, return the stored outcome and change nothing.
- Compare the expected revision with the stored one. Mismatch: conflict; nothing changes; the caller is shown the current state.
- Check that the table allows the event from the current state. Otherwise: refused as an invalid transition.
- Check preconditions in table order. Failure: refused with the specific reason, which is returned to the actor and logged; no audit event; the state does not change. If a reviewer cannot open required evidence, the queue lead is also alerted to reassign the item or restore access.
- Apply atomically: new state, revision plus 1, one audit event.
Disputes. Only the learner a result belongs to may dispute it. A dispute is not an item transition: after step 1 it skips steps 2 to 6 and follows this rule instead. It may be filed against a Published, Restricted, or Withdrawn item. It leaves the item's state and revision unchanged, creates an Open case record with an owner from the dispute rota, writes one audit event linking the case to the item revision, and gives the learner the case ID and due time. A decision is due within 5 days, or before the contest results become final for a dispute filed during a contest window.
Contest load. During the weekly 8-hour contest window, disputes arrive at about 12 per hour and each re-review takes about 15 minutes. Two qualified reviewers are on shift, and contest results become final 2 hours after the window closes.
Constraints
- Use only the actors, rules, and figures in the context sections
- Nothing may be approved, upheld, or published by default, whether a deadline passes or a backlog grows
- Specify engineering controls; make no claim about legal or regulatory compliance
Deliverables
- Dispute case states and transitions, including deadline and escalation paths
- Authorization and concurrency rules for every action
- A risk-register entry for a wrong score that stays in final contest results, with controls, evidence, an owner, and a trigger
- Re-review setup: what the reviewer sees, who may re-review, contest-window capacity, and how review quality is measured
- Audit events, the remedy for affected records, and acceptance fixtures for the dispute path
2
Step 2: Hints
Optional. Each hint gives a little more away.
3
Step 3: Work through it
Predict the outcome
Predict the acceptance fixtures
Each row starts from its own stated record for item F-31; rows are independent. Use the actors, transition table, and check order from the context. Predict the outcome, the stored state afterward, and the audit and downstream effects before you reveal them.
| Fixture | Start | Command | Outcome | Stored state after | Audit and downstream effects |
|---|---|---|---|---|---|
| A1. Authorized reviewer approves an unchanged, complete item | Pending review, rev 4; h1, ev3, p7; evidence complete | Rina: Approve, expected rev 4, reviewed h1, ev3, p7 | ? | ? | ? |
| A2. Unauthorized user submits an approval | Pending review, rev 4 | Lee (learner session): Approve, expected rev 4; the request body says reviewer "rina" | ? | ? | ? |
| A3. Reviewer submits a stale expected revision | Approved, rev 5 (Rina approved at rev 4) | Kai: Reject, expected rev 4, reason recorded | ? | ? | ? |
| A4. Output changes after approval, then publication is attempted | Approved, rev 5; approval bound to h1, ev3, p7 | (a) Generator: Binding changes (new output h2), expected rev 5. (b) Publisher: Publish, key P-1, expected rev 6 | ? | ? | ? |
| A5. Required evidence is missing | Pending review, rev 4; ev3 lacks the hidden-test results | Rina: Approve, expected rev 4 | ? | ? | ? |
| A6. Deadline passes without review | Pending review, rev 4; 48 hours pass with no decision | Scheduler: Deadline reached, expected rev 4 | ? | ? | ? |
| A7. Duplicate publication request | Approved, rev 5; approval valid for h1, ev3, p7 | Publisher: Publish, key P-7, expected rev 5; after a timeout, the identical request is sent again | ? | ? | ? |
| A8. Published output is withdrawn | Published, rev 6 | Dana: Withdraw, expected rev 6, reason "explanation quotes another learner's code" | ? | ? | ? |
| A9. User disputes a result | Published, rev 6 | Lee: Dispute F-31, reason "valid approach penalized" | ? | ? | ? |
| A10. Reviewer cannot open the source evidence | Pending review, rev 4; evidence complete | Omar: Approve, expected rev 4 | ? | ? | ? |
Diagnose
Escalate a disputed score
Lee files dispute D-12 against published item F-31 (revision 6): a score of 2 out of 5 on an interval-merging exercise. The solution passes all 14 hidden tests. In the dispute, Lee explains that they use a screen reader and write one statement per line with short landmark comments so they can navigate the code by ear. The published explanation says "Readability: verbose, non-idiomatic structure (minus 3)."
The audit trail shows that Rina approved F-31 under policy p7 after 40 seconds. The review screen showed the model's explanation and score first, with the hidden-test results in a collapsed panel.
The case owner pulls the passing submissions for this exercise from the last 30 days:
| Slice | Passing submissions | Readability penalty of 2 or more points |
|---|---|---|
| One statement per line with landmark comments | 34 | 31 |
| All other passing submissions | 1,166 | 60 |
- Say who owns D-12, what you preserve as evidence, and where Lee's accessibility details may be stored.
- Compute the penalty rate for each slice. Say what the comparison does and does not show, and how you would test the cause directly.
- Decide whether to contain similar outputs while investigating. If you do, name the workflow action, who performs it, and its scope.
- Say what the F-31 approval suggests about the review setup, name one change, and explain how blind samples would show whether the change worked.
- Describe the remedy for Lee and for other affected learners using the workflow rules, the conditions for closing D-12, and what Lee is told.
Kept in this browser. Saving your score below keeps a copy with it.
0 / 5000
4
Step 4: Reference answer
5
Step 5: Score yourself
Score each dimension 0, 1, or 2, then save the score to your history. Readiness thresholds are editorial estimates.
Grades your written answer against this rubric with your own AI provider key from Settings. It is a second opinion: the score you save is still yours.
0 of 10 · Scored 0 of 5 dimensions
Ready at 8 of 10, with no 0 in Workflow correctness
Kept in this browser until you sign up, then it moves to your account.
Complete this level when each risk has an accountable response, each approval can be traced to the exact reviewed output, and your fixture predictions follow from the stated check order.
Your saved scores
Practice saves and mock interview answers on this question, newest first.
No saved scores yet. Score every dimension, then save.
6
Step 6: Follow-up questions
An interviewer may ask these next.
Why bind approval to an artifact revision?
What should happen when a review deadline passes?
How do you measure whether human review works?
Does a risk register reduce risk by itself?
Why carry an expected revision in each transition?
7
