docs: free proof surface recorded (/record, hollow-preserving, CLV honest-absent)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QJs13VsyiSKYQP6rj3NNmc
This commit is contained in:
@@ -764,3 +764,21 @@ gated rows because a result is a fact, not a judgment.
|
|||||||
a leak; `max-age=30` on this endpoint means post-deploy checks must bust the cache.
|
a leak; `max-age=30` on this endpoint means post-deploy checks must bust the cache.
|
||||||
|
|
||||||
319 suites / 3,970 tests green, web build exit 0.
|
319 suites / 3,970 tests green, web build exit 0.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# FREE PROOF SURFACE — `/record` (shipped 2026-07-31)
|
||||||
|
|
||||||
|
Tier-record-forward, presentation-only (`src/` untouched). Reads `/api/accuracy` + `/api/ledger/model`
|
||||||
|
and prints them as-is: **B 60% n512, C 57% n413 with C honestly below B; A/D/F hollow with real
|
||||||
|
samples**. Sport slicing is client-side (the endpoints ignore `?sport=`).
|
||||||
|
|
||||||
|
**The rule that matters:** a withheld percentage stays null — A is 1/2 and a test asserts we do **not**
|
||||||
|
derive 50%. **CLV renders an honest absence**: `beat_close_pct` is null behind the capture-reliability
|
||||||
|
guard, so the panel says NOT PUBLISHED YET and explains why, and tests forbid the computable-but-wrong
|
||||||
|
34/937 = 3.6% fallback. Calibration and accuracy-over-time are **named as held**, not faked — no honest
|
||||||
|
source exists yet.
|
||||||
|
|
||||||
|
Cache-busted fingerprint: page served, CLV honest-absent, guard named, held pieces named, **no "3.6"**,
|
||||||
|
**no hard-coded percentage in the markup**. The hollow-explanation line is client-conditional → Chrome
|
||||||
|
audit. 320 suites / 3,986 tests green, web build exit 0.
|
||||||
|
|||||||
@@ -1072,6 +1072,39 @@
|
|||||||
> silent-false harness bug, and the same lesson: a verification path can lie in either direction.
|
> silent-false harness bug, and the same lesson: a verification path can lie in either direction.
|
||||||
> **FLOOR: 319 suites / 3,970 tests green, web build exit 0.**
|
> **FLOOR: 319 suites / 3,970 tests green, web build exit 0.**
|
||||||
|
|
||||||
|
> ## 📊 FREE PROOF SURFACE SHIPPED 2026-07-31 — `/record`, tier-record-forward, honest CLV panel
|
||||||
|
> **Presentation over existing endpoints** — `src/` untouched (diff empty): no grade, model or ledger
|
||||||
|
> change. Pricing/migration = Builds 2/3.
|
||||||
|
> **TIER-RECORD-FORWARD.** `/record` reads the canonical public aggregates (`/api/accuracy` +
|
||||||
|
> `/api/ledger/model`) and prints them **as-is**: **B 60% n512 · C 57% n413 — C ships honestly BELOW
|
||||||
|
> B** · **A (n2), D (n5), F (n5) render HOLLOW with their real sample instead of a rate**. Sport
|
||||||
|
> slicing is **client-side** because the endpoints ignore `?sport=` (verified: mlb 526 @62%, wnba 411
|
||||||
|
> @54% from the `sports` map).
|
||||||
|
> **🔴 THE LOAD-BEARING RULE, test-locked:** where the source withholds a percentage it **stays null**.
|
||||||
|
> **A is 1/2, so 50% is derivable — a test asserts we do NOT derive it**, because the API withheld it
|
||||||
|
> on purpose (n < 20).
|
||||||
|
> **CLV IS AN HONEST ABSENCE, NOT A NUMBER.** `beat_close_pct` is null because
|
||||||
|
> `clvCaptureReliable()` hasn't passed. The panel reads **"NOT PUBLISHED YET"** and explains that any
|
||||||
|
> percentage printed today **"would be measuring our collection gaps as much as our edge"**; it
|
||||||
|
> surfaces the accruing sample (937) but **no rate**. **Tests assert the panel never falls back to
|
||||||
|
> `clv_beat/clv_sample` (34/937 = 3.6%) and that the serialized panel contains no "3.6"** — that
|
||||||
|
> number is computable and would be WRONG, which is the exact fabrication this surface exists to
|
||||||
|
> refuse. Built to receive a real number later without a redesign.
|
||||||
|
> **HELD AND NAMED ON THE PAGE rather than faked:** calibration + accuracy-over-time are absent
|
||||||
|
> because there is **no honest source** (no claimed-vs-actual endpoint; `window_days` fixed at 30 with
|
||||||
|
> no series) — and the page says so, **and says it is "not because they are unflattering."**
|
||||||
|
> **A page-level test asserts NO hard-coded percentage exists in the markup** (so no figure can drift
|
||||||
|
> from the aggregate) **and that the page never touches `/api/snapshot` or itemized rows** — the
|
||||||
|
> Build-1 gate holds, exploit stays dead.
|
||||||
|
> **✅ FINGERPRINT — CACHE-BUSTED** (deploy boundary captured 404→200): page served ✓ · CLV
|
||||||
|
> honest-absent ✓ · names the guard ✓ · held pieces named ✓ · **no "3.6" anywhere ✓** · **no
|
||||||
|
> hard-coded pct in the HTML ✓**. Canonical data the page renders, verified cache-busted: **A HOLLOW
|
||||||
|
> n2 · B 60% n512 · C 57% n413 · D HOLLOW n5 · F HOLLOW n5**; sports mlb 62 / wnba 54.
|
||||||
|
> **⚠️ ONE ITEM NOT SERVER-VERIFIABLE:** the hollow-explanation line is **client-conditional**
|
||||||
|
> (`loaded && rows.some(hollow)`), so it is absent from the SSR HTML by design and could not be
|
||||||
|
> confirmed by curl → **Chrome audit** (along with the rendered bars and the sport tabs).
|
||||||
|
> **FLOOR: 320 suites / 3,986 tests green (16 new), web build exit 0.**
|
||||||
|
|
||||||
- **Redirect EXISTS + WIRED:** `closingCapture.buildCaptureRows`→`closing_captures` (append-only,
|
- **Redirect EXISTS + WIRED:** `closingCapture.buildCaptureRows`→`closing_captures` (append-only,
|
||||||
provenance: captured_at/book/line_type/both-prices/missed_reason) via `intradayRefreshService:221`
|
provenance: captured_at/book/line_type/both-prices/missed_reason) via `intradayRefreshService:221`
|
||||||
+ internal endpoint; `ledgerService.attachClosingProb`→`closing_prob` (de-vigs both raw sides,
|
+ internal endpoint; `ledgerService.attachClosingProb`→`closing_prob` (de-vigs both raw sides,
|
||||||
|
|||||||
Reference in New Issue
Block a user