Crit slot exceptions

Six crit groups (mine, Liuru, among them) each hold a standing weekly slot, published by the course website’s own api/crit-groups.json. When a public holiday, a room clash or a tutor swap needs a one-off replacement for a group’s week, that change today lands as a hand-edited entry in that site’s exceptions array — a PR against the source of truth for what’s really a small, recurring coordination problem. This is the slice before that PR: a board where anyone can propose a replacement slot for a given week, see every open proposal in one place, and confirm one once it’s settled — live across every open tab, and still there on reload.

It deliberately doesn’t do more than that. It doesn’t write back to the website’s own data (that stays that repo’s job), and it doesn’t gate who can propose or confirm — the six groups and their tutors are a small, known set, not a public audience that needs authentication.

What good looks like here