Skip to content
Ritesh FirodiyaGet in touch

Work / Chitragupt / Wiki / Decisions

2026-07-28-remove-ca-handoff-surface

Decisioncanonicalverified 2026-07-28

DECISION.2026-07-28.REMOVE-CA-HANDOFF-SURFACE

Remove CA-handoff surface

Decision

Remove the CA-handoff packet PDF export and its dedicated /tax/ca-handoff surface. The user shares their Tax Review with a CA directly (invite-a-CA or hire-a-CA); no separate handoff artefact.

Why

The dedicated CA-handoff route + PDF export duplicated data already surfaced on /tax. Two problems:

  • User confusion — "Pick your path" trichotomy (CA-handoff PDF · Invite own CA · Hire CA) offered three roads that all ended at the same place: a CA reading the numbers.
  • Maintenance drag — the PDF renderer, its dedicated route, an exportTaxPdf callable, a preflight checklist row, and refund-window "or CA-handoff exported" coupling all had to move together for any Tax-pillar change.

Dropping the surface simplifies the pillar to a two-path dichotomy (Invite / Hire) and removes the PDF export from the refund-window formula.

Impact

  • Frontend: /tax/ca-handoff route + CaHandoffGeneratorCard, CaHandoffHeader, CaHandoffSnapshotCard, ExportPdfButton components + taxCaHandoff route constant + inbound links from TaxPage, TaxReviewSidebar, FiledDownloadsCard — all deleted.
  • Backend: apps/functions/src/tax/exports.ts (exportTaxPdf callable) and apps/functions/src/tax/render-tax-pdf.ts (PDF renderer) deleted. exportTaxPdf removed from apps/functions/src/index.ts. ExportTaxPdfInputSchema / ExportTaxPdfOutputSchema removed from packages/shared/src/contracts/tax.ts and regenerated in _registry.generated.ts.
  • Preflight: checkHandoffPacket removed from ca/preflight.ts. PreflightItemSchema enum in packages/shared/src/contracts/ca.ts drops "handoff" — now ["ais","tds","regime","contact","bank"].
  • Refund window: policy simplifies to "14 days from unlock" (no "or until CA-handoff exported" clause). exports_downloaded stays as an inert schema field for legacy compat; no writer flips it to true.
  • Copy: COPY.REFUND-WINDOW-PITCH and COPY.TAX-PILLAR-CTA rewritten in packages/shared/src/config/copy-strings.ts + .context/wiki/entities/copy-strings.md. Marketing comparison rows in packages/shared/src/config/marketing.ts updated. Email templates (subscription, onboarding, tax) drop CA-handoff mentions.
  • Wiki: .context/wiki/surfaces/tax-ca-handoff.md deleted. [[tax-ca-handoff]] links removed from index.md, pillar-tax.md, tax-pillar.md. PILLAR.TAX.PICK-YOUR-PATH.PATHS in pillar-tax.md rewritten as a dichotomy. PRICING.REFUND-WINDOW row in upgrade-topups.md updated.
  • Mobile: apps/mobile/src/app/(app)/(tabs)/tax/index.tsx handleExport stubbed to show an Alert — mobile is paused for V1 and will be rebuilt around web parity.

Status

Active.

Sources

  • Product decision in chat 2026-07-28.

Every project of mine is written down like this.

Read the résumé