Phase 6 — Cleanup, T&C, and User-Facing Communication
Phase 6 — Cleanup, T&C, and User-Facing Communication
Section titled “Phase 6 — Cleanup, T&C, and User-Facing Communication”Problem → Solution
Section titled “Problem → Solution”Problem: the rollout can’t ship code-only. The current T&C predates the subscription model (legal exposure + support liability on the first Stripe charge), existing users logging in to find themselves metered against a 500-page Starter quota with no warning will read the cutover as an outage (support flood, avoidable churn), and Phases 1-5 will leave behind both rollout-TODOs and — more dangerously — legacy pre-subscription billing references (LiteLLM budget checks, balance reads, “insufficient funds” guards) that either sit as dead weight or actively shadow-enforce against /quota/charge in the extraction pipeline.
Solution: three bundles wrapped around the cutover — two before deploy, one after. Before: rewrite the T&C to cover quota / overage / trial / cancellation / retention / price-change policy with legal sign-off as a hard gate, and run a 14-day communication window (migration email, in-app banner, refreshed pricing page, help-center articles, support playbook for the new failure modes). The T&C rewrite also establishes the “T&C revision runbook” Phase 2 Step 2 references — any future T&C or price change uses the same mechanic (email notice + cancel-before-renewal, no in-app re-prompt, no code). After: work down the accumulated TODO backlog across the subscription repos (billing-service / api-backend / authentication-service / react-frontend), and audit the codebase for legacy billing references — prioritizing the extraction pipeline (api-backend’s batch-extract + report-gen, parser-router, workflow-functional + siblings) where a stale balance check would silently contradict /quota/charge’s authorization. Still-load-bearing paths migrate onto Contract B / Contract C; confirmed-dead paths get deleted outright (no comment-outs).
What this phase adds to the user experience
Section titled “What this phase adds to the user experience”- Updated T&C live before the first paid charge — users can actually read what they’re agreeing to.
- Two weeks of advance notice (email + in-app) before the migration lands.
- Refreshed pricing page matching the tiers a user will see in Stripe Checkout — no mismatch between marketing copy and billing.
- Help-center articles covering the questions support would otherwise field 1:1.
- Support responses that match the actual failure modes the system now produces.
Post-cutover, users see nothing change — the code cleanup is invisible by design. The benefit accrues to the engineers who touch these paths next.
- T&C legally reviewed and deployed before Phase 3’s first real Stripe charge.
- Every existing user receives the migration email at least 14 days before cutover.
- In-app migration banner live for the 14 days leading up to cutover; disappears automatically at cutover.
- Pricing page matches Phase 3’s plan catalog.
- Help-center articles published and linked from pricing, Portal, and the
PickPlanPage. - Support playbook merged into the team wiki before cutover.
- Post-cutover: Phase-1-through-5 TODOs either resolved or converted to tracked issues.
- Post-cutover: legacy billing references swept from the extraction pipeline (api-backend extract + report-gen routes, parser-router, workflow repos) — each occurrence either deleted (dead under the subscription model) or migrated onto Contract B / Contract C (no shadow enforcement left running alongside
/quota/charge).
Repos touched
Section titled “Repos touched”| Repo | Changes |
|---|---|
| legal / T&C (wherever T&C content lives) | Rewrite covering quota, overage, trial, cancellation, data retention, n1-initiated price-change policy (30-day notice, new price at next renewal) |
| marketing site | Pricing page refresh; help-center articles |
| email service | One-off migration-announcement template |
| react-frontend | In-app migration banner (time-bounded, auto-hides at cutover date); post-cutover: resolve accumulated TODOs |
| billing-service | Post-cutover: resolve accumulated TODOs; audit legacy LiteLLM-budget / balance surfaces |
| api-backend | Post-cutover: resolve accumulated TODOs; audit extract + report-gen paths for pre-subscription balance checks |
| authentication-service | Post-cutover: resolve accumulated TODOs |
| parser-router | Post-cutover: audit + remove legacy balance / budget guards in the parse entry path |
| workflow-functional (+ sibling workflow repos) | Post-cutover: audit + remove legacy balance / budget guards in the report-generation entry path |
| support wiki | New playbook for past_due, quota exhausted, trial ended, Checkout decline, “why am I on Starter?” |
Depends on
Section titled “Depends on”- Phases 1-5 shipping in the single cutover (the pre-cutover legal + comms work lands before that cutover; the code cleanup lands after).
- Legal sign-off on the rewritten T&C before the cutover deploy.
- Nothing downstream in this rollout. Cleanup outputs feed general codebase health and reduce friction for the next billing-adjacent feature.
