Closes the 4th and final gap from the competitive benchmark: the
human-in-the-loop professional tier every commercial competitor pairs
with their software. Deliberately NOT a marketplace or payment
integration — a structured review-request status on each member's
Wassiyah (not_requested -> requested -> reviewed, with reviewer name
recorded), surfaced on the Mutawalli dashboard so nothing quietly ships
as final without the legally-required review being flagged.
Paired with a new whole-app jurisdiction setting since 'necessary in
certain countries' only makes sense per-jurisdiction:
- nf_families.jurisdiction (MY/SG/UK), owner-only to change — first
UPDATE policy ever added to nf_families, which previously had none.
- New Settings-tab jurisdiction selector (JurisdictionSetting.svelte).
- Wassiyah tab and the draft will document now carry jurisdiction-
specific legal notes: Wills Act 1959 + state Syariah (Malaysia),
Wills Act 1838 + AMLA (Singapore), Wills Act 1837 (UK). Singapore
added as a full third jurisdiction option, not just a stub.
- Zakat calculator's currency label and Nisab default now follow the
family's jurisdiction (RM/SGD/GBP) instead of a hardcoded RM guess.
Covered by e2e-jurisdiction-review.cjs (13/13). Full regression:
253/253 across all suites (2 reruns confirmed as pre-existing
parallel-load flakes, not regressions).
Closes 3 of the remaining 4 gaps from the competitive benchmark:
- Coverage Dashboard now has a rule-based recommendations engine
(recommendations.js) surfacing plain-language next steps from data
already in the app — exposed assets, missing Wassiyah, unverified
assets, unlinked liabilities, missing insurance/Zakat setup,
insufficient attestors, no agent assigned, no Waqf configured.
- Faraid Calculator gains a madhab selector (Shafi'i/Hanafi/Maliki/
Hanbali) encoding the one well-documented divergence this engine's
existing rules touch: whether radd extends to a sole-heir spouse
(Hanafi: yes; Shafi'i/Maliki/Hanbali: no, residue unallocated).
Ja'fari (Shia) is honestly gated as unsupported rather than silently
computed with Sunni rules, since it's a structurally different
classification system, not a parameter tweak. faraid.test.js grows
from 14 to 17 cases covering the divergence and the gating.
- Wassiyah tab gains a 'Generate draft will document' button producing
a formatted, statutory-style DRAFT will (declaration/revocation,
executor appointment, bequest schedule, witness attestation blocks)
via browser print-to-PDF — no new PDF dependency. Clearly watermarked
'DRAFT — NOT EXECUTED, requires physical signing and witnessing.'
Not a claim of legal validity, a lawyer-reviewable starting point.
The 4th gap (human-in-the-loop professional tier) remains open — out
of scope for a self-serve prevention tool. COMPETITIVE_BENCHMARK.md
updated to reflect closed/partially-closed status on each item.
Covered by e2e-gaps-round2.cjs (14/14) plus 3 new faraid.test.js cases.
Full regression: 226/226 across all suites.