learn-agent-launch-with-phoebe / Leader session 6 of 6
Learn Agent Launch with Phoebe · Leader track · Session 6 of 6

After GA: the launch number is a snapshot, not a warranty

The scorecard measured one build, on one week's traffic, against one adversarial slice. Every part of that sentence expires. This final leader session covers what decays and why, the three evaluation clocks that run after launch, rollback as a rehearsed procedure rather than a paragraph in a runbook, and the loop that turns every production incident into a permanent test.

🟠 Leader track Heads of product · eng leaders · risk & compliance 45 min
0-3 · Welcome 3-25 · Drift, the three clocks, rollback, the loop 25-40 · Two decision exercises + handoff 40-45 · Q&A
Part 0

The gate was true on Tuesday

Session a5 got you to general availability with six green lights and a signature. This session starts one week later, when nothing has shipped, nobody has changed anything, and the complaints have started. That is not a hypothetical failure mode. It is the normal life cycle of a deployed bot, and it is the part almost no launch process has a plan for.

Live - presented in session Self-study - read after class Official sources covered
★ What you walk out with today The four things that decay a passing gate without a single code change, the split between online, scheduled and red-team evaluation and which one gates what, a set of rollback triggers written in advance and tied to specific gates, an ops-maturity rubric that scores you on your weakest section rather than your best, and the incident-to-eval loop that makes your test suite grow by itself.
No tools today Judgement session, same as the rest of the leader track. Both exercises are documents you write in the room, and both are short enough to finish. The builder track wires all of it up: b10 is the implementation of this page.
Part 1 · decay

Four things change under a frozen deployment 6 min live

"We have not shipped anything" is not an answer to "why did quality drop". Every one of the four causes below happens without you touching the system, and three of them are entirely outside your repository.

1 · The model provider updates You did not change anything and the number moved. A silent model update, a changed default, a deprecated snapshot - all of it lands on your gate. 2 · The corpus your own docs change The knowledge base your bot cites is edited by people who have never heard of your eval. Yesterday's grounded answer cites a paragraph that no longer exists. 3 · The users question mix moves Launch changes who asks. Marketing sends a new segment, a feature ships, and the category mix your golden set was sampled to match is no longer the mix. 4 · The world new attacks + rules A new injection technique circulates. A regulation starts applying. Your rails were measured against last quarter's adversarial slice, now a historical document. The launch number was a measurement of one week Everything the gate measured was true on the day it was measured. None of the four rows above needs a code change to happen, which is why a frozen deployment still drifts, and why "we have not shipped anything" is not an answer to "why did quality drop". A gate is a snapshot. Online evaluation is the only thing that turns it into a claim about today, and it is the piece most teams schedule for "after launch" and then never schedule again.
🔍 Click to zoom - four decay sources, none of which requires you to change a line of code
LiveWhy the third row is the one that catches good teams3 min▶

Rows 1 and 2 are visible if you look. A provider changes a model and there is a changelog; somebody edits the knowledge base and there is a commit. Row 3 has no artefact at all. Nobody sends an email saying "the question mix has moved eleven points toward billing enquiries".

And row 3 breaks your evidence rather than your bot. The golden set was sampled to match a traffic distribution, and the whole defensibility of the launch number rested on that match. When the distribution moves, the bot may be performing identically on every category and your headline number is still wrong, because it is a weighted average over the wrong weights. That is the quiet version of this failure and it is invisible from inside the eval.

The leadership implication is small and specific: put a recurring item on somebody's calendar to re-check the category mix against live traffic. Not to re-run the eval, just to check whether the sampling assumption still holds. It takes twenty minutes and it is the highest-yield recurring task on this page.

Part 2 · the three clocks

Offline evaluation gates. Online evaluation monitors. 7 min live

After GA you are running three different evaluation activities on three different clocks, and the single most common mistake is treating them as one thing that somebody keeps forgetting to do. They answer different questions, run on different data and fail into different actions.

Three clocks Online eval continuous, sampled live Scheduled eval fixed set, on a cadence Scheduled red team adversarial, on a calendar What it answers Is production still like the lab? Did this change break what already worked? Does a new attack get through the rails? What it runs on A sample of real user traffic, continuously A fixed golden set that does not move Generated adversarial prompts, fresh each run Cadence Always on, on a sample of live traffic Per release, plus a weekly or monthly run Per release and on a standing schedule What it gates Nothing. It alarms and triggers rollback The deploy. This is the gating clock The safety gate before each ramp step What it catches Drift, novel inputs, real user behaviour Regressions against known-good behaviour New jailbreaks a frozen slice cannot find Offline gates, online monitors, and they are not interchangeable Azure AI Foundry's observability guidance splits exactly this way: offline evaluation on fixed datasets to gate a release, continuous evaluation on sampled production traffic to monitor a running one, and scheduled red teaming alongside both. A team running only the first has a launch process, not operations.
🔍 Click to zoom - three clocks, three questions, and only one of them blocks a deploy
The row that surprises people Online evaluation gates nothing. It cannot: there is no ground truth on live traffic and no held-out set, so it produces a signal rather than a verdict. Its job is to alarm and to fire a rollback trigger. The moment you try to make it a gate, you end up blocking deploys on a noisy judged metric with no reference, and within a month somebody turns it off.
Part 3 · rollback

