review-2.md
c133 · Phase 2 review stop (2026-11-11)
For: Mark, and Tyler for §2 of event-shape.md. What exists: the record's event shape written as a proposal in qevents' pattern, with six questions for Tyler; the record as a count in c128's Findings report (D10); the Corrections block on the finding as the proposal behind a variant (D16); the finding's history row unchanged as the record's home.
Where to look
| What | Where | Why |
|---|---|---|
| The event shape | event-shape.md | training.completed in the wire shape, the audit row, the projections, who may read it, the six questions for Tyler |
| Corrections in Reports | reports/findings?findingId=F-A&at=recorded | between Blocked and observed and Data protection: assigned, completed, waiting, per training; counts only, as of the cutoff |
| The Corrections block on the finding | finding-detail?findingId=F-A&at=recorded&v.corrections=block | the proposal under History; the default (no v.corrections) keeps the history row alone |
| The record page | training?findingId=F-A&at=recorded | unchanged from Phase 1: the record and the three audit rows |
The calls
- For Tyler, the six questions in event-shape.md §6: where the record lives (the audit log as the store, the rest reads); whose contract it is (qevents public, or the plane's API types); assignments counted from
message.sentor atraining.assignedevent; idempotency per (training, finding, person); an integer version or a content hash; operator and HQ assignments as the same event. The lab's defaults are stated for each. - Reports' Corrections reads as a state, as of the cutoff, like Open now, with "in this window" beside Completed. The alternative is a flow section (completions in the window) with the backlog of waiting trainings as its own line. Proposed: the state; a correction is something a finding has or lacks.
- Assigned on detection, in the count. D2 says policies assign first; the lab counts every finding under a policy with a training as assigned, so Waiting can read high on a team where nobody has taken the training yet. Honest, and it is the point of the section. Confirm.
- The Corrections block's place: under History on S1, before Details. Once Tyler agrees, the block becomes the default and the history row stays as the same event (D16). Confirm the order.
Mark's rulings (2026-11-11)
All four calls taken as proposed: Corrections reads as a state as of the cutoff (D17); assigned on detection counts, Waiting may read high (D18); the block sits under History, before Details (D19); once Tyler agrees the shape the block becomes the default and the history row stays as the same event (D20). Tyler's six questions stay open. The same evening Mark ruled publishing through the design API (D21) and handed Phases 3 and 4 to an execution session.
What is not done
Phase 3 (the content collection, assets, preview, publish), Phase 4 (the two other pilots), Phase 5 (hand-off). The c137 operator inbox still does not show training-completed (two lab worlds). Nothing is implemented in qcontrol or the plane; the proposal waits for Tyler.