Honesty pass: remove every live fabrication (REMOVE/HIDE only, no feature cut)
Six live untruths corrected — no grade/snapshot/scorer/pipeline touched: 1. /compare — hardcoded Jokic A+/Wembanyama A + fake VERDICT replaced with an honest in-development state; removed from Nav + BottomTabBar (route still resolves, never the sample). Real two-player build is later. 2. Pricing — founder Desk $34.99→$44.99 (matches lib/checkout.js), Analyst $14.99; removed the struck $19.99/$44.99 "regular" numbers and DeskShowcase's stale $34.99. First-100 counter is real (ClaimMeter → Stripe countFounderSeats); no fake "first 50" desk claim added (no such counter exists). 3. FAQ "NexaPay" → Stripe (verified: live checkout is Next→Express→checkout.stripe.com). 4. FAQ + Features "Brier/CLV published from day one" removed (not surfaced yet) — returns when real. Backend Brier compute untouched. 5. MobileEdgeBoard removed from the Slate — its edge% feed was a miscalibrated placeholder (masked >40% as "—"); phones now show the real game cards. 6. Price triplet — never-computed model/EV now derives NO_MODEL (honest absent, MODEL "—" / "NOT PRICED", no verdict) instead of QUARANTINE's false "we suppressed our price / a leg is poisoned" copy. Fixes grade card + LiveHeroProp. Full suite 3833 green, web build exit 0. Tests updated to the new honest contracts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VsztNChZ7vEvSR61AuMhD1
This commit is contained in:
@@ -52,6 +52,13 @@ const STATES = Object.freeze({
|
||||
// Not a verdict — a display state. The model leg exists and is honest, the
|
||||
// viewer just isn't entitled to it (free tier). Book + fair render normally.
|
||||
NO_VERDICT_LOCKED: 'NO_VERDICT_LOCKED',
|
||||
// Honesty pass: the model price was never COMPUTED (the EV layer isn't
|
||||
// producing p_win/model_odds yet) — NOT quarantined, NOT locked. The model
|
||||
// leg renders absent ('—'), book + fair stand, and NO verdict is claimed.
|
||||
// This exists so a never-priced row never wears QUARANTINE's "we suppressed
|
||||
// our own price / a leg is poisoned" copy, which asserts a deliberate act
|
||||
// that did not happen.
|
||||
NO_MODEL: 'NO_MODEL',
|
||||
});
|
||||
|
||||
/** Strict numeric parse — `Number(null) === 0` is the fabrication bug this
|
||||
@@ -107,9 +114,11 @@ function deriveValueState(row = {}) {
|
||||
|
||||
const model = num(row.model_odds);
|
||||
const ev = num(row.ev_pct);
|
||||
// Without a model price or an EV there is no verdict to render — treat as a
|
||||
// withheld model leg rather than asserting "no edge" we didn't compute.
|
||||
if (model == null || ev == null) return STATES.QUARANTINE;
|
||||
// Without a model price or an EV there is no verdict to render. This is an
|
||||
// absent leg, NOT a quarantine: we never computed it, so we must not claim we
|
||||
// "suppressed" or "poisoned" it. Book + fair still stand; the model leg goes
|
||||
// honestly absent and no verdict is asserted.
|
||||
if (model == null || ev == null) return STATES.NO_MODEL;
|
||||
|
||||
// 3. The three real verdicts.
|
||||
if (isValue(book, ev)) return STATES.VALUE;
|
||||
@@ -130,6 +139,7 @@ function valueStateColor(state) {
|
||||
case STATES.NO_EDGE:
|
||||
case STATES.REFUSAL:
|
||||
case STATES.NO_VERDICT_LOCKED:
|
||||
case STATES.NO_MODEL:
|
||||
default:
|
||||
return 'var(--text-2)';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user