docs: corrected gate recorded + cache-busting verification lesson

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QJs13VsyiSKYQP6rj3NNmc
This commit is contained in:
Kev
2026-07-31 07:31:45 -04:00
parent 713f90183f
commit 7cf3892e76
2 changed files with 54 additions and 0 deletions
+22
View File
@@ -742,3 +742,25 @@ grade, so nobody can tell which prop is the A.
**Live anonymous fingerprint:** 25 grades → **5 settled free-full, 20 locked**, `live_locked
{"count":20,"tiers":{"B":13,"C":7}}`, **judgment-field leak: NONE**. 319 suites / 3,971 tests green,
web build exit 0.
---
# BUILD 1 CORRECTED — itemized grades are PAID, live AND settled (2026-07-31)
The resolution-flip shipped earlier the same day was **replaced**: freeing grades at settlement made
the free tier a one-day-delayed feed of the whole product. No per-grade flip now — every itemized
grade is Analyst+.
**Free:** data aggregator + the **aggregate record that already existed** (`/api/accuracy` n=937,
byGrade, per-sport; `/api/ledger/accuracy`, both honoring the n≥20 hollow law with `pct:null`) + a
**capped, day-rotated 3-call sample** (resolved only) + the locked shell of tonight's reads
(`live_locked {count, tiers}`, aggregate-only, never joinable to a row).
**Live anonymous, cache-busted:** 25 grades, **judgment leak NONE**, every row `locked`, tease
`{count:20, tiers:{B:13,C:7}}`, `free_sample` 3 of 5 settled — **exploit dead**. `outcome` is kept on
gated rows because a result is a fact, not a judgment.
**Verification note:** the first post-deploy read was a CDN-cached pre-deploy body and falsely showed
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.