feat(sources): Wayback pass, automatic trimming, detention rule, ten cases re-sourced

Second and third rounds on the dossier pipeline, reviewed locally before commit.

Retrieval
- wayback_pass.py: retries every BLOCKED/DEAD/THIN/ERROR linked source through
  the Wayback Machine; blocks carry the snapshot date, archive URL and the live
  verdict. 143 slots retried: 93 fetched, 37 no snapshot, 12 script shells, 1 PDF.
- fetch_sources.py: fetch_wayback() helper.
- add_extra_sources.py: files staged extra_* finds (web search, not on the DB
  record) into the store with a provenance note.
- Cases re-sourced by web search: 248 (Oslo: Document.no, Avisa Oslo, NRK; the
  linked Le Parisien piece is case 242 and is marked OFF-CASE), 258 Kharkiv,
  260 Singapore, 358 Bangkok, 365 Las Vegas, 388 Verneuil-sur-Seine, 390 Zoersel,
  430 Homestead. 341 of 364 cases now hold a fetched article; 11, 66 and 399
  have no public text source (podcast, police video, direct victim report).

Trimming
- auto_trim.py: case-anchored furniture cut for UNTRIMMED blocks. Finds the body
  run that mentions the case, merges across subheadings and short furniture
  gaps, drops teasers, share bars, date/URL/caption lines and subscription
  pitches; refuses pages with no record term or almost no body. 302 blocks
  trimmed; 16 left on auto-trim-review.md (7 OFF-CASE suspects). Every cut is
  labelled AUTO-TRIMMED, UNREVIEWED in the dossier; the full extract stays in
  staging/. Decisions with anchors in trim-decisions-auto.json.
- build_cases.py / verify_all.py: banners for auto-trimmed and archived blocks,
  staged-file check extended to Wayback blocks, flag legend under the record.

Detention rule
- README "Definitions": the DB field `kidnappings` is the DETENTION violence
  type (victim, guard, staff or relative held to force submission or execute
  the theft), distinct from the Kidnapping scenario (taken away and held).
- detention-flag-review.md / detention-flag-corrections.json: 40 records
  reviewed with evidence; 30 set-to-1 proposals accepted by the owner on
  2026-09-06 (listed in corrections-approved.md), 10 still open.
- apply_detention_wording.py: "Violence Used" in the 70 reviewed summaries now
  names detention explicitly (62 of 70 labelled), supported by the summary's
  own text; idempotent; supersedes the batch scripts' wording.

Worklist and docs
- sofia-worklist.md: 248 decisions, detention rule item replacing the old
  "no abduction" item, fresh-search section for the textless cases.
- README-START-HERE.md: progress notes, run commands, next steps.
- Bug fixed in passing: Wayback blocks stored in-memory text with carriage
  returns; now stored as read back from disk.