Rollback is a procedure you rehearse, not a paragraph you write 6 min live

Every gate you set at launch needs a matching trigger that says what would make you undo the launch. Written in advance, a trigger is a decision. Invented during an incident, it is an argument, and the argument always happens at the worst possible moment.

1 · Quality Online judge pass rate on sampled traffic falls 3 points below the launch figure Halt the ramp. Investigate before the next step. 2 · Safety Any rail breach at all on production traffic, or one canary case fails Immediate rollback. This one has no discussion step. 3 · Performance p95 latency exceeds the SLO for a sustained 15 minutes, not one spike Roll back to the previous prompt or model version. 4 · Cost Cost per completed task exceeds budget by 25% over a rolling day Halt the ramp. Cost is a gate, so it is a trigger. 5 · UX + oversight Escalation rate collapses, or approvers start approving faster than reading Halt. A rubber stamp is not human oversight. 6 · Ops readiness Monitoring stops reporting, or the rollback path is found broken Roll back. You cannot operate what you cannot see. Roll back the version, not just the code The thing that changed behaviour was probably a prompt or a model snapshot, and neither of those is in your git revert. Version them, and make the rollback path revert them by name. Rehearsed, with a stopwatch Google's ML Test Score lists safe, fast rollback as a production-readiness test and adds that operators should practice doing it. A rollback nobody has ever run is a plan, not a procedure. Every trigger above was written before launch and tied to a named gate. A trigger invented during an incident is just an argument, and the argument always happens at the worst possible time.
🔍 Click to zoom - six gates, six triggers, and the two things that make a rollback real
Self-studyWhy "roll back the code" is usually the wrong instruction3 min read▶

Trace a typical regression backwards. Somebody edited a system prompt to fix a tone complaint. Somebody else moved the deployment onto a newer model snapshot because the old one was being deprecated. Retrieval started returning a different top passage because the corpus was reindexed. Not one of those three is a code change, and a git revert undoes none of them.

So the rollback path has to name the things that actually determine behaviour: the prompt version, the model or snapshot identifier, the retrieval index version, and the tool or function schema. If those four are not versioned artefacts with names, you do not have a rollback - you have a search through recent changes conducted while the incident is ongoing.

The leadership test is a single question to the on-call team: if I asked you to put this bot back to how it behaved on Monday, what would you type? If the answer takes longer than a sentence, that is your ops-readiness gate telling you something.

Part 4 · the loop

Incidents become tests, and the suite grows itself 6 min live

The compounding asset of a deployed bot is not the model and it is not the prompt. It is the regression suite, and it only compounds if every incident is converted into a permanent case before the incident is closed.

StageWhat happensThe discipline that makes it stick
1 · DetectOnline eval, a rollback trigger, or a human reports a bad outputThe trigger already exists and is tied to a gate, so detection is not a judgement call
2 · ContainRoll back the prompt or model version, or halt the rampContain first, diagnose second. The diagnosis is better with the pressure off anyway
3 · ConvertThe failing input becomes a frozen regression case with the expected behaviour written observablyThis is the step that gets skipped. An incident that produced no test case will happen again, and the second time nobody will remember the first
4 · Re-gateThe new case joins the blocking suite, and the fix has to pass it before it shipsThe suite is only worth anything if it blocks. A regression suite that reports and does not block is a dashboard
5 · Re-expandRamp back up through the rungs you came downNot straight back to 100%. You are re-earning the rungs, on a build nobody has canaried yet
Real world

This loop is OpenAI's stated deployment approach, written as a product process. Release gradually rather than all at once, pair every release with monitoring and the standing ability to pause or roll back, study the failures that real usage produces, convert those failures into evaluations and safeguards, then expand access again. The important word in that sequence is convert. Every organisation studies its failures; the ones whose bots get durably better are the ones where studying a failure produces an artefact that outlives the person who studied it.

The refresh cadence

The suite decays too. A golden set sampled in March is a March artefact, and by June it is answering questions your users have stopped asking. A workable rhythm, drawn from practitioner guidance rather than from any standard:

