No real customers, messages or case details. Each test starts with a synthetic closed matter and a firm-controlled test inbox. 1. Ordinary eligible closure -> one approval task, no immediate send. 2. Same facts plus negative feedback or unfavorable outcome -> same eligibility; these fields must not control routing. 3. Opted out -> suppress; late opt-out after approval/delay -> exit before email. 4. Privacy hold -> lawyer review; do not convert dissatisfaction into a privacy reason. 5. Two matters, same contact/location -> one reserved invitation; second held as duplicate. 6. Request inside approved 180-day example cooldown -> block new request. 7. Reopened matter after approval -> stop dispatch. 8. Historical import into closed stage -> excluded unless a separately approved cohort. 9. Missing permission/reviewer/link -> hold, never default to allow. 10. Manual rerun or duplicate trigger -> consult ledger; no second send. 11. Prior send status unknown -> inspect timeline; no blind resend. 12. Email open or review-link click -> never mark review posted. 13. Confirm destination is correct firm location; no matter details in subject or body. 14. Reply draft -> remains internal; no representation confirmation or public auto-post. 15. Tagged task completed but approval=false -> no send. 16. Tagged task completed and approval=true but no recorded reviewer decision -> no send. 17. Approval expired or revoked after task completion -> no send. 18. Held or declined task -> remove trigger tag before closure, retain approval=false; closing it must not trigger send. 19. Approval=true plus current recorded decision and all safeguards passed -> exactly one authorized test email; preserve decision and send evidence separately. 20. Live account cannot require both event and current approval/decision checks -> task-only automation and manual send fallback.