verify_all.py PASSES (2321 checks).

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-06 19:36:45 +02:00
co-authored by Claude Fable 5.1
parent 499fd61f79
commit 439e83a4cb
588 changed files with 24800 additions and 13190 deletions
@@ -26,6 +26,9 @@ DATABASE RECORD
notes *Workplace invasion, not home
has_processed_date 0
created_at 2025-11-14 09:05:23
(flag legend: 'kidnappings' is the DETENTION flag — 1 when the victim was held against
their will at any point, tied, locked in, held at gunpoint or taken away; it is NOT the
same as the 'Kidnapping' scenario, which means taken away and held. See README, Definitions.)
AI SUMMARY [revised on review, verified against the sources in this file. Live DB still holds the shorter bulk-import summary — apply this to it.]
**Victims:** The unidentified owner of a Bitcoin trading company in the Al Nakhil area of Dubai, UAE, assaulted at his workplace.
@@ -34,7 +37,7 @@ AI SUMMARY [revised on review, verified against the sources in this file. Live
**Attack Method:** In April 2022 the nine robbers knocked on the door of the company's headquarters, entered, attacked the owner and took the cash by force. (This was a workplace robbery, not an abduction.)
**Violence Used:** He was assaulted during the robbery.
**Violence Used:** He was assaulted during the robbery; the source on file does not say whether anyone was restrained.
**Crypto Demanded/Stolen:** They stole Dh4,120,000 in cash from the Bitcoin trading company; no cryptocurrency itself was taken.
@@ -67,19 +70,19 @@ According to the victim's statement, he was surprised by nine robbers knocking o
The police identified them and arrested them. The Dubai Criminal Court convicted them and sentenced to three years in prison, and deportation from the state after serving their sentences.
------------------------------------------------------------------------------------------------
FETCHED ARTICLE 1 [RAW EXTRACT — NOT YET TRIMMED]
!! This is the whole page as extracted. It still contains site furniture,
!! and may contain teaser headlines for UNRELATED cases. Trim on read-through.
!! Do not quote from it without checking the passage belongs to this case.
FETCHED ARTICLE 1 [AUTO-TRIMMED — UNREVIEWED]
!! Furniture was cut by a script keyed on this case's record, not by a person.
!! It may still carry passages about OTHER cases from a round-up article.
!! The full page extract is kept in staging/ if a cut needs revisiting.
Source khaleejtimes.com
URL https://www.khaleejtimes.com/uae/crime/dubai-dh4-million-stolen-from-bitcoin-trader-9-people-jailed
Field url
Retrieved 2026-09-05T12:44:30+00:00 via raw HTTP retrieval, deterministic extraction (HTTP 200)
Language unknown
Kept paragraphs ALL 17 paragraphs, untrimmed
Length 1,714 chars
Integrity sha256 2cc6738367d278a2803d4aa6db24df2ab173b29ee90b74830541fecce200fcae
Trimmed NOT TRIMMED. Full page extract; trim on read-through.
Kept paragraphs headline [0] + 2-5 of 17
Length 632 chars
Integrity sha256 359dc291b81c9d8aae7cdcf0e2b1850ead3181268855e3fef81885fa6282ce12
Trimmed AUTO-TRIMMED, unreviewed: kept paragraphs 2-5 plus headline [0]; dropped 1 leading and 11 trailing paragraphs. Case-term hits on page: 8.
Caveat retrieved from a live page on the date above. Unlike text copied
from the spreadsheet, there is no second copy to hash it against.
------------------------------------------------------------------------------------------------
@@ -88,8 +91,6 @@ ORIGINAL (unknown, verbatim as retrieved)
Dubai: Dh4 million stolen from Bitcoin trader; 9 people jailed | Khaleej Times
Dubai: Dh4 million stolen from Bitcoin trader; 9 people jailed
The robbers knocked on the door of his company's headquarters before entering and assaulting him; they will be deported after serving their sentences
PUBLISHED: Mon 3 Oct 2022, 8:10 AM UPDATED: Mon 3 Oct 2022, 8:16 PM
@@ -98,28 +99,6 @@ A gang comprising nine people stole Dh 4,120,000 from the owner of a Bitcoin tra
The details of the case date back to last April, when the victim filed a report stating that he had been assaulted and robbed by force at his company's headquarters.
UAE President pardons Abdul Rahman Yusuf Al Qaradawi after criminal conviction
Sharjah Ruler approves Dh20,000 monthly living allowance for govt employees, other groups
US VP Vance says would not 'call it a war' with Iran, on categorising hostilities
Sharjah Police arrest man accused of killing two Kazakh sisters
US military disables 3 vessels, redirects 87 in ongoing Iran blockade
According to the victim's statement, he was surprised by nine robbers knocking on the door of his company and entering. They attacked him and stole the cash.
The police identified them and arrested them. The Dubai Criminal Court convicted them and sentenced to three years in prison, and deportation from the state after serving their sentences.
Dubai: Two jailed for threatening to kill couple, stealing Dh8,000 from them
UAE: New mobile police station launched in Sharjah
Trump says US may hit Iran's Pickaxe Mountain soon
UAE latest flight updates: Almost 20 services delayed or cancelled after renewed US-Iran attacks
================================================================================================
generated from attacks-export-Gart-website.json + reported_K&R | case 298
================================================================================================