S1 (a1): feature-promise audit — no claim survives unverified

PROMISE-AUDIT.md: every /pricing claim → verified/built/reworded.
BUILT (was vapor): alt line ladder + edge ranking (same-features regrade
at shifted lines, Desk-gated at the API), quarter-Kelly (engine quantile
P(win) x real captured odds — either missing → no sizing), free-tier
kill-condition locked previews. FIXED (was false): analyst 15/day cap vs
the Founder 'Unlimited reads' promise → analyst unlimited; every '40+
factors' claim (real count: 22 named features) reworded truthfully in 7
files. VERIFIED: cascade alerts (real, wired), phi correlation,
leg history, cross-book comparison, WC soccer, real-time feed.
Locked by tests/unit/promiseAudit.test.js. Jest now ignores
.claude/worktrees (parallel agents' suites no longer leak into runs).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kev
2026-07-11 14:24:41 -04:00
parent e4d2e79f95
commit d242b11b4b
20 changed files with 296 additions and 30 deletions
+16 -1
View File
@@ -33,6 +33,9 @@ const TIERS = Object.freeze({
engine2: false,
stat_dashboard: true,
api_access: false,
// Session 62 (A1-S1) — Desk-only intelligence (pricing-page promises).
alt_line_ladder: false,
kelly_sizing: false,
}),
// Session 12 — $4.99/mo Africa tier. Slotted between free and analyst.
// Same intelligence surface as analyst (reasoning + kill conditions
@@ -49,9 +52,16 @@ const TIERS = Object.freeze({
engine2: false,
stat_dashboard: true,
api_access: false,
// Session 62 (A1-S1) — Desk-only intelligence (pricing-page promises).
alt_line_ladder: false,
kelly_sizing: false,
}),
analyst: Object.freeze({
scans_per_day: 15,
// Session 62 (A1-S1) — the Founder Access card promises "Unlimited
// reads" and the Nav shows an ∞ badge for every paid tier; the 15/day
// cap made both claims false. Analyst is unlimited; Desk differentiates
// on capabilities (alt ladder, Kelly, feed), not on rationing reads.
scans_per_day: Infinity,
grade_visible: true,
reasoning_visible: true,
kill_conditions_detail: true,
@@ -61,6 +71,9 @@ const TIERS = Object.freeze({
engine2: false,
stat_dashboard: true,
api_access: false,
// Session 62 (A1-S1) — Desk-only intelligence (pricing-page promises).
alt_line_ladder: false,
kelly_sizing: false,
}),
desk: Object.freeze({
scans_per_day: Infinity,
@@ -73,6 +86,8 @@ const TIERS = Object.freeze({
engine2: true, // LLM deep analysis
stat_dashboard: true,
api_access: false,
alt_line_ladder: true,
kelly_sizing: true,
}),
});