builtbykev 94f7c3c3ef The probability never leaked across stats; the attribution did
Post-fix cohort df4ec562 closed the primary question: eleven non-hits stats,
1,910 rows, ZERO certified and ZERO numeric served probabilities. The cross-stat
repair holds.

But every one of those 1,910 rows still recorded
`artifact_id: mlb-hits-isotonic@2026-09-03` beside state UNSUPPORTED. A `doubles`
row named the hits artifact. Nothing was calibrated by it, so no number leaked —
but a later query for "rows this artifact produced" would have returned 2,186
instead of 133, and that is the shape of footgun this programme keeps finding.

The contract check runs BEFORE any artifact is relevant: with no certified
contract for the sport/stat, no artifact applies, and naming one asserts a
relationship that does not exist. UNSUPPORTED now carries null artifact,
artifact_id, estimator_type, estimator_version, certification_version and
procedure_version.

Attribution is KEPT where the artifact is genuinely the thing that declined —
UNCERTIFIED (out of support) and VERSION_MISMATCH both still name it. A test
holds both directions so this does not over-correct into erasing real provenance.

One existing test called resolve() without naming a stat and relied on the
service substituting one. That substitution was the original defect, so the test
now names its stat, as production does.

Artifact unchanged. Live OFF. Suite 405/405, 5,662 passed. Teeth 35/35 + 10/10 + 23/23.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CQJeAG8vcDoL5zkiaJyVb8
2026-09-03 18:33:31 -04:00
S
Description
No description provided
35 MiB
Languages
JavaScript 68.3%
TypeScript 14.4%
HTML 11.5%
Python 4.6%
CSS 0.6%
Other 0.5%