[KongchangAI]
· 2 min read· 1,335 words

When "Certified" Isn't "Safe": A Near-Miss Regression Sign-Off

When "Certified" Isn't "Safe": A Near-Miss Regression Sign-Off

A regression report that only annotates instead of blocking is just an ornament — four defects reveal the wrong ways to let things through.

Set against HivePlane v0.2.0 field testing, the article tells the story of the author signing off on an artifact whose regression report clearly marked `blocked=True` and almost shipping it to production. The core argument: pass-rate thresholds are necessary but far from sufficient — a gate must say "no" when the report is red, otherwise it's an annotation rather than a control. The article distills four "green light but wrong" pathways: #522 the regression report wasn't a hard precondition; #523 the default threshold made the `certified` state unreachable; #530 drift detection compared failure counts across corpus versions and falsely quarantined a healthy agent; #527 the regression baseline was wrong, compared against incomparable historical certifications. It closes with three principles: reports must block, certification must bind to identity, and survival gates must be reachable.

A Red Alert That Was Ignored

The v0.2.0 release process went like this: recertify, generate a regression report, promote. The regression report clearly stated blocked=True — a critical task had regressed. But promotion proceeded anyway, the certification claim was written, and the workload was pushed into production.

I signed off on a known-bad artifact and almost shipped it to production. This is the story of HivePlane v0.2.0 — the promotion gate I'd promised to add back in v0.1.0 ended up letting through a workload that its own regression report had flagged as unfit, based on the wrong evidence.

rss source: I Signed a Regression and Almost Shipped It

This raises a more fundamental question than any pass-rate threshold: is your gate actually stopping problems, or is it just annotating them?

Four Ways the Gate Let the Wrong Thing Through

Field testing of v0.2.0 exposed four independent defects, each representing a different "green light but wrong" pathway.

FindingWhat the gate didWhy it's wrong
#522 (critical)recertify_and_promote proceeded even when the regression report was blocked=TrueThe report was a footnote, not a precondition
#523 (high)The default min_production_runs_survived=50 made the certified state unreachableThe production gate deadlocked against its own threshold
#530The drift detector compared failure counts across corpus versionsA scale-up benchmark automatically quarantined a healthy agent
#527The regression report was diffed against prior certifications in any stateAn incomparable baseline masked a real regression

Pass-rate thresholds are necessary but far from sufficient. Each of these four defects represents a way to get a "green but wrong" result. The core lesson: a check that only annotates and doesn't block is a suggestion, not a control.

The Sign-Off on Top of a Regression

#522: When the Report Is Just Decoration

The one that really kept me up at night was #522. The flow was supposed to be: recertify → generate regression report → promote. The report said blocked=True, a critical task had regressed. Promotion went ahead anyway.

The regression report was generated, attached to the record, and then ignored. It was a comment, not a gate.

Here's a principle worth carving on the wall: if your promotion can succeed while the regression report is red, your regression report is an ornament.

The fix is straightforward: the regression report must be a hard precondition. recertify_and_promote simply refuses when the report is blocked:

if regression_report.blocked:
    raise PromotionRefusedError(
        workload,
        f"regression report is blocked: {regression_report.critical_failures}",
    )

The critical regression gets written directly into the refusal reason. Promotion can't complete until the regression is resolved or explicitly waived with attribution.

#523: The Unreachable State

#523 is a different kind of admission of failure. The default min_production_runs_survived=50 means a workload must survive 50 production runs before being marked certified. But in a field test that only runs once, against a local stack, that's never achievable.

The production gate deadlocked against its own threshold. A workload could pass every benchmark forever and still never reach certified.

An unreachable gate is a gate that doesn't exist. Operators will route around it, and a routed-around gate is just an expensive dashboard. A threshold has to be reachable in the environment where it's enforced, otherwise what you've built is a state cycle, not a ladder.

Reachability in a state machine is the most commonly overlooked formal property in release-gate design: a state has no runtime binding if there is no legal transition path from the initial state that can reach it. A state like certified is usually formed by the conjunction of several conditions, e.g., "pass all benchmarks" AND "production survival runs ≥ N". If any one of those conditions cannot be satisfied in the current deployment environment (one-off field tests, local stacks, short-lived tasks), the entire state degenerates into a dead state. There are three engineering countermeasures: derive thresholds from environment capability rather than hardcoding them, provide an explicit degraded state for unreachable cases (e.g., provisional), or refuse to start a self-contradictory gate at config-validation time.

#530: The Baseline That Wasn't There

#530 changed how I think about drift. The detector compared failure counts across corpus versions. If you grow a benchmark from 10 tasks to 20 — because the learning loop added a vetted case — a healthy agent that used to pass 10/10 now "fails" 10/20 under your algorithm.

Corpus growth looks like performance decay. A scale-up benchmark automatically quarantined a healthy agent.

Fix: drift is measured against the agent's own baseline on a comparable corpus. Compare the same tasks, not different counts. A corpus version change is a new baseline, not a drift signal.

The statistical premise of drift detection is that the two sets of observations being compared must come from comparable samples of the same distribution. When a benchmark corpus expands from 10 tasks to 20, the pass count (e.g., 10/10 → 10/20) mechanically declines — this is a change in the measurement instrument, not in the object being measured, and is known statistically as a benchmark break. The correct approach is to switch to ratios and compare on the same task subset, or to explicitly register a corpus version change as a new baseline and re-accumulate the reference distribution from that version onward. Any drift algorithm that directly compares raw counts across versions will produce a flood of false-positive quarantines on scale-up, eroding operators' trust in alerts.

#527: Compared Against the Wrong Baseline

#527 is the same lesson on the promotion side: the regression report was diffed against prior certifications in any state, including quarantined. So a regression against a known-bad baseline looked like no regression at all.

The baseline must be the last certified record, otherwise you're comparing against a version that was never safe.

A Regression Report is the artifact in the certification pipeline that answers "has this artifact's behavior degraded relative to the last known-good state?" It typically contains a pass/fail task list, the failures on critical tasks, and a summary boolean flag (blocked in this article). The key distinction lies in its consumption mode: if the downstream promotion logic merely writes it into the audit record without reading the blocked field to decide whether to proceed, the report is semantically equivalent to a log entry. The essence of regression testing is "differencing against a baseline," so its correctness depends entirely on two things: whether the baseline is chosen correctly (see #527), and whether the task set is comparable between the two comparisons (see #530).

What Was Learned

Signing off on a known-bad artifact is worse than not signing at all — it carries the authority of certification without the safety. Three principles are worth remembering for anyone building a release gate:

  • Regression reports must block, not annotate. A report that can be ignored is not a control.
  • Identity binds certification, not a checklist. Change the hash, lose the certification. Certification and identity are inseparable.
  • Survival gates must be reachable, otherwise what you've built is a state cycle, not a ladder.

The v0.2.0 field test demonstrated the promotion gate blocking a regression via a replayable diff (scenario S3), drift auto-quarantine and recovery (S4/S5), and the regression diff API. Full evidence is in the field test report, and the certification and promotion design is in the certification v2 design doc.

What It Means for You

If you're building any kind of AI agent certification or release pipeline, these four defects offer directly reusable patterns. The point of a gate isn't to generate a report — it's to say "no" when the report is red.

When was the last time your promotion gate refused something a regression report flagged? If you can't remember, your report is a comment — not a gate.


References:

#HivePlane#regression report#release gate#AI agent certification#drift detection#promotion gate
Share:

Related articles