The problem we left open
The last post built Clearance: a runtime service that will not mint a spend-shaped token unless a job is well-typed and its dual marks, ranges, and coverage state are all hash-bound. That stack assumes something worth hashing already exists upstream, a fitted artifact that actually solved the program it claims to have solved. This post is about the plane where that assumption gets made or broken before Clearance is ever asked to bind it.
The scalar you ask an optimizer to improve is already a strategy choice. Anonymous losses mint production personalities: silence-as-skill, midpoint peacemaking around 1.80, inventory-blind hunting, untracked recipe swaps that still share a filename. Gates downstream then police the wrong factory with great manners.
That creates three real headaches in production:
- The illusion of a shared model family: artifacts compared as if they optimized the same thing.
- The arbitrage trap: two recipes, two objectives, a gap that may be target conflict rather than edge.
- Credibility collapse under shift: proxies that looked sharp on quiet holdouts and die when the evaluation window can no longer be shrunk away.
So the question for this post is simple. If that is the failure mode, what does a real AI solution look like?
The solution, as one stack
The core idea is older than today's training stacks, and it still holds: do not let the system invent a definition of winning the desk never approved. In engineering language: put the objective on a card, prefer targets that resist gaming, track every sweep, keep multi-criteria honest, and bind Clearance decisions to the card hash.
That card is the desk cousin of Mitchell et al.’s model cards (arXiv:1810.03993): intended use, metrics, and evaluation conditions travel with the artifact. Banking model-risk practice (SR 11-7 lineage) demands the same pairing of purpose and performance claim. The loss card is where purpose becomes a hashable training contract, not a PDF that drifts after fit.
I turn that into five moves. Together they are one solution, not five optional add-ons.
1. Write a loss card before you train. A loss card for CEH-001 is boring on purpose: decision object (mark, hedge, both), frames allowed, primary terms, penalty terms, the population the score is computed on, whether flat time counts, cost model reference, stress path packs that enter the score, short policy if portfolio-shaped, forbidden optimisations, and the human owner. If the card is missing, training for production cannot start. Research sandboxes can play. They cannot mint Clearance tokens.
2. Prefer expose-aware targets over shrinkable proxies. If a score improves when the policy simply refuses hard days, ban that score for capital recipes or force flat-time penalties in. If average absolute error collapses dual frames into a fake peace, add an explicit disagreement-preservation term or score frames separately. Expose-aware means the objective still bites when the book is exposed, not only when the agent chose to look busy. Cost blindness is a non-starter: spreads, funding, and inventory live on the card or the recipe is refused. Specification gaming (Krakovna et al., DeepMind blog and collected examples; related lists such as Lehman et al. on surprising creativity) is the failure mode this move is designed to starve.
3. Track objective sweeps as first-class experiments. Every change to primary terms, penalties, populations, or cost models gets a new card id and a new train_binding_hash. Leaderboards must show card id next to seed and architecture. Comparing Recipe B to Recipe C without naming the cards is how teams launder strategy search as hyperparameter tuning. Keep the sweep log next to the model registry. If you cannot answer which objective minted a champion, you do not have a champion. You have a souvenir.
4. Keep multi-criteria visible instead of one fake scalar. Desks often need mark honesty, hedge residual honesty, inventory, and stress path budgets at once. Compressing them into one training number can be useful inside a search. Shipping only that number is theater. Publish the vector. Gate on the vector. Do not let a single green average waive the criterion the team fears. Soft multi-objective weights chosen after looking at the board are Friday exam negotiation; freeze them before fit or refuse.
5. Bind the Clearance path to the loss card. A Clearance token for CEH-001 should carry the loss card hash the same way it carries frame contracts, crowd probes, and range artifacts. If the card changed, the token is invalid. If someone wants a new objective, they re-enter promotion. That is how you stop a Recipe B artifact from spending under a Recipe A story. Independent challenge of the card (SR 11-7 style) is the human twin of the hash check.
Trenches: model, agent, harness, pipeline
Model. Fit only under a hashed card. Store the achieved objective value, active constraints, and a stationarity or KKT-style witness when the program admits one. (The Karush-Kuhn-Tucker conditions are the standard checklist for whether a solver actually reached the constrained optimum it claims: at a genuine optimum, the objective's gradient must be a weighted sum of the active constraints' gradients, and those weights are read off a Lagrangian, the single combined function whose stationary point is the constrained solution. A model that names Markowitz mean-variance or CAPM beta as its objective is just naming one specific constrained program in this same family.) Recompute the witness from the card's Lagrangian, not from the solver's own flag. A solver certifies whatever it was handed; the pairing is the quantity in dispute.
Agent. Draft tickets must cite loss_card_id and binding hash. Agents propose; they do not redefine the loss mid-flight. A draft that invents a midpoint peace term or drops dual-frame scoring is a hard deny, not a yellow.
Harness. Promotion compares artifacts only within the same loss family. Cross-family gaps are labeled target conflict, not edge. Worst-group and shortcut reports (next pair of posts) attach to the same binding.
Pipeline. CI refuses production train jobs with missing cards, silent weight edits, or default losses from unowned configs. A change packet is required for any card edit: new covariance recipe, shifted target, different penalty weight, flipped short policy. Never a silent shrink that keeps the old trophy name.
The example: CEH-001 under three recipes, now controlled
Without the stack. Recipe A keeps dual clouds near 1.50 [1.42, 1.58] and 2.10 [2.01, 2.22]. Recipe B learns 1.80 from human midpoints. Recipe C farms simulator drift, and promotion compares filenames.
| Recipe | Card status | What Clearance does |
|---|---|---|
| A (dual-frame + anti-collapse) | approved loss family for mark job | comparable within family; gap 0.60 managed |
| B (midpoint / last-quarter human marks) | rejected card for dual-frame mark | cannot spend under dual-frame token hash; deny 1.80 |
| C (friendly-sim PnL proxy) | own card id + drift warning | not comparable to A as "edge"; re-enter promotion |
Now run the same case through the solution. First the loss card forces a human question models cannot answer alone: are we training a dual-frame mark, a hedge, or both, and does flat time count? If the job is dual-frame marking, Recipe B's midpoint objective is not equal truth. It is a rejected card. Second, expose-aware terms reject silence-as-skill. A policy that improves its score by skipping ugly afternoons fails the card before any network search starts. Third, sweeps are named. Recipe C's PnL proxy gets its own card id with an explicit drift warning. It cannot quietly inherit Recipe A's promotion narrative. Fourth, multi-criteria stay visible: frame disagreement width, mark error by frame, residual edge on hedges, path budget breaches. A beautiful average cannot hide a broken dual-frame term. Fifth, Clearance tokens bind to the approved card. A 1.80-seeking artifact cannot spend under a dual-frame card hash.
End state: you still train. You just stop manufacturing false personalities from anonymous targets. The 1.50 versus 2.10 gap stays managed disagreement instead of collapsing into a trained 1.80 peace cult.
Objective card as ADR
The loss card is this desk's ADR for “what we optimize.” Same six fields as any durable geometry decision:
| ADR field | CEH-001 objective card |
|---|---|
| Context | Fit will invent a personality for the target; midpoint peace is a popular cheat. |
| Options | Point MAE to 1.80; dual-frame losses; expose-aware / flat-time policy; silence-as-skill scores. |
| Decision | Primary loss on dual-frame objects; forbidden optimisations include midpoint targets and silence-as-skill for capital recipes. |
| Consequences | train_binding_hash recomputed at promote; Clearance refuses unbound train; change packet for any card edit. |
| Gate predicate | FORBIDDEN includes midpoint_peace; population and flat-time policy required; cross-family champion compare labeled conflict. |
| Hash | loss card hash on model artifact and Clearance token (SR 11-7 intended use travels with the hash). |
SR 11-7 / model-risk language wants intended use and metrics with the artifact. The hash is how that language becomes a gate rather than a PDF. Worked refuse: a recipe that targets 1.80 under a “blend” label fails closed even if MAE looks pretty, because the card's forbidden list is code.
What to lock
- Loss card fields before fit (decision object, frames, primary/penalty terms, population, flat-time policy, costs, forbidden optimisations, owner).
- Expose-aware population and flat-time policy; no silence-as-skill scores for capital recipes.
- Forbidden optimisations list with owner, including midpoint peace on CEH-001.
train_binding_hashrecomputed at promote; Clearance token fields include the hash.- Change-packet requirement for any card edit; no production train without a card.
- No cross-family champion comparisons; target conflict labeled as such.
- Model-card / SR 11-7 pairing: intended use and metrics travel with the artifact, not as after-the-fact prose.
The flow in one breath
Problem: the loss is already the strategy. Solution: card the objective, prefer expose-aware targets, track sweeps, keep criteria visible, bind Clearance to the card. Example: 1.50 vs 2.10 stays managed disagreement instead of collapsing into a trained 1.80 peace cult.
That is the systems work I care about in financial AI. Curious how others refuse production training when the objective card is missing or when a proxy can be gamed by shrinking the window.
The example: killing the venue_id hero on CEH-001
Challenger V posts exam MAE 0.071 against champion 0.089, a twenty percent improvement. Ablation and worst-group expose the cheat. Dual marks that had collapsed toward 1.80 reopen toward 1.50 [1.42, 1.58] and 2.10 [2.01, 2.22] once the cue is gone. That is the cultural rule protecting the 0.60 gap. The gap is uncomfortable. Shortcuts make it comfortable by fake peace. The stack's job is to keep the discomfort where it belongs: in managed disagreement, not in a haunted feature.
| Object | Challenger V | Champion | Card / gate |
|---|---|---|---|
| Exam MAE (friendly) | 0.071 | 0.089 | average alone would promote V |
| After shuffle venue_id | 0.093 | (unchanged) | cue ate the whole gain, and then some |
| Worst-group ratio | 3.42 | 1.75 | limit 2.0; V refuses |
| Dual marks after ablate | ~1.50 [1.42, 1.58] and ~2.10 [2.01, 2.22] | deny 1.80 peace | |
| Verdict | SHORTCUT_CUE refuse; no promote, no Clearance | ||
Mechanism: venue 7 handles most co-break flow; the "feature" is a partial regime label. A report that only says "ablation passed" is not a report. It is a rumor with a checkbox.
Book: Chapter 21 in Rulers Before Models.