Skip to main content
    All shows

    Tuesday, November 3 · 25 min

    Prove It, Run It, Defend It

    0:00-:--
    Speed

    Transcript

    Koko: Here is the single instinct this module is built on: a score that averages ninety-seven and a half percent can still be a hard no. And if you don't know why that is before you tune a single threshold, you are building the test suite in the wrong order. That is what this module is about — how to structure the evidence that earns a release, and why the floor beats the average every time.

    Chris: And when you say floor, you mean something different from a passing threshold. You mean a category of failure that is disqualifying at any frequency.

    Koko: Exactly. One occurrence, zero tolerance. But let's build up to the floor — start with the full picture. A release argument rests on seven test families. Unit checks on each individual tool. Contract tests on each schema, so the interfaces don't silently drift. Golden cases with a known correct answer. Regression cases that once failed and now have to keep passing. Adversarial cases that actively try to break the boundary. End-to-end runs of the whole pipeline. And production feedback — which only accrues after release, so it lives in a different category from the rest.

    Chris: Seven families, two grades on every run. That's the other structural piece — you're not just checking whether the outcome landed, you're checking how it got there.

    Koko: Right. Final state and trajectory. Did the right thing happen, and did it happen the permitted way. Those are two separate passing conditions, and a run can clear one and fail the other.

    Chris: The deductions queue scenario makes this concrete. Walk through it.

    Koko: Lab of forty cases spread across the families. Thirty-two pass on final state — reasonable. The trajectory check finds one case where the agent assembled the correct write-off by reading a record its permission class forbade. It got to the right answer. It took a forbidden route. Aggregate score: ninety-seven and a half percent. The floor says no release. Both numbers are accurate. Only one of them decides.

    Chris: And the reason the floor wins is that forbidden-read is a severe failure — the kind where frequency doesn't matter. One is enough.

    Koko: Exactly. Which is why the analogy I reach for is a driving test. Arriving at the destination is the final state. Running the red light on the way is the trajectory. No amount of smooth parking averages that away. You still failed the test.

    Chris: And the structural implication is the order you build the suite. Floors first, then thresholds, then you tune.

    Koko: That's the takeaway. Write the floors before the thresholds, and the thresholds before you touch the tuning. A team that tunes first optimizes toward whatever it happened to measure. If what it measured was only final state, you already know what happens next.

    Chris: There's one more thing that sets the floors before you even get to the test matrix — the regulatory and contractual envelope around the use case. That shapes what counts as a severe failure.

    Koko: Yes, and this is worth slowing down for. Classify the use before you test it. The rules governing it — data protection law, sector-specific regulation, AI regulation, contract terms — set floors that no aggregate score can trade away. If an output affects people, you test outcomes across the relevant groups. You label generated content. You make sure a named person has the power to override, and that the person affected has a way to contest. And you keep records before anyone asks — because evidence assembled after the question is reconstruction, not documentation. Regulatory dates move, so check the current text.

    Chris: The version of this I keep seeing on teams is people treating compliance as a late checkpoint — something you verify after the suite is already shaped. By then the floors were never written into the matrix.

    Koko: And then the score looks fine, and the release looks fine, and the problem is invisible until it isn't. Which brings us to the failure modes. The first one is testing only the final state. When that's all you grade, the system learns that the answer is what matters — and it will find the shortest route to the answer, including the routes the design explicitly forbade.

    Chris: Trajectory isn't a nice-to-have, it's the check that closes that gap.

    Koko: The second failure mode is treating production feedback as a lab family — counting it as evidence for the release decision. It is real data. It is valuable data. It arrives after the decision, so it cannot be the basis for it. Production feedback belongs in your monitoring posture, not your release argument.

    Chris: Seven families, two grades, floors before thresholds. That's the structure.

    Koko: That's the structure. And one forbidden action in an otherwise excellent suite is still a no.

    Koko: So graders stack. Four tiers, and the right way to read them is bottom-up. At the base: deterministic assertions — unit-test-style checks that are free to run and go on every single change. Above that, rule-based checks. Above that, a model grading a model. And at the top, a human. The base is the widest, and that is where most of your evidence actually comes from.

    Chris: Which matches what I see in practice — teams want to reach for the model-grading-model tier because it feels sophisticated, but deterministic is doing the heaviest lifting quietly in the background.

    Koko: Exactly right. And the analogy I keep coming back to is: a thermometer, a recipe card, a trained taster, and the head chef. Each one catches something the tier below it cannot. None of them replaces the tier above.

    Chris: The thermometer does not know what the dish is supposed to taste like. It just knows the temperature is wrong.

    Koko: Right. So let me make it concrete. The close checklist assistant — a system flagging whether a financial reconciliation is complete. It states ninety-two percent confidence. Sounds solid. But the deterministic tier has already flagged that the numbers are off by a rounding rule. The pyramid catches it at the bottom, for free, before the model-grading-model tier even gets involved.

    Chris: And that is the thing — the deterministic check does not care what the model thinks. It is just arithmetic.

    Koko: Exactly. So the takeaway for the room: grade the resulting state, not the narrative the system tells you about that state. The model can produce a beautifully reasoned explanation of why the reconciliation is fine. If the numbers do not add up, the explanation is irrelevant.

    Chris: Let's stay on that ninety-two percent for a second. What does it actually mean for that number to be trustworthy?

    Koko: Calibration. When the system says ninety percent, it should be right about nine times in ten. Not eight, not nine point five — nine. There are six signals that tell you whether it is actually doing that, and stated confidence is a claim to be tested, not a fact to be relayed.

    Chris: The version of this I keep seeing on teams is someone pulling the confidence score out of the output and putting it straight into a dashboard as a KPI, with no validation that it tracks to actual accuracy.

    Koko: And that is how you end up flying blind. Now — review posture. Who actually looks at a decision? That is set per decision, and four things determine it: impact, reversibility, the evidence behind the confidence score, and policy. High impact, hard to reverse, thin evidence — human. Low impact, easy to undo, strong calibration — automated is fine.

    Chris: So it is not a blanket rule across the system. You set it decision by decision.

    Koko: Per decision. And when it does go to a human, it goes as a seven-field packet. What was decided. On what evidence. With what confidence. What the alternatives were. What happens if nobody acts. Who is accountable. And by when. All seven.

    Chris: The 'what happens if nobody acts' field is the one I see dropped most often. People just escalate the decision without the consequence.

    Koko: And then the human has to reconstruct it under time pressure, which is exactly when they make the mistake the handoff was supposed to prevent. A handoff that carries the decision without the evidence is a delegation of blame, not a delegation of work.

    Chris: That framing is going to stick. Okay — what is the failure mode that actually decays first once this is in production?

    Koko: Calibration drift. And it is the sneaky one, because accuracy holds — individual answers still look fine — while the confidence scores quietly stop tracking reality. Exception-only review was set up assuming the model is uncertain when it says it is uncertain. If that link breaks, you are reviewing exceptions that are no longer the risky ones.

    Chris: And nobody raises a flag because nothing looks obviously wrong.

    Koko: Nothing looks wrong until a bad decision gets through that the confidence score said was safe. There is also a structural version of this around provenance: when two sources conflict, the record has to keep both. A run that quietly picked one has destroyed the evidence a reviewer needed. That is not a data quality problem — that is an accountability problem. The controls belong at the tool boundaries, where untrusted content enters and where authority is exercised. Not in the prompt.

    Chris: So the instinct to carry in is: treat confidence as a testable claim, ship the full seven-field packet, and watch calibration — not just accuracy — once it is live.

    Koko: That is the whole module right there.

    Koko: Here is the thing that trips up even experienced teams. When you release an AI system, you are not releasing the model. You are releasing a change set, and that change set has six versioned layers: the model itself, the prompt, the schema, the tools, the retrieval corpus, and the infrastructure including its permissions. A change to any one of those six layers re-runs the whole test suite. Any one.

    Chris: That is the part teams underestimate. The prompt feels like documentation. It does not feel like code. But downstream it behaves exactly like code.

    Koko: Exactly. And the pipeline has seven gates to match. Most of them are checks — security, schema validation, integration. But the evidence gate is the one that actually blocks. Nothing merges if a floor is breached, if an aggregate metric is under threshold, or if a regression case that previously passed is now failing.

    Chris: So the gate does not ask whether the change was big. It just asks whether the evidence holds.

    Koko: Right. The pipeline does not have an opinion about the size of the change. That is the whole point. Let me make it concrete. Imagine an invoice matcher — an agentic system that classifies and routes invoices. A developer makes a one-line edit to the instruction contract. One line. It reads like a copy edit; maybe they tidied up a phrase.

    Chris: And the pipeline treats it as a full release.

    Koko: Full release. The suite runs. And one regression case that had been passing cleanly for a month now fails. The merge is blocked. And when the team goes back and reads that sentence they just tidied up, they find out the original phrasing was load-bearing. That sentence had been written exactly that way because of that regression case. Someone had tuned it to handle a specific edge condition, and the edit erased that precision.

    Chris: The regression case was the institutional memory. Without the suite running on every change, that knowledge just walks out the door.

    Koko: That is a clean way to put it. Here is the analogy I keep coming back to: an aircraft maintenance log. Nobody replaces a bolt without an entry, and the aircraft does not leave the hangar on the mechanic's word that it was a small bolt. The log does not ask whether the bolt was important. Every bolt gets an entry. Every change runs the suite.

    Chris: And that is what makes it defensible. It is not judgment call by judgment call. The process is the defense.

    Koko: Which is the takeaway: a prompt edit regresses exactly like a code edit, and the only defense is that the evidence runs on every change without anyone deciding whether this one is important enough. The moment you start making that call, you have a gap.

    Chris: On staged release — the pattern I see working is synthetic first, then a canary slice of real traffic, then expand. And rollback triggers have to be armed before the first real transaction hits.

    Koko: Yes. And that word 'contain' — a contain stage in the release plan is not an admission that something went wrong. It is a stage in the plan. You designed for it. The rollback trigger firing is the system working correctly.

    Chris: The version of this I keep seeing on teams is the failure mode: the observability panel is full of system health signals — latency, error rate, queue depth — all green. Nine green lights. And nobody notices that the client's actual number is drifting. Days to release creeping up. Exception rate up three percent week over week. Cost per case quietly climbing.

    Koko: Nine green health signals and a business metric quietly failing. The fix is structural: put the KPI on the same panel as the health signals. Not a separate dashboard someone checks quarterly — the same panel. And put a named owner on every one of the seven release gates, because a gate with no named owner is a gate that gets waived by silence. Nobody decides to waive it. It just never gets checked.

    Chris: A gate with no owner is not a gate. It is a suggestion.

    Koko: That is exactly what it is. So the instinct to carry into the room: one change set, every layer versioned, evidence runs without exception, business KPIs live beside the health signals, and every gate has a name next to it before you go live.

    Koko: The governing number for everything we have built toward is cost per accepted outcome. Not cost per call, not cost per attempt — cost per outcome that cleared every threshold: quality, latency, safety, control, all of it. And above that line there are eight costs you have to count: model calls, retries, tools, retrieval, human review, exception handling, the platform, and rework. Miss any one of them and your number is wrong.

    Chris: The rework one is where I see budgets go sideways. A design looks cheap until you price the twenty minutes a person spends fixing each output.

    Koko: Exactly — and that is the scenario that makes this concrete. Two designs for a deductions queue. Design one is cheap per call and needs twenty minutes of human rework per accepted write-off. Design two costs five times as much per call and is accepted as it stands. Design two is cheaper. You cannot see that from the per-call number alone.

    Chris: So the denominator is doing a lot of work. An attempt that fails quality doesn't belong in the denominator at all.

    Koko: Right. Count it in the numerator — you paid for that call — but it earns nothing in the denominator. That discipline is what makes the number honest.

    Chris: There is an analogy I keep reaching for with stakeholders on this: the cheap flight that lands two hours away at three in the morning.

    Koko: That is exactly the one. The fare is not the cost of the journey. Once you add the taxi, the lost sleep, the next-day recovery, a different flight might have been cheaper. Same math here.

    Chris: So what does the ledger that holds all of this actually look like?

    Koko: Six metrics, and each one carries five things: a baseline, a target, a source, an owner, and a stop rule. The stop rule is the trigger that ends the program — not the excuse that extends it. Take the deductions example: baseline forty-one days, target twenty-eight, source the receivables system, owner the credit manager. The stop rule is two consecutive months above baseline. That is when you stop, not when someone decides they feel like stopping.

    Chris: The stop rule is the part teams skip. They write the target and leave the exit condition blank, which means they have already decided to continue no matter what.

    Koko: That is the takeaway, said better than I said it: write the stop rule the same day you write the target. A program without a stop rule has already decided to continue. And the ledger has to hold quality, consistency, latency, risk, human effort and full cost together — not just the metric that looks good this quarter.

    Koko: On the operations side — keeping the cost honest once you are live. Route each request to the smallest model that passes for that class of work, and escalate on low confidence. Keep the stable part of every prompt first so it hits the cache. Batch what can wait. Cap tokens per step and per run. And trace every call with its token count, its cost, and its model version.

    Chris: Caching the stable prefix is one of those things that looks like an implementation detail and turns out to be a meaningful cost lever.

    Koko: Genuinely significant. And the tracing piece is what makes the ledger number auditable — you cannot defend a cost figure you cannot reproduce from call-level data.

    Chris: One thing I want to press on: coding agents. A lot of the code in these pipelines is now being written by agents. How do you measure whether that is working?

    Koko: Good question, and the answer is not lines generated. Lines generated tells you nothing. You measure lead time, change failure rate, and rework. Did the change get through the pipeline faster? Did it break things? Did a human have to rewrite it? Those three tell you whether the agent is adding value or just adding volume.

    Chris: And the agent itself goes through the same pipeline as any other change — plan before acting, work from a versioned instructions file, make small changes against tests, get reviewed by something that did not write the code.

    Koko: Reviewed by something that did not write it — that is the constraint that actually matters. The review is not a formality if the reviewer is independent. And the instructions file is versioned because you need to know which version of the agent's guidance produced which output. Same auditability principle as the rest of the ledger.

    Chris: The version of this I keep seeing on teams is a roadmap that says something like 'move to act-and-notify in Q3.' The date is on the slide before anyone has looked at what production is showing.

    Koko: That is the failure mode, and it has two problems. First, the commitment was made before the evidence exists — Q3 is not a criterion, it is a calendar entry. Second, and this is the half that people say less often out loud: promotion is earned by what production shows, and it is reversed by a trigger. Tiers move down.

    Chris: Say that again — tiers move down.

    Koko: Tiers move down. If calibration decays, if the stop rule fires, if a batch run hits its contain or reverse verb, the agent goes back to a lower autonomy tier. A date-based roadmap has no mechanism for that. It only points forward. The criterion-based model points both directions, and that is what makes it a real control.

    Chris: So the instinct to carry in is: any promotion decision that cannot name the production evidence behind it is not a promotion decision yet.

    Koko: That is exactly it. Evidence first, tier second. And if you cannot name the trigger that would demote it, you have not finished the governance work. The runbook has three verbs — batch, contain, reverse — and reverse gets rehearsed before it is needed, not discovered in the moment when something goes wrong.

    Koko: Alright. Last stop. Let's talk about what you actually hand someone and what you say when they look up from it.

    Chris: The packet and the defense. And I want to make sure people understand the packet is not a document you write at the end — it's seven artifacts you accumulate one per stage as you go.

    Koko: Exactly right. The opportunity and its gates, the scores, the redesigned work, the contract and context map, the tool contracts and pattern, the evidence, and the operating plan. You've been building it the whole time. By this point, it exists.

    Chris: So the one-minute defense is not a summary you write from scratch — it's a structured pull from artifacts that already exist.

    Koko: Four parts. The outcome — what actually changes for a real person. The redesign — what you changed about the work before you automated anything. The pattern and why nothing higher — what orchestration shape you chose and why you stopped there. And the failure with its control — what goes wrong and what catches it.

    Chris: That fourth one is the one I see teams skip. They're ready to talk about the first three and then they get a question about failure and they go quiet.

    Koko: And that silence is expensive. The room reads it as 'they haven't thought about this.' So you name the failure mode and its control before anyone asks.

    Chris: Then the verdict. Walk me through the logic — because the three options aren't arbitrary.

    Koko: Advance, revise, or reframe. The rule is about what kind of failure you have. A framing failure — the outcome is wrong, the problem is misunderstood — sends you back to the very beginning, back to the outcome. A proof failure — the design is sound but the evidence isn't there yet — keeps the design in place and asks only for evidence. You don't throw away good work just because a reviewer wants more data.

    Chris: And then there's the readiness rubric — which is what actually gates the release.

    Koko: Seven competencies, four levels each, a threshold score. And then eight critical-control gates that operate completely separately from the score.

    Chris: The gates are binary. Any one open, the whole thing fails, regardless of what the scorecard says.

    Koko: Here's the scenario. Procurement case. Every single competency at the highest level, total score well above the threshold. And one gate open — the write path has no named approver. Verdict: not ready.

    Chris: Then you name the approver, close the gate, resubmit. Same score. Now it's ready. The score didn't move at all.

    Koko: The gate did. And that's the whole point. Think of a building inspection. There's a pass mark, and there's a short list of things that fail the building on their own — no matter how beautiful the rest of the score is. A perfect inspection report does not reopen a fire exit.

    Chris: So the instinct to carry in is: check the gates first, before you even look at the score.

    Koko: Check the gates. Always. And now — the one failure mode I want to close this course on, because it is the most common thing that goes wrong in a real room.

    Chris: The version of this I keep seeing is teams that walk in and spend two minutes explaining what the model can do. The capabilities, the architecture, the accuracy numbers on the benchmark.

    Koko: And the room does not want any of that. The room wants to know what changed, why the work was redesigned before it was automated, why you chose no more autonomy than this, and what stops it when it is wrong. Defend the outcome. Defend the redesign. Defend the constraint. Not the technology.

    Chris: Technology is how you got there. It is not what you're defending.

    Koko: Right. And that's also the through-line for everything this lesson covered. The ladder, the gates, the contract, the hook, the evidence, the number — that stable core is most of any platform course you will ever take. Learn it once and the platform lens is the rest.

    Chris: I'd put it this way: workflows decide the path, agents decide part of it, tools do the work, policies bound it, and evidence is what lets anyone sign.

    Koko: That's the line. That's the one to keep. The scoring model, the prioritization gates, the workflow moves, the full sorting lab — all of that is waiting for you on the course page at KokoAI Academy, at koko knows dot A I. Go build something worth defending.