$ python3 sorter.py
  n1  security_alert  -> now               (rule security_alert = now)
  n2  newsletter      -> summary           (rule newsletter = summary)
  n3  promo           -> never             (rule promo = never)
  n4  payment_failed  -> now               (rule payment_failed = now)
  n5  smart_fridge    -> summary           (unknown kind -> summary)
  n4  payment_failed  -> duplicate-skipped (id already handled)
  n6  server_down     -> now               (rule server_down = now)
  n7  server_down     -> summary           (now limit (3) reached -> summary)
  n8  message         -> summary           (rule message = summary)
  n9  social_like     -> never             (rule social_like = never)
 n10  weekly_report   -> summary           (rule weekly_report = summary)

DAILY SUMMARY
5 item(s)
  - [n2] newsletter: October digest
  - [n5] smart_fridge: Door open
  - [n7] server_down: web-02 unreachable
  - [n8] message: Lunch tomorrow?
  - [n10] weekly_report: Week 40 report

$ cat full_log.jsonl | wc -l
11
