---
title: Phase 6 — Cleanup, T&C, and User-Facing Communication
---

# Phase 6 — Cleanup, T&C, and User-Facing Communication

## 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

- 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.

## Goal

- 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

| 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

- 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.

## Feeds

- Nothing downstream in this rollout. Cleanup outputs feed general codebase health and reduce friction for the next billing-adjacent feature.
