Skip to content

feat(orb): golden gate corpus — production failure archetypes pinned as replayable verdicts - #8844

Merged
JSONbored merged 1 commit into
mainfrom
feat/gate-golden-corpus
Jul 26, 2026
Merged

feat(orb): golden gate corpus — production failure archetypes pinned as replayable verdicts#8844
JSONbored merged 1 commit into
mainfrom
feat/gate-golden-corpus

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

What

A versioned golden corpus of decision-input snapshots, each drawn from a real production failure archetype and replayed through the pure evaluateGateCheck with its conclusion and blocker set pinned. Closes #8832 (epic #8828, Phase 2 — the regression gate).

Why

The meta-point from the epic: ORB's decision policy shipped without an evaluation gate, in a repo that enforces 99% patch coverage on everything else. Every accuracy incident this week (inconclusive-AI closes, mode-flip hardening, verdict clobbering) would have been caught by exactly this suite had it existed. Now: a production failure becomes a labeled corpus entry in the same PR that fixes it — the online-failure → golden-set loop the research identified as converged practice.

What's pinned (15 entries)

Two of my own draft expectations were corrected against reality during construction (guardrail holds are policy-driven, not finding-driven; the slop blocker code is slop_risk_above_threshold) — which is precisely the drift-detection this corpus exists to perform, working on its author first.

Deliberate scope notes

Verification

TSC clean; 17 tests green (schema well-formedness, per-entry replay, the knownBad invariant sweep); branding drift clean. Pure test-side change — no src/** modified, no migration.

…as replayable verdicts

ORB's decision policy shipped without an evaluation gate, in a repo
that enforces 99% patch coverage on everything else. This closes that
asymmetry: a versioned corpus of decision-input snapshots drawn from
the real failure archetypes (the inconclusive-AI incident class, the
reversal classes, mode-flip hardening, the not-synced neutral
contract), each replayed through the PURE evaluateGateCheck and pinned
to its expected conclusion + blocker set.

Closes #8832. Part of epic #8828 (Phase 2 -- regression gate).

- knownBad entries carry a standing invariant: they may NEVER evaluate
  to success, under their own policy OR the permissive default -- the
  exact regression class that motivated the epic
- append-only workflow: a production failure becomes a labeled corpus
  entry in the same PR that fixes it
- runs in validate-tests on every PR (the issue's fast tier -- the
  corpus is pure and millisecond-cheap), so a dedicated path-filtered
  CI job would add machinery without adding protection; the full
  AI-inclusive tier lands with #8834/#8838's model-input capture, as
  noted on the issue
- two corpus expectations were corrected against reality during
  construction (guardrail holds are policy-driven, the slop blocker
  code is slop_risk_above_threshold) -- exactly the drift-finding this
  corpus exists to do
@JSONbored JSONbored self-assigned this Jul 26, 2026
@JSONbored
JSONbored merged commit c9ff28e into main Jul 26, 2026
3 of 4 checks passed
@JSONbored
JSONbored deleted the feat/gate-golden-corpus branch July 26, 2026 12:13
@loopover-orb loopover-orb Bot added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 26, 2026
@codecov

codecov Bot commented Jul 26, 2026

Copy link
Copy Markdown

❌ 2 Tests Failed:

Tests completed Failed Passed Skipped
21383 2 21381 21
View the top 2 failed test(s) by shortest run time
test/unit/config-templates.test.ts > config/examples review templates (#1682) > loopover.full.yml body matches .loopover.yml.example from WHERE IT LIVES onward
Stack Traces | 0.0281s run time
AssertionError: expected '# WHERE IT LIVES (first match wins):\…' to be '# WHERE IT LIVES (first match wins):\…' // Object.is equality

- Expected
+ Received

@@ -91,13 +91,10 @@
  #   off      — the dimension is not evaluated.
  #   advisory — the finding is surfaced (comment/context) but never blocks.
  #   block    — the finding can become a hard `LoopOver Gate` blocker
  #              (always confirmed-contributor-gated).
  gate:
-   # Percent (0-20) of would-auto-close PRs randomly HELD for human adjudication instead of closing --
-   # the randomized holdout behind the unbiased close-precision estimate (#8831). 0/absent disables.
-   # closeAuditHoldoutPct: 5
    # Legacy check-run publish switch (#5355) — despite the name, this does NOT turn the deterministic
    # gate itself on or off. Gate evaluation, comments, labels, audit records, spend, and autonomous
    # merge/close all run identically whether this is true, false, or unset; the per-dimension modes
    # below are what actually configure gate evaluation. `enabled` is only a boolean shorthand for
    # `checkMode` below: true maps to `required`, false maps to `disabled`, and it cannot express

 ❯ test/unit/config-templates.test.ts:39:57
test/unit/selfhost-metrics.test.ts > DEFAULT_METRIC_META completeness (drift guard, 2026-07 fix) > every literal metric name emitted anywhere in src/ has a registered DEFAULT_METRIC_META entry
Stack Traces | 0.181s run time
AssertionError: expected [ Array(1) ] to deeply equal []

- Expected
+ Received

- []
+ [
+   "loopover_close_audit_holdouts_total",
+ ]

 ❯ test/unit/selfhost-metrics.test.ts:385:21

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

eval: versioned golden replay corpus gating every gate/prompt/model/config change

1 participant