dove-reportlisted
Install: claude install-skill sandeep121sandeep/dove-sms-skill
# /dove-report — delivery reports
Engine: `dove.py` in this skill's folder. Config: shared `~/.dove/config.json`.
## Fetch a report
```
# whole day
python3 ~/.claude/skills/dove-report/dove.py report --date <YYYY-MM-DD>
# filter to one send (use the BATCH id printed at send time, e.g. 38353-...)
python3 ~/.claude/skills/dove-report/dove.py report --date <YYYY-MM-DD> --messageid <batch>
```
Each row prints: `mobile deliverystatus reason sender batch`.
## How to read it
- `DELIVRD` → delivered (code 000).
- `UNDELIV — DLT Template Not Matched` → 633 (content ≠ registered template).
- `UNDELIV — No CTA Whitelisted` / `URL CTA Not Matched` → 700 / 701 (promo URL).
- `blocked — blocked_ndnc` → 004 (number on DND; promotional route).
- Decode any reason/code with `/dove-errors`.
## Gotchas (handled by the tool, good to know)
- `getreport.jsp` is **incremental** — only returns un-downloaded DLRs unless
re-downloaded (tool passes `redownload=yes`; Dove caps re-downloads at 7).
- `--messageid` matches the **batch id** (the `38353-...` string from the send
response), not the numeric message id.
- Promotional DLRs can lag a few minutes after send — re-run if a row is missing.