feat(cases): pull 25 new cases (463-487) from stats.gart.io; dossiers, sources, trim

- pull_live_cases.py: merges https://stats.gart.io/api/attacks into the export.
  The feed lacks notes/reports/original_date/has_processed_date, so existing
  records keep their fields; changed values are taken from live (record 188:
  victim, violence_torture, weapons, summary) and new records are appended
  with those four fields null. Previous export kept as
  attacks-export-Gart-website-2026-09-09-before.json; raw feed saved as
  attacks-live-api-2026-09-09.json. Export now has 389 records.
- 25 new dossiers built; 93 linked URL slots fetched (77 fetched, 8 blocked,
  4 thin, 4 video/social); 76 blocks auto-trimmed. Wayback retry for the 12
  failed slots hit archive.org rate limits (429) and is left for a later run.
- Sheet row 252 (the Phuket robbery listed in cases-missing-from-database.json)
  approved as the source for new case 476, which is that event.
- Stale dossier for renamed case 188 removed.
- Detention flag check on the new cases: 479 proposed 0->1 (forced entry plus
  assault), 468 null->0 proposed, 483 and 486 confirmed 0; review file and
  corrections JSON updated. Worklist and README carry the procedure.

verify_all.py PASSES (2776 checks, 389 case files).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GZZENdTLzNGsbNy4DyF1yt
This commit is contained in:
StellarCrow
2026-09-09 18:17:12 +02:00
co-authored by Claude Fable 5.1
parent 93cf7ae53a
commit 1387037367
143 changed files with 33765 additions and 920 deletions
@@ -359,5 +359,41 @@
"confidence": "RULE",
"basis": "record: pushed inside and aimed a gun, victim pushed back, suspect fled; no control gained",
"status": "WITHDRAWN 2026-09-07: stays 1 under the owner's rule (forced entry into the victim's space plus violence or holding there is detention, however short): forced entry, gun aimed at the victim inside the home"
},
{
"target": "DB id 479",
"field": "kidnappings (detention)",
"current": 0,
"proposed": 1,
"confidence": "CLEAR",
"basis": "record: three men posing as DoorDash drivers forced their way into the family home, assaulted the homeowner and demanded his wallet; forced entry plus violence inside the victim's space (owner's rule). Fled at police sirens.",
"status": "proposed 2026-09-09 (new case)"
},
{
"target": "DB id 468",
"field": "kidnappings (detention)",
"current": null,
"proposed": 0,
"confidence": "CHECK",
"basis": "record: founder found dead after a fall from the 30th floor, apartment ransacked, circumstances undetermined; no source on file shows he was held. Null today; set 0 unless a source shows detention.",
"status": "proposed 2026-09-09 (new case)"
},
{
"target": "DB id 483",
"field": "kidnappings (detention)",
"current": 0,
"proposed": 0,
"confidence": "RULE",
"basis": "record: a traffic officer abused lawful detention procedures to take phones and drain wallets; the stop itself was lawful and the theft covert, so no detention used to force submission. Stays 0, noted for consistency.",
"status": "confirmed 2026-09-09 (new case)"
},
{
"target": "DB id 486",
"field": "kidnappings (detention)",
"current": 0,
"proposed": 0,
"confidence": "RULE",
"basis": "record: gunpoint robbery on Biscayne Blvd, watch taken from the wrist with death threats; no holding, no entry into the victim's space. Stays 0.",
"status": "confirmed 2026-09-09 (new case)"
}
]