One architecture, built three times before I noticed it was a pattern.
A language model is very good at reading something and saying what it sees. It is not good at being accountable for the conclusion. So I stop asking it to be.
The judgment and the arithmetic are separated on purpose, and only one of them is allowed to be creative.
The second rule I did not set out to write. It showed up on its own, in all three systems: each one is built to refuse. Job-Fit will not score a claim it cannot cite. Debrief will not certify a number it cannot trace. Taper Editor reports plan structure and never predicts injury.
A system that cannot say I don't know is not reliable. It is just fluent.
Each one started as a different problem. All three ended up split the same way.
A deterministic scoring engine computes the fit number from the labels it receives. A confidence floor caps the score when evidence is thin. An Evidence Ledger traces every claim back to the line it came from.
Majority-vote labeling across passes: does this requirement appear in this résumé, and where.
It will not produce a score for a claim it cannot cite. Thin evidence caps the number rather than guessing it upward.
A publish gate runs over the finished draft. Every number has to trace to something the user actually said, and an unbacked number blocks the verdict.
It drafts the debrief and proposes the framing.
It will not certify a metric it cannot trace. If you didn't say it, it doesn't ship.
Eight deterministic rules over a training plan, plus a blocking scope check that runs before any rule is allowed to fire.
Critique layered on top of the checker: it reads the structure the rules found and says what it means.
It reports plan structure and never predicts injury. When a rule cannot be evaluated, it holds and asks one question instead of inventing a pace, a baseline, or an injury history the athlete never stated.
Evidence Ledger · confidence floor · 8/8 acceptance checks
Full guardrail set · five artifacts · publish gate with a blocking verdict
7/7 selftest including a control case that must not fire · six specimens covering every return path · two external witnesses testing plans they actually meant to follow · one disagreement left unresolved and documented in LIMITATIONS.md
Each of these went from idea to running code without a handoff. I wrote the spec, made the interaction decisions, built it, tested it against people who weren't me, and shipped the limitations next to the feature instead of after it.
The repos are public. The tests are in them.
Senior Product Designer | AI Behavioral Design
The routing, the guardrails, and the moment a system hands off to a human. That's the layer I build.