The Drift Log · Certifying that code does something
Using PROVISIONAL Verdicts as a Canary Gate for Feature Rollouts
26 October 2026 · 3 min read · 730 words · established

Connect test-harness verification verdicts directly to feature flag limits to safely cap canary blast radiuses for uncertified code.
The False Binary in the Deploy Pipeline
Most release pipelines collapse code quality into a single binary: green or red. If the compiler succeeds and the test suite passes, the pipeline marks the artifact deployable and opens the gates.
Every senior engineer knows how weak that guarantee is. A green test suite proves that the code satisfied the assertions someone remembered to write. It does not prove that the component behaves correctly under load, handles edge-case permutations of shared state, or conforms to upstream interface contracts.
When you only have two states—broken or ready—teams respond in one of two suboptimal ways:
- They block deployment for weeks while attempting to write exhaustive end-to-end tests for every edge case.
- They ship directly to general availability on minimal unit tests, treating production users as the unmonitored test runner.
Between "it compiles" and "it is fully verified", there is a gradient of confidence. Naming that gradient explicitly lets you design safer rollouts.
The Role of the PROVISIONAL Verdict
In a structured certification pipeline, an execution harness evaluates an artifact and assigns one of four outcomes: CERTIFIED, PROVISIONAL, INCONCLUSIVE, or FAILED. The details of this taxonomy are explored in our pillar post on the four verdicts between green tests and correct code.
A PROVISIONAL verdict is not a failed test, nor is it a stamp of full correctness. It means the artifact builds repeatably, the environment is isolated, and baseline execution pathways run without unhandled runtime exceptions—but the harness has not yet asserted full contract correctness across every boundary condition.
Instead of stalling the release or pretending the code is fully verified, you can feed this verdict directly into your feature flag infrastructure.
// feature_gate.ts
import { ArtifactManifest } from "@shpbl/sdk";
export function getExposureLimit(manifest: ArtifactManifest): number {
switch (manifest.verdict) {
case "CERTIFIED":
return 1.0; // 100% traffic
case "PROVISIONAL":
return 0.05; // 5% canary rollout with high-frequency telemetry
case "INCONCLUSIVE":
case "FAILED":
default:
return 0.0; // Blocked from runtime exposure
}
}
Treating PROVISIONAL as a strict canary gate shifts the posture:
- Blast radius is bounded by policy. Code without full certification cannot be toggled to 100% of users by an accidental flag update.
- Telemetry has a job. The 5% rollout exists specifically to capture real-world operational profiles that can feed the next iteration of harness fixtures.
- Velocity remains intact. Teams ship working, repeatable components to staging and early canary rings without waiting for months of test-harness authoring.
Harness Gates in Practice
Automating this boundary requires embedding verdict metadata into your build artifacts rather than leaving it in transient CI logs.
When your CI/CD job runs the test harness against an artifact, the resulting verdict should be written into the release manifest. The feature flag service reads this manifest during evaluation:
- Build and test. The harness runs in an isolated runner. If basic contracts hold but edge-case permutations remain unverified, the harness records
PROVISIONAL. - Metadata attachment. The manifest is signed alongside the artifact archive.
- Flag evaluation. The feature flag provider queries the manifest. If the verdict is
PROVISIONAL, the platform enforces an immutable ceiling (e.g., maximum 5% routing, internal accounts only, or specific tenant rings). - Promotion. Once harness coverage expands and the artifact achieves a
CERTIFIEDverdict, the ceiling is removed.
This posture acknowledges an uncomfortable truth: writing complete, exhaustive contracts for every line of business logic on day one is often impractical. By gating canary exposure on a PROVISIONAL verdict, you replace unearned optimism with an explicit, observable risk boundary.
How SHPBL Handles Verdicts
At SHPBL, every piece of reusable software in the catalog passes through an automated certification harness before release. We distinguish strictly between our engineered catalog, the unpromoted rows in our discovery-engine vault, and our standalone Crown Jewels.
No AI model runs inside our software, and components do not rely on runtime model outputs; every artifact is model-independent and owned outright. The harness executes each component against rigid contracts, outputting distinct verdicts (CERTIFIED, PROVISIONAL, INCONCLUSIVE, or FAILED). You can evaluate your own codebase against these verification rungs using our free repository evaluation.
What to Do on Monday
- Audit your CI output. Identify where your pipeline converts a partial pass into an immediate production release candidate.
- Define an intermediate status. Introduce an explicit
PROVISIONALstate in your deployment metadata for builds that pass standard unit suites but lack system-level contract verification. - Enforce flag caps in code. Add a rule to your feature flagging layer that caps any
PROVISIONALartifact at a low canary threshold (1% to 5%) until full verification is logged.
Keep reading
Next in the log
- Dissecting the Boundary Between Passing Tests and True Proof
A green test suite proves your assertions ran, not that your invariants hold. Here is how to distinguish provisional checks from true verification.
- Using PROVISIONAL Harness Verdicts as a Canary Gate
Bind feature flag canary thresholds directly to automated harness verdicts instead of arbitrary percentage guesses.
- Use Harness Verdicts as Feature‑Flag Gates to Ensure Release Safety
Use the certification harness’s CERTIFIED verdict as a runtime gate to safely enable feature flags, keeping PROVISIONAL code hidden.
The Strategic Master Library · written and reviewed under the house's own epistemic rules: nothing claimed that we cannot show.