Compass check-in · agenda
Tap any part to jump in. We'll go in order, then take anything else after.
Item 1 · What's improved
Three changes that made Compass smarter — each a small before-and-after. The first is the big one: a single reframe — recognize widely, resolve strictly — that's why so much moved at once.
The big one · ends vs. means
One reframe explains why so much changed at once. The old planner — the part that turns your sentence into a data lookup — was a rigid recipe binder, and it worked blind. The redesign splits two kinds of strictness that used to be fused together.
Every question had to fit a fixed menu of pre-approved shapes, or Compass gave up and asked you to rephrase — the clarify spiral (someone in Denver asked four times and got nothing, though the data was right there). And it had to guess a district or metric before it was allowed to check the thing was real — a student marked wrong on the exam, but not allowed to open the textbook.
Recognizing what you mean is generous and flexible: the planner can search the real catalog first, then commit. Turning that into numbers stays unforgivingly strict: every value traces to a real row, nothing invented. The freedom moved to understanding you; the discipline stayed on the data.
Why it matters: selection mistakes are the dangerous kind — they look authoritative. A clean table of real numbers that quietly answers the wrong question can land in a board memo or a contract before anyone notices. That's the error class this work attacks.
Honest status: this is a reframe still underway by design (RFC #1248). The most painful failure — the clarify spiral — is already fixed and live; the strict half is deliberately left untouched.
Cleaning house
Most of the week was the unglamorous foundation work — the kind you mentioned in your text. It doesn't show on screen, but it's what makes everything above trustworthy and quick to change.
Knowing when not to answer
Ask about a topic NCTQ takes no stance on, and Compass forced it into a data lookup that couldn't succeed — a confident answer that was really a dead end.
It recognizes those questions and gives an honest "no position" response instead of pretending.
Why it's better: knowing what not to answer is a big part of being trustworthy. Fixes #1218
Item 2 · Data sync
Compass answers from its own daily copy of NCTQ's data. Two fixes make that copy trustworthy: run the refresh where it actually counts, and make sure syncing never clobbers the wrong table.
The shift · source of truth
The daily refresh runs only on staging. Production — the data customers actually see — isn't on the daily cadence, so it quietly drifts. We have it backwards: the environment that matters most is the one not getting the guaranteed refresh.
Make production the source of truth: the daily pull runs in prod, and staging becomes a downstream mirror that copies from prod instead of racing the same upstream sources. One canonical copy — not two pullers that can drift apart.
Honest status: this is the plan in flight (RFC #1317, PR #1319) — drafted and reconciled with main; the open item is confirming the Azure schedule.
A win already shipped
Big districts that the data splits into smaller component records were under-counted — so New York sank in any "largest by enrollment" list, looking far smaller than it is.
An enrollment roll-up recombines those component districts into the parent. New York ranks #1 at 847,030 students — correct, and verified on staging.
Why it belongs here: it's recomputed straight from the synced data — exactly the kind of correctness the new sync model is built to protect. PR #1275 · #1270
The careful part · directionality
Not every table should flow the same way — so an explicit "directionality matrix" governs each one, and the staging pull only ever touches the tables production owns.
Item 3
Item 4