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