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
@@ -0,0 +1,59 @@
Gang kidnapped barber they mistook for crypto billionaire
You must update your payment details via My Account or by clicking update payment details to keep your subscription.
We've tried to contact you several times as we haven't been able to take payment. You must update your payment details via My Account or by clicking update payment details to keep your subscription.
We've tried to contact you several times as we haven't been able to take payment. You must update your payment details via My Account, otherwise your subscription will terminate.
More from The Times and The Sunday TimesTap 'Menu' and then 'Explore'Tap 'Menu' and then 'Explore'
Quentin Cepeljac was fooled into travelling from Belgium to London, but was dumped at St Pancras station after thieves found he did not have £500,000
A kidnap gang dumped a celebrity barber at a railway station after mistaking him for a cryptocurrency billionaire.
Quentin Cepeljac, 21, who cuts the hair of several Belgian football stars, was tricked into travelling from Belgium to London by the thieves.
Cepeljac had been befriended on TikTok and Instagram by Davina Raaymakers, 20, who is also Belgian. After he told her that he was a successful cryptocurrency dealer, she invited him to spend a weekend with her at a tenth-floor luxury flat in central London.
Davina Raaymakers befriended Cepeljac on TikTok and invited him to London
Raaymakers had told Cepeljac that she came from a wealthy family with a number of homes abroad, and they met in Brussels before his visit to London.
When Cepeljac arrived in London to meet Raaymakers on May 5 last year, she told him that the luxury flat was unavailable and they would stay at one of her parents Airbnb apartments. She led him to a bedsit in Shepherds Bush where he was attacked.
Cepeljacs kidnappers held a machete to his neck and a knife to his leg, and punched and kicked him in the stomach. At this point, Raaymakers left the flat. During the nine-hour ordeal, the gang also showed Cepeljac a video of an apparent stabbing to convince him they were capable of lethal violence.
The gang, who included Raaymakers boyfriend Adlan Haji, were under the impression that Cepeljac was a cryptocurrency billionaire. After taking his passport, phone and embossed Louis Vuitton wallet, they demanded he transfer them £500,000 from his crypto account.
Adlan Haji, Raaymakers boyfriend, was part of the plot
Cepeljac replied: “I dont have that kind of money”. Haji, 28, said: “Are you kidding me?”
The kidnappers reduced their demand to £50,000, before settling for £2,000 from Cepeljacs current account after learning that he only held £6.71 in crypto. They forced him to call a friend in Belgium to ask for more money. The friend called Belgian police, who contacted Scotland Yard.
Cepeljacs kidnappers eventually accepted that he was of no use to them and took him in a taxi to St Pancras station the following morning so he could take a Eurostar train home to Brussels. Before leaving him, they returned his passport and phone.
The Metropolitan Polices Flying Squad was waiting for Cepeljac at the station. He led officers back to the flat in Shepherds Bush, which had been forensically cleaned with bleach. They established that the flat was an Airbnb rental and used phone data to track down the kidnappers who had booked it.
Isleworth crown court heard that Raaymakers and Haji were joined in the plot by Alexander Khalil, 30, and Omar Sharif, 24. During Cepeljacs abduction, Sharif had to leave the flat because he was electronically tagged and was required to be home by 8pm.
Cepeljac said that he suffered from flashbacks, had difficulty sleeping and leaving his home, and found it difficult to trust other people, especially women.
The defendants, who are all unemployed and from around London, admitted blackmail and will be sentenced later. Recorder Nicola Shannon said they would face long jail terms.
Our Claire was murdered by a stranger. Why does no one seem to care?
English police forces loosen fitness test requirements
Tributes paid to vet killed with her children in Northern Ireland
Trump flies in to warn: immigration is killing Europe
Kate Mansey, Assistant Editor | Lara Wildenberg
Two in five phones stolen across Europe taken in Britain
Andrew Ellson, Consumer Affairs Correspondent
Hotel or villa? Theres only one winner on a grown-up Greek trip
+8 -6
View File
@@ -5,11 +5,13 @@
"field": "url",
"url": "https://www.thetimes.com/uk/crime/article/gang-kidnapped-barber-they-mistook-for-crypto-billionaire-n0hgdshvm",
"host": "thetimes.com",
"fetched_at": "2026-08-06T13:46:18+00:00",
"verdict": "THIN",
"method": "raw",
"http": 200,
"chars": 38,
"note": "extractor recovered very little; needs the WebFetch path or a site-specific rule"
"fetched_at": "2026-09-05T13:25:12+00:00",
"verdict": "FETCHED",
"method": "wayback",
"snapshot": "20250726053648",
"archive_url": "http://web.archive.org/web/20250726053648/https://www.thetimes.com/uk/crime/article/gang-kidnapped-barber-they-mistook-for-crypto-billionaire-n0hgdshvm",
"chars": 4415,
"sha256": "2c48a9e1ac9e0badb459076eb020a682173f01fb3957a109638c79d224877017",
"live_verdict": "THIN"
}
]