Work / Chitragupt / Wiki / Decisions
2026-08-10-tax-wireframe-alignment
Decisioncanonicalverified 2026-08-10
DECISION.2026-08-10.TAX-WIREFRAME-ALIGNMENTTax pillar React implementation audited and rebuilt against all wireframe variants
Decision
Audited all 11 .context/designs/web/tax/*.html wireframe variants (tax-locked, tax-empty, tax-review, tax-ca-invited, tax-with-ca, tax-filed, tax-past-ay, tax-family, tax-family-locked, invite-ca modal, concern modal) against the live apps/website/src/app/(app)/tax/ implementation, matching the methodology and standard of 2026-08-07-expense-portfolio-wireframe-alignment — real derived data only, no fabricated numbers or AI copy, checked for the same bug classes (NaN-poisoned charts, wrong-formula ratios, null-returning empty states, unwired override paths).
Gaps found and fixed:
- Hardcoded fake data —
FilingRecordTable.tsx's "Notices received" / "Tax-audit flags" rows were unconditionally"None ✓"regardless of actual data. Fixed to derive from realseverity === "scrutiny"flags on the review. - Past-AY page missing half its wireframe —
tax-past-ay.html's composition donut, extended filing record, and past-AY-specific CA sidebar all existed as already-built, real-data components (WhereGrossWentCard.tsx,FilingRecordTable.tsx,past-ay/Sidebar.tsx) but were never imported intoTaxPage.tsxafter an earlier consolidation to a single data-driven page. Wired in; also fixed a copy bug showing the current-AY "Pick your path" CTA on an already-closed AY. - CA-engagement chat drawer missing on the client —
tax-with-ca.html/tax-filed.html/tax-past-ay.htmlshow a floating chat drawer; the backend (postEngagementMessage,reportEngagementMessage) andEngagementThread.tsxalready existed (used in the CA portal) but nothing rendered it on/tax. AddedreadOnlyprop toEngagementThread, builtTaxChatDrawer.tsx, wired into engaged/filed/past-AY-with-engagement states. No fabricated "unread" badge — omitted since no real read-receipt field backs it. - Family (unlocked) page missing two of three widgets — built
FamilyRefundDonut.tsxandFamilyRegimeCard.tsx, both computed purely from already-returnedgetFamilyTaxOverviewfields, no backend change needed. - Dead orphaned components deleted (pre-dated the single-page consolidation, unreferenced anywhere):
PendingAyNotice.tsx,QuickCheck.tsx+quick-check/*,TaxReviewSidebar.tsx+sidebar/*,past-ay/PendingReviewNotice.tsx,review/DocumentsFedIn.tsx,utils/tax-review-variant.ts. Also removed duplicate formatterformatLakhsShortin favor of sharedformatPaiseCompact.
Explicitly scoped out (flagged, not faked): filed-state star-rating widget (no rateEngagement callable exists); per-member ITR-form line in family breakdown table (field exists server-side via inferItrForm but getFamilyTaxOverview's TaxMemberSchema doesn't select it — small, well-understood backend addition, not built here per instruction to report rather than expand backend scope); tax-family-locked.html is byte-identical to tax-locked.html in the wireframe source itself, so the current shared-locked-teaser implementation is not a gap.
Why
Same driver as 2026-08-07-expense-portfolio-wireframe-alignment — this session extended that same systematic gap-audit discipline from Expense/Portfolio to Tax and Inbox, per explicit user request to align all 4 pillars with their wireframes and eliminate hardcodings.
Impact
apps/website/src/app/(app)/tax/components/TaxPage.tsx,apps/website/src/components/ca/EngagementThread.tsx, newapps/website/src/components/tax/TaxChatDrawer.tsx,apps/website/src/components/tax/family/{FamilyRefundDonut,FamilyRegimeCard}.tsx,apps/website/src/components/tax/past-ay/{FilingRecordTable,WhereGrossWentCard,_format}.tsx.- Deletions listed above — dead code removed, not deprecated-and-kept, per the repo's no-legacy rule.
- pillar-tax — synced against these component/widget changes as part of 2026-08-10-inbox-wireframe-alignment's companion wiki resync pass.
yarn workspace website typecheckand scopedeslinton touched files: 0 errors.
Status
Active.
Sources
.context/designs/web/tax/*.html- 2026-08-07-expense-portfolio-wireframe-alignment
.context/wiki/entities/pillar-tax.md
Every project of mine is written down like this.
Read the résumé