Docs: trim remaining TimeCurve/FeeRouter mentions in 30 satellite files

Summary

Follow-up to #274 (closed) (closed). P0 operator/agent paths are clean and check-doc-retired-terms.sh passes, but 30 files under docs/ still contain TimeCurve or FeeRouter tokens (55 mentions total as of 4230ab7). Most are labeled retired cross-links or negative-test invariant rows — not active operator runbooks — but they still add noise for QA, contributors, and third-party agents.

Goal: Reduce remaining TimeCurve|FeeRouter surface in docs/ to the minimum needed for historical traceability, without reintroducing v1 operator instructions or duplicating arena-v2.md.

Parent: #274 (closed) · Epic: #238 (closed) · Policy: #263 (closed).


Files to update (30)

Baseline inventory (rg -l 'TimeCurve|FeeRouter' docs/ on main):

# File ~mentions Notes
1 docs/testing/invariants-and-business-logic.md 7 Negative-test / removal invariants — rephrase where possible without breaking anchor IDs
2 docs/qa/QA-onboarding-gitlab-issue-body.md 4 Compare-to-retired wording; keep /arena gate
3 docs/frontend/wallet-connection.md 4 Likely legacy env alias prose
4 docs/product/time-arena.md 3 Canonical spec — trim redundant v1 comparisons
5 docs/product/arena-v2.md 3 Same
6 docs/frontend/sound-effects-recommendations.md 3 Rename stale route/surface labels
7 docs/testing/strategy.md 2 Already cites #274 (closed) gate — tighten
8 docs/testing/manual-qa-checklists.md 2
9 docs/product/referrals.md 2 Strip TimeCurve-attached presale semantics only
10 docs/operations/deployment-guide.md 2 Collapse retired pointer further if possible
11 docs/onchain/security-and-threat-model.md 2 Move v1 threat rows to ≤1 retired paragraph
12 docs/onchain/cl8y-flow-audit.md 2 Already stubbed — remove FeeRouter.distributeFees token if historical table can cite #244 (closed) instead
13 docs/indexer/design.md 2 “Replaces legacy …” lines — shorten
14 docs/glossary.md 2 Retire or one-line glossary entries
15 docs/agent-phases.md 2 Retired stack list only — OK to rephrase without token
16 docs/testing/anvil-same-block-drill.md 1
17 docs/research/stablecoin-and-reserves.md 1
18 docs/README.md 1
19 docs/product/vision.md 1
20 docs/product/primitives.md 1
21 docs/operations/stage2-run-log.md 1 Historical log — label only
22 docs/operations/presale-doub-instant-distribution.md 1
23 docs/operations/final-signoff-and-value-movement.md 1
24 docs/onchain/treasury-contracts.md 1
25 docs/onchain/fee-routing-and-governance.md 1 “Retired FeeRouter …” paragraph
26 docs/integrations/kumbaya.md 1 One-line retired pointer already — rephrase token
27 docs/frontend/presale-vesting.md 1
28 docs/contracts/foundry-and-megaeth.md 1 Fork smoke note
29 docs/architecture/overview.md 1
30 docs/agent-implementation-phases.md 1

Out of scope: contracts/ (TimeCurve.sol, FeeRouter.sol, fork tests), frontend/e2e/ redirect tests, code comments, git history.


Instructions for the agent

  1. Read guardrails first: .cursor/skills/yieldomega-guardrails/SKILL.md · docs/agent-phases.md · closed #274 (closed) close comment.

  2. Use a git worktree (e.g. issue/274-residual-docs) — do not work directly on a dirty main.

  3. Inventory before edit:

    rg -n 'TimeCurve|FeeRouter' docs/ | sort
    rg -c 'TimeCurve|FeeRouter' docs/ | sort -t: -k2 -nr

    Classify each hit: delete, rephrase (drop token, keep meaning), or keep (invariant ID / anchor must stay).

  4. Edit policy (same as #263 (closed) / #274 (closed)):

    • Delete duplicate v1 runbook prose; do not create docs/testing/archive/ stubs.
    • Rephrase “retired v1 launchpad / five-sink CL8Y model” instead of repeating TimeCurve / FeeRouter tokens when the token adds no test value.
    • Preserve Arena v2 cross-links: TimeArena, GET /v1/arena/*, VITE_TIME_ARENA_ADDRESS, play skills skills/README.md.
    • Preserve invariant anchor IDs (#timearena-v2-gitlab-260, #satellite-docs-gitlab-274, etc.) — update prose around them, do not rename anchors without fixing check-doc-anchors.sh.
    • Do not reintroduce VITE_FEE_ROUTER_*, idx_timecurve_*, or /timecurve as active QA paths.
  5. Optional hardening: extend scripts/check-doc-retired-terms.sh or add a warn-only count gate in CI if total docs/ mention count regresses above baseline — only if it does not false-positive on intentional invariant rows.

  6. Verification loop: verify → fix → reset infra (if touching scripts) → repeat. Docs-only: no infra reset required unless running e2e-anvil.sh.

  7. Commit / merge: single focused commit; merge to main; comment on this issue with before/after counts and checklist results.


Acceptance criteria

  • All 30 files in the table above were reviewed; each has either zero TimeCurve|FeeRouter tokens or a ≤1-line Retired label explaining why the token remains (invariant row IDs only).
  • rg 'TimeCurve|FeeRouter' docs/ mention count ≤ 25 (down from 55; ~55% further reduction).
  • rg -l 'TimeCurve|FeeRouter' docs/ file count ≤ 15 (down from 30).
  • P0 paths still clean: bash scripts/check-doc-retired-terms.sh passes (must not regress #274 (closed)).
  • bash scripts/check-doc-anchors.sh passes — no broken invariants-and-business-logic.md#… links.
  • No operator-facing doc presents v1 five-sink routing or sale-end lifecycle as current behavior.
  • docs/testing/strategy.md and .cursor/skills/yieldomega-guardrails/SKILL.md cross-link this issue if counts/gates change.
  • Docs-only diff — indexer cargo test, frontend npm test, and bash scripts/e2e-anvil.sh unchanged (regression smoke).

Verification checklist

Step Command / action Expected
Baseline delta rg -c 'TimeCurve|FeeRouter' docs/ | wc -l and total mention count ≤ 15 files, ≤ 25 mentions
P0 gate bash scripts/check-doc-retired-terms.sh Exit 0
Anchor gate bash scripts/check-doc-anchors.sh Exit 0, no new broken anchors
Operator paths rg 'VITE_FEE_ROUTER|FeeRouter\.distributeFees|TimeCurve\.endSale|redeemCharms|idx_timecurve' docs/qa/ docs/testing/qa-local-full-stack.md docs/agent-phases.md docs/agent-implementation-phases.md Zero matches
QA onboarding Read docs/qa/QA-onboarding-gitlab-issue-body.md /arena, bots/timearena, no FeeRouter env gate
Agent smoke Ask Cursor agent with guardrails: “how do I run local QA?” Cites /arena, not TimeCurve page
Invariants Spot-check INV-DOCS-274-* rows still accurate Manual
Regression cd indexer && cargo test; cd frontend && npm test; bash scripts/e2e-anvil.sh All green
Skills rg 'play-timecurve' skills/ Zero (no resurrection)