Stage 6 of 6 · The exit · three days of deliberate stillness
The freeze
Engineering has a standard name for what Monday evening begins: a freeze, the point after which the rules for changing the system tighten, kept by every team that ships to a date. The logic is not superstition about touching things; it is arithmetic about a shrinking window. This page gives the argument once, so the rules read as conclusions, then the rules, then the three-day runway they protect.
Why freeze: the risk argument
Every change to a working system carries some probability of breaking something distant, through the shared contracts Week 12 counted; that probability never reaches zero, which is why regression re-runs exist. During the build week that risk was a good trade: a break had days of runway to be noticed and repaired, and the change bought a new green. After D4 both sides of the trade collapse at once. The upside drops to near zero, the table is submitted and no cell improves, and the downside grows without bound as the recovery window shrinks toward Thursday, 14:30 or whenever the announcement sets the demo. The standard formulation (see freeze, software engineering): a freeze exists so that the portion of the system known to work keeps working, precisely because any change may have unintended consequences.
The rules: allowed and banned
| Allowed on the runway | Banned until after D5 |
|---|---|
| Restoring green: the smallest fix for anything that breaks, followed by the full regression lap, because the freeze protects "known working", and a break has already left that state | New rungs, however small, however tempting, however "basically done" one already is |
| Configuration and environment: demo-room Wi-Fi details, a fresh SD card from the stranger-test recipe, battery and cable logistics | Refactors and cleanups: every DEBT line in the journal stays exactly as journaled; January exists |
| Documentation: README polish, the D5 one-pager, demo notes; words cannot break the loop | "One small improvement": the banned phrase in full; if it changes behaviour, it is a change, and the curve above does not ask how small |
| Rehearsal: running the system, as many times as you like; exercising is not changing | Dependency and tool updates: the versions that passed D4 are the versions that demo |
The tie-breaker question
Unsure which column something belongs to? Ask: if this goes wrong, does the demo get worse than it is right now? Fixing a real break passes (the demo is already worse; you are restoring). Everything else that touches code fails, by the curve. Two people both answering, out loud, is the pair catching what one tired judgment misses.
The runway: two rehearsals and a drill
What the drill is really buying: Week 12 built a system that survives failure (services restart, LWT reports, the broker holds), and Week 13's clinic showed you can read its signatures. The drill converts that machinery into composure, because the pair that has already watched the node die and come back, twice, narrates Thursday's worst case as a feature demonstration. Graceful degradation was designed in; rehearsal makes it visible under pressure.
Checklist for this stage
Check yourself
Tuesday night, rehearsal 1 reveals the chart label says "light (%)" but the demo script says "brightness". Your partner reaches for the HTML. Apply the freeze's own machinery.
Why schedule the failure drill on Wednesday rather than keep the clean run as the last memory before Thursday? Argue from how the system and the graders both work.
Next week
Week 15 · Thu Dec 10
D5: the public demonstration
10 %: the frozen, twice-rehearsed system performed live. Cause the disturbance, let the dashboard narrate, answer anything. The course ends the way it was built: running.
Already written
The demo-slot protocol
Setup, frame, live run, proof, questions: the five-part slot the rehearsals are practising, with the three questions every milestone answers. It has been the target since the project hub opened.