Local quality gate

Check the exit code of each command directly. Do not pipe a critical command through a truncating utility that hides failure.

Test layers

SMS without a SIM

  • SMS Lab: paste a message and inspect parser/classifier evidence.
  • Debug receiver: tools/inject-sms.sh exercises the native-to-Dart capture pipeline on a connected Android device.
  • Emulator SMS: adb emu sms send tests the genuine OS delivery path.
SMS Lab does not prove broadcast-receiver behavior. Debug injection does not prove carrier/SIM delivery.

Real evidence gate

Before beta, run the reviewed real fixture with:
A synthetic-only corpus must fail this stricter gate. The target is at least 90 reviewed, redacted samples across the complete P0 bank/format matrix.

Physical-device matrix

  • low/mid Android device with permission on/off transitions;
  • background/killed/reboot cases;
  • widget private and visible states;
  • physical iPhone for OCR and app lifecycle;
  • English, Sinhala, and Tamil;
  • light/dark/system appearance; and
  • large text and screen-reader checks.