Swasti · mForm V2→V3
P1 Geography scoping is wrong (data scope = surveyor, not geography) ● Fix now

Once a user logs in, they only see members they personally uploaded. Bulk-uploaded data invisible to surveyors. RESOLVED — A11 shipped; geography flows into child forms via member inheritance.

Geography scoping is wrong (data scope = surveyor, not geography)
P2 Member geography not flowing into child forms ● Fix now

Member already has GP/Block. Child forms (Scheme, Health) should auto-prefill. RESOLVED — Scheme / Document / Health all inherit geography from the member link; covered by app-level prefill in the picker widgets.

Member geography not flowing into child forms
P3 UI is not scalable to N programs ◐ Design call

Home tile layout already strained at 3 programs. 4th and 5th will not fit. RESOLVED — home screen redesigned with a 2-column program grid (5 cells: Members / Schemes applied / Documents / Health screenings / Livelihood + Drafts). All four programs ship and render cleanly.

UI is not scalable to N programs
P4 Self-linking creates response sprawl ● Fix now

Every follow-up creates a new mForm response. mForm constraint, not product preference. RESOLVED — replaced with Frappe-native child follow-up doctypes (Scheme Application Followup, Document Application Followup, Health Screening Followup, Livelihood Goat Purchase Followup, Livelihood Repayment Followup). Each parent points at its FU children via the SDK's child-table v2 schema.

Self-linking creates response sprawl
P5 Document flow disconnected from Scheme flow ◐ Design call

Surveyor manually moves member from Scheme → Document → Scheme. Should auto-trigger from Scheme on missing prerequisites.

Document flow disconnected from Scheme flow
P6 Follow-up discoverability ◐ Design call

No 'pending today' / 'due in N days' bucketing. No push notifications.

Follow-up discoverability
P7 Multi-language is layered awkwardly ◐ Design call

Frappe view-vs-data split differs from mForm. Free-text in regional script breaks dashboard visualisation.

P8 QA is the bottleneck (process pain, not product) ● Fix now

Cycles dropped from 15 days to days. Manual regression no longer feasible. RESOLVED — Flutter test suite at 456+ passing tests with smoke coverage on every add/followup screen plus parametrised parity tests against the Python status modules; emulator + Vivo regression in place; tester feedback runs through the KB form not Sachin's inbox. Builds drop daily during Phase 6.


Last updated 2026-06-05