Agent rule

Cohort check-ins live at school.differentthandefault.com/live-feedback; public aggregates at /workshop-pulse. No login. Identity = normalized email + phone with soft match (either field). Two saves per day via explicit start of session / end of session. Confidence 1–10 (labels in config/workshop.json). End-of-session requires what’s working + what to improve; optional top-3 queries any checkpoint. Public pulse shows start avg, end avg, and two lifts: (1) session lift = same-day end − start; (2) overnight lift = today’s start − yesterday’s end. Never pool all starts vs all ends into one fake lift. Written feedback (good / improve / queries) is owner-email-only — never on /workshop-pulse. Day is always student-picked (1–7). Platform Supabase tables workshop_feedback_people + workshop_feedback_entries. API shares /api/school-apply?action=workshop-feedback (Hobby 12-function limit — do not add a separate api/workshop-feedback.js).

Status: Accepted

Context: Need day-by-day confidence tracking and qualitative feedback during the 7-day workshop without friction of accounts, while still linking the same student across days. Vercel Hobby allows at most 12 serverless functions. Qualitative lines are for the facilitator, not the room screen.

Decision: Split form vs pulse URLs; store PII for matching; publish confidence only; email each full check-in to the owner; mount on existing school-apply function.

Consequences: New batches set batchId in config/workshop.json. Edit confidence label copy there. Migrations 018_workshop_live_feedback.sql + 019_workshop_feedback_queries.sql.