TimeCurve: launch anchor 1.2× → 1.275× (27.5% boost) — docs, frontend, invariants
## Context Follow-up to EcoStrategy audit **M-05** (launch anchor is policy/UX) and product decision: raise the **launch price boost** from **20% (1.2×)** to **27.5% (1.275×)** everywhere it is used for **CL8Y-at-launch / DOUB–CL8Y LP anchor** messaging and math. **New canonical multiplier:** `1.275` = **27.5%** above the final per-CHARM clearing price. **Implementation note (fixed-point):** prefer exact integer math, e.g. `clearingWad * 1275n / 1000n` (verify equivalence if you simplify the fraction). ## Scope - Update **docs** and **all TimeCurve user-facing surfaces** (Simple, Arena, stake-at-launch, protocol-related copy that references the anchor) to say **1.275×** / **27.5%** where the old **1.2×** / **20%** launch boost applied. - **Do not** change unrelated numeric `1.2` (e.g. SVG `strokeWidth`, chart timing, min-buy "~20%/day" envelope, unrelated tests). ## Files / symbols to update (from repo search; verify with rg before merge) ### Core math + tests - `frontend/src/lib/timeCurvePodiumMath.ts` — `launchLiquidityAnchorWad`, `participantLaunchValueCl8yWei` (replace `12n/10n` with `1275n/1000n` or agreed fixed-point) - `frontend/src/lib/timeCurvePodiumMath.test.ts` — describe + expectations ### TimeCurve pages / session - `frontend/src/pages/TimeCurveSimplePage.tsx` (copy/comments; not `strokeWidth` literals) - `frontend/src/pages/timeCurveArena/TimeCurveArenaView.tsx` (user-facing 1.2× line) - `frontend/src/pages/timecurve/useTimeCurveSaleSession.ts` (JSDoc / comments) - `frontend/src/pages/timecurve/TimeCurveStakeAtLaunchSection.tsx` (`1.2×` text, `badgeLabel`) - `frontend/src/pages/timecurve/TimeCurveSections.tsx` — "Reserve routing and launch anchors" if it states 1.2× - `frontend/src/index.css` — comment referencing 1.2× if present ### Docs + parameters - `docs/testing/invariants-and-business-logic.md` — Launch-anchor row (rename 1.2× rule → 1.275×, update formula + example e.g. `2 × 1.275 = 2.55` CL8Y) - `docs/frontend/timecurve-views.md` - `docs/onchain/fee-routing-and-governance.md` (LP 1.2× → 1.275× in DoubLPIncentives / launch anchor sentence) - `contracts/PARAMETERS.md` — Launch anchor table row - `launchplan-timecurve.md` — 1.2× in DOUB/CL8Y LP note - `contracts/src/sinks/DoubLPIncentives.sol` — NatSpec "1.2× clearing anchor" ### Agent / play skills - `.cursor/skills/yieldomega-guardrails/SKILL.md` — launch-anchor bullet - `skills/play-timecurve-doubloon/SKILL.md` — launch-anchor invariant (update example math) ### Optional - `audits/audit_ecostrategy_1777969776.md` — short note that product boost was raised to 1.275× after audit, or handle in a doc-only MR. ## Acceptance criteria - [ ] Single canonical multiplier in `timeCurvePodiumMath` (no drift between Simple and Arena). - [ ] All user-visible TimeCurve copy uses **1.275×** (or **27.5%**) for the launch boost where applicable. - [ ] Invariants doc + PARAMETERS reflect **1.275×** and updated worked examples. - [ ] Vitest updated; tests green. ## References - Audit: `audits/audit_ecostrategy_1777969776.md` on `main`
issue