Gate A: take invented prices off every public surface
/pricing and the homepage teaser rendered the $0/$79/Custom catalog from lib/billing.ts with a below-the-fold disclaimer. Board minutes #42 ratified Gate A: no price on a public surface until the model is ratified and the entitlements exist — a false price anchor with a footnote is worse than no price. The page has been live in breach since ratification (server-26#46). - /pricing: no numbers, no plan cards, no interval toggle. "Pricing is in development", CTA to the existing /waitlist request-access page. - homepage: pricing teaser replaced with the same message; PLANS import gone. - homepage CTAs pointed at /login, which has no signup path — a real visitor could not create an account. Now /waitlist ("Request access"); the secondary CTA is honestly labelled "Sign in". - lib/billing.ts: plan catalog header now states the prices are invented and that retention/SSO/SLA have no backend, so the next person to import PLANS is warned at the definition site. Refs server-26#46, server-26#62. Authenticated /settings/billing is unchanged and still stubbed — not a public price surface, stays with #46. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
cc038e6326
commit
a1bdccff45
@@ -72,10 +72,26 @@ export interface UsageSummary {
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Plan catalog — this is real UI copy (safe to ship), just not wired to a
|
||||
// live pricing table. In a real integration this would likely be fetched
|
||||
// from the processor (Stripe Prices API) instead of hardcoded here so price
|
||||
// changes don't require a frontend deploy.
|
||||
// Plan catalog — NOT SAFE TO SHIP. Do not put these on a public surface.
|
||||
//
|
||||
// These prices are INVENTED. BUSINESS_MODEL.md §3.1 (ratified in structure by
|
||||
// board minutes #42, 2026-08-23) marks $0/$79/custom as superseded, and the
|
||||
// board ruled that pricing comes OFF the public site entirely — replaced with
|
||||
// "Pricing in development — contact us" — rather than kept behind a
|
||||
// below-the-fold disclaimer. A false price anchor with a footnote is worse
|
||||
// than no price. Tracked in server-26#46 (Gate A, due 2026-09-13).
|
||||
//
|
||||
// Also unbacked by any implementation, and each is its own claim-vs-reality
|
||||
// gap if displayed:
|
||||
// - retentionDays 7/90/365 — no TTL and no deletion sweep exists anywhere
|
||||
// in drb-c2-core. server-26#44 (Gate B4).
|
||||
// - SSO/SAML, uptime SLA, custom data residency — no backend at all.
|
||||
// There are also zero backend billing routes; createCheckoutSession() and
|
||||
// createBillingPortalSession() always throw. See ADMIN_BILLING_AUDIT.md §2.
|
||||
//
|
||||
// If pricing is ever wired for real, fetch it from the processor (Stripe
|
||||
// Prices API) rather than hardcoding here, so price changes don't require a
|
||||
// frontend deploy.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
export const PLANS: PlanDefinition[] = [
|
||||
|
||||
Reference in New Issue
Block a user