Trigger or cadenceWhat you doWhy this interval
Every significant changeError analysis on a fresh batch of traces, not just a re-run of the old suiteA change moves the failure distribution. Re-running the old set tells you about the old failures
Every 2 to 4 weeksA review cycle over 100 or more fresh production tracesThe same 100-trace floor that error analysis needs anywhere. Fewer than that and you are reading anecdotes
Weekly10 to 20 outlier traces: the slowest, the most expensive, the lowest-scored, the escalatedCheap enough to actually happen, and outliers surface new failure modes far faster than random sampling
Stop conditionStop adding failure categories when roughly 20 consecutive traces produce nothing newSaturation. Past that point you are labelling for the sake of labelling, and the marginal trace teaches you nothing
The rubric that scores you on your weakest section Google's ML Test Score is the closest thing to a published ops-maturity rubric for this: 28 tests across 4 sections, and the final score is the minimum across sections, not the average. A team with immaculate data tests and no monitoring scores as a team with no monitoring. A result in the (3,5] band is described as appropriate for mission-critical systems. Two numbers from Google's own survey are worth quoting in your next review: no single test was implemented by more than 80% of teams, and Monitor 3, training and serving skew, is one of the least frequently implemented tests of all. If your team scores badly here, you are in ordinary company - but the scoring rule means the honest number is your worst section, and that is the one to fund.
Discussion 1 of 2

Write six rollback triggers, in the room ★ 8 min · everyone writes

One trigger per gate, each with a number and a time window in it. A trigger without a number is a feeling. Take the six gates from a5 and fill them in for a bot you actually run.

For each gate, complete the sentence: "we roll back if [measured thing] crosses [number] for [duration]." The duration matters as much as the number - "p95 latency over 2 seconds" fires on every traffic spike, while "p95 latency over 2 seconds for fifteen minutes" fires on a real regression.

Mark which triggers halt the ramp and which roll back immediately. Safety is the one that should have no discussion step in it. If every trigger on your list ends in "investigate", you have written an alerting policy, not a rollback policy.

Name who is allowed to fire each trigger at 3am without asking anyone. If that person is you, and you are not on call, the trigger will not fire. Move it to somebody who is awake.

Now the uncomfortable one: ask what you would actually type to roll back. Prompt version, model snapshot, retrieval index, tool schema. If any of those four is not a named artefact you can revert to, write that down as the top item of your ops backlog.

Schedule the rehearsal. An actual timed revert in staging, with somebody holding a stopwatch, on a date in the next fortnight. Put the elapsed time into your launch documentation. That number is the single most credible thing in a readiness review.

Discussion 2 of 2

Score your operations honestly ★ 7 min · self-assessment

Take one deployed bot and answer these five questions with yes, partly, or no. Then apply the ML Test Score rule: your result is your worst answer, not your average one.

Is anything evaluating this bot on production traffic right now? Not "is it logged" and not "could we". Is there a running job that scores a sample of live outputs and would alarm if the rate moved.

When did the golden set last change? If the answer is "at launch", your evidence is now a historical document. Check when the category mix was last compared against live traffic.

Has anybody rehearsed the rollback? Not read the runbook. Executed it, in staging, timed. If not, gate 6 was green on trust rather than on evidence.

How many of your last five incidents produced a permanent regression case? This is the highest-signal question on the list. Anything below five means your suite is not compounding, and the same incident is queued up to happen again.

Would you know if the model underneath you changed? A pinned snapshot with a deprecation date in the calendar is a yes. "We use the latest" is a no, and it is row 1 of Part 1 waiting to happen.

Take the minimum, not the average Most teams answer yes to two or three of these and feel reasonably good. The scoring rule that Google's rubric uses on purpose, and that the six gates use on purpose, is the same one here: a strong section never compensates for a weak one, because production failures arrive through the weak one. Whichever of the five you answered worst is the honest description of your operations, and it is the only one worth funding this quarter.
Closing

Where the leader track ends, and what comes next

Six sessions ago the question was why bots fail after launching well. The answer turned out to be almost entirely about evidence rather than about models: what a number proves, who set the bar and when, which six things had to be true at once, and what happens on the Tuesday after.

You now have the decisions. You do not yet have the instruments, and that is deliberate - the leader track was built so you can chair a gate review, grill an eval report and refuse a launch without ever opening a terminal. The builder track is the other half: the ten sessions that construct the golden set, the metrics, the calibrated judge, the three archetype gates, the scorecard and the CI wiring that make everything on these six pages produce a number rather than an opinion.

★ The one thing to take away from the leader track Every hard question about shipping an agent reduces to the same three: what does the number prove, who wrote the bar down and when, and what would make us undo this. A team that can answer all three has a launch process. A team that can answer none of them has a demo and a date.
Going into the builder track Start at b1, Eval anatomy, even if you never intend to build one yourself. It takes the phrase "it works" apart into the four things it has to contain, and it is the session that makes the rest of the leader track enforceable rather than merely agreed.
Homework

Try it yourself - this week ◐ 45-60 min total

Source material

Official sources covered

Every figure and framework on this page traces to a primary source catalogued in this course's source map, verified 13 August 2026. This page covers:

✓Google ML Test Score: 28 tests, 4 sections, final score is the minimum across sections, (3,5] appropriate for mission-critical systemsPart 4 · used as the ops-maturity rubric behind Discussion 2
✓ML Test Score Infra 7: rollback is an emergency procedure and operators should practice doing itPart 3 · the rehearsal panel and the homework item
✓Google's own survey: no single test implemented by more than 80% of teams; Monitor 3 training/serving skew among the least frequently implementedPart 4 · quoted so teams calibrate their own score honestly
✓Azure AI Foundry observability: offline evaluation for gating, continuous evaluation on sampled production traffic for monitoring, scheduled red teaming alongsidePart 2 · the three-clock split is taken directly from this
✓OpenAI's iterative deployment approach: release gradually, monitor, keep the ability to pause or roll back, convert real failures into evals and safeguards, then re-expandPart 4 · the incident-to-eval loop
◐Error-analysis cadence: 100+ fresh traces per review cycle, weekly outlier sampling, and stopping at category saturationPart 4 · practitioner canon rather than a standard; the 100-trace floor is the sourced figure, the intervals are working guidance
◐Drift mechanics, tracing and production monitoring instrumentationNamed here as causes · Learn Evals goes deep, and b10 wires the pipeline
◐Regression gates in CI, canary golden sets at 100%, and online eval implementationNot on this page by design · b10 builds all of it
Check yourself

Three questions before you go 🎯 ◐ 90 seconds

1 · Your team scores well on the ML Test Score's data and model sections, and badly on monitoring. How does the rubric score you?

The minimum rule is deliberate, and it is the same rule the six launch gates use. Production failures arrive through your weakest section, so an average would describe a system that does not exist. It is also why the Google survey figures are worth knowing before you score yourself: no single test in that rubric was implemented by more than 80% of teams, and training and serving skew is among the least implemented of all. A low score is normal. Averaging your way out of it is not.

2 · Your bot passed its gate at 92% three months ago. Nothing has been deployed since. Complaints are climbing. What is the most likely explanation?

A frozen deployment drifts because three of the four inputs to its behaviour live outside your repository. The subtle one is the third: if the user question mix has moved, your bot can be performing identically on every category while your headline number is wrong, because it was a weighted average over a distribution that no longer exists. That is why the launch figure is a snapshot and why continuous evaluation on sampled production traffic is the only thing that turns it back into a claim about today.

3 · Your rollback plan is "revert the last commit and redeploy". What is wrong with it?

Trace a regression backwards and it is usually a prompt edit, a model snapshot change, or a reindexed corpus - none of which a git revert touches. Naming those artefacts and versioning them is half the fix. The other half is rehearsal: the ML Test Score rubric lists safe and fast rollback as a production-readiness test and explicitly says operators should practice doing it. A rollback that has never been executed is a plan. The useful leadership question is simply "what would you type", and if the answer takes longer than a sentence, gate 6 was never really green.

Leader session 6 cheat sheet · pin this

The gate is a snapshotIt was true for one build, one week of traffic, one adversarial slice. All three expire, and none of the expiries needs a code change.
Four decay sourcesThe model updates, the corpus is edited, the question mix moves, the world adds new attacks and rules. Three of the four are outside your repo.
Offline gates, online monitorsFixed sets block deploys. Sampled production traffic alarms and fires rollback triggers. Red teaming runs on its own calendar. Never merge them.
Online eval gates nothingNo ground truth on live traffic means a signal, not a verdict. Try to make it a gate and somebody turns it off within a month.
One trigger per gate, with a number"[Measured thing] crosses [number] for [duration]." Written in advance it is a decision. Invented mid-incident it is an argument.
Roll back the version, not the codePrompt, model snapshot, retrieval index, tool schema. If they are not named artefacts, you have a search, not a rollback.
Rehearse it with a stopwatchML Test Score calls rollback an emergency procedure operators should practice. The elapsed time is the most credible line in a readiness review.
Every incident becomes a caseDetect, contain, convert, re-gate, re-expand. Step three is the one that gets skipped, and it is the only one that compounds.