Work / Chitragupt / Wiki / Decisions
2026-07-28-remove-ca-handoff-surface
Decisioncanonicalverified 2026-07-28
DECISION.2026-07-28.REMOVE-CA-HANDOFF-SURFACERemove 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
exportTaxPdfcallable, 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-handoffroute +CaHandoffGeneratorCard,CaHandoffHeader,CaHandoffSnapshotCard,ExportPdfButtoncomponents +taxCaHandoffroute constant + inbound links fromTaxPage,TaxReviewSidebar,FiledDownloadsCard— all deleted. - Backend:
apps/functions/src/tax/exports.ts(exportTaxPdf callable) andapps/functions/src/tax/render-tax-pdf.ts(PDF renderer) deleted.exportTaxPdfremoved fromapps/functions/src/index.ts.ExportTaxPdfInputSchema/ExportTaxPdfOutputSchemaremoved frompackages/shared/src/contracts/tax.tsand regenerated in_registry.generated.ts. - Preflight:
checkHandoffPacketremoved fromca/preflight.ts.PreflightItemSchemaenum inpackages/shared/src/contracts/ca.tsdrops"handoff"— now["ais","tds","regime","contact","bank"]. - Refund window: policy simplifies to "14 days from unlock" (no "or until CA-handoff exported" clause).
exports_downloadedstays as an inert schema field for legacy compat; no writer flips it to true. - Copy:
COPY.REFUND-WINDOW-PITCHandCOPY.TAX-PILLAR-CTArewritten inpackages/shared/src/config/copy-strings.ts+.context/wiki/entities/copy-strings.md. Marketing comparison rows inpackages/shared/src/config/marketing.tsupdated. Email templates (subscription, onboarding, tax) drop CA-handoff mentions. - Wiki:
.context/wiki/surfaces/tax-ca-handoff.mddeleted.[[tax-ca-handoff]]links removed fromindex.md,pillar-tax.md,tax-pillar.md.PILLAR.TAX.PICK-YOUR-PATH.PATHSinpillar-tax.mdrewritten as a dichotomy.PRICING.REFUND-WINDOWrow inupgrade-topups.mdupdated. - Mobile:
apps/mobile/src/app/(app)/(tabs)/tax/index.tsxhandleExportstubbed 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é