Guardrails
Automatic checks that my design work was built right and does what it was meant to do
My role
Designer and engineer
- Subject
- This site's delivery process
- From
- September 27, 2026, the first merged pull request
- Evidence
- The repository: registrations, pull requests, labels
- As of
- October 23, 2026
- Designed the guardrails: issue templates with blank issues disabled, a pre-registration required before an EPIC, and a check that fails a feature pull request without one.
- Fixed in advance four ways the study would fail, before any of the work it measures.
- Wrote 15 registrations into the delivery record, each with a metric, a threshold and a null, before the change it predicts.
- Closed registrations by measuring them against their own rules, including the ones that came back null.
- 15 registrations in the delivery record, each written before its change
- 3 of 4 closed registrations that came back null under their own rules, and 1 split
- 0 issues ever filed: the template path the study was built around went unused
- 78 of 111 merged pull requests that took the label exempting them from registering
Summary
The site's pre-registered studies rest on one method: write the prediction down before the change, then judge the change by it. This one turns the method on the work that produces the site. There is no participant; the subject is the delivery process, and the evidence is the repository itself. The premise is that a method which only ever confirms its predictions measures nothing, so the test is whether these guardrails produce surprises.
By October 23, 2026 the site had 15 registrations in its delivery record and 111 merged pull requests. 4 registrations have been closed by evaluating them: 3 came back null under their own rules and 1 split, supported on one page and null on another. The friction meant to guard the method moved, though. The issue templates the study was built around were never used, and the label that exempts a pull request from registering was put on 78 of the 111.
Who was involved
- Me The designer, the engineer and the subject of the study.
- Agents The AI agents that wrote much of the code and ran the reviews, held to the same registrations and checks.
Read the record .
Where it started
Process discipline usually degrades under deadline pressure. Pre-registration is the kind of practice that gets skipped when a release is close, and the skipping is invisible; nobody logs the hypothesis they declined to write down. Worse, a methodology that only ever confirms its predictions is indistinguishable from one that measures nothing. The design problem was to make the disciplined path the easiest path, and to define in advance what failure would look like.
Guardrails as behavioral design
The intervention was behavioral design applied to process rather than product, built into GitHub issue templates. Friction: blank issues were disabled, so structure could not be skipped. Commitment devices: an EPIC could not open without a linked pre-registration, which would lock the hypothesis before the intervention existed. Defaults: INVEST checkboxes were pre-filled to nudge completion. Forced functions: required fields would block submission without a JTBD statement and acceptance criteria. Traceability: every artifact would link to its parent EPIC and to the pre-registration it tests. Timeboxing: SPIKEs would get an explicit timebox, and SLICEs were capped at eight hours to prevent scope creep. No issue was ever filed, so none of these templates was put to use.
The four ways it fails, checked against the record
The study fixed four failure conditions before the work it measures. Here is each one against the repository on October 23, 2026.
Every registration confirmed, which would mean the predictions were too safe. It has not happened. Of the 4 closed, three came back null under their own rules: prerendering the study pages did not move their largest paint over HTTP/2, inlining the study stylesheet lowered the score on every page it touched, and a performance pass left the TerraQuotes page below the bound it named. The fourth split, supported on the study page and null on the home page.
More than 20% of EPICs shipping without a registration. This one cannot be tested as written, because no EPIC was ever filed: the repository has no issues at all. The work went through pull requests instead. Of the 29 feature pull requests merged, 15 cite a registration; 14 do not, 13 of them from one day of design passes on September 30.
Zero decision-log entries citing an unexpected finding. The nulls changed what happened next: the stylesheet inlining was dropped, and the prerendering result sent the work to headers that tell the browser what to fetch, which is where the decisions were logged.
Blank issues appearing, which would mean someone found a way around the friction. Blank issues never appeared, but the way around was found: the label that exempts a pull request from registering went on 78 of 111. Most of those are content edits that make no claim, which is what the label is for; it is also the easiest path, and nothing checks that a labeled pull request really makes no claim.
Outcomes
The method is teaching: three of four closed predictions were wrong in ways that changed the next decision, which is the surprise the study was looking for. The guardrails are not holding where they were built. The issue templates went unused, the exemption label became the common path, and 11 of 15 registrations are still waiting to be closed by evaluation. A registration closed by measurement is the standard the delivery notes set; most of these have not met it yet.
The evidence keeps accumulating with every pull request, and the registrations the site added on October 23 name the read-depth comparison that will close them four weeks after deploy.
What I would change
Put the friction where the work goes. A check on the pull request that asks a labeled change to say in one line why it makes no claim, and a weekly list of registrations still open past their evaluation date, would guard the path I actually use instead of the one I designed.