feat(X13 Tier-0): פענוח API של supremedecisions — אחזור פסקי עליון סדרתיים #146

Merged
chaim merged 1 commits from worktree-supreme-tier0 into main 2026-06-08 06:54:07 +00:00
Owner

למה

מבין 211 הפערים הפתוחים (missing_precedents): 99 פסקי-דין של העליון בפורמט-סדרתי (בג"ץ/בר"מ/עע"מ NNNN/YY) — בלי פורמט-נט, ולכן ניתנים להורדה רק מ-supremedecisions. פיצחתי את ה-API הציבורי שלו (ללא דפדפן, ללא CAPTCHA, ללא כרטיס-חכם). אומת חי על בג"ץ 3483/05 + בר"מ 10212/16.

(105 מהפערים הם ועדת-ערר → צריך נבו, לא ניתן; 5 admin+נט → Tier-1 ממילא.)

מה פוענח

POST Home/SearchVerdicts  body {document:{Year:"YYYY",CaseNum,OldMainNumFormat:true,SearchText:[…]}, lan:1}
     + כותרת X-Requested-With: XMLHttpRequest   → רשומות {Path,FileName,Type,Pages,…}
GET  Home/Download?path=&fileName=&type=4       → PDF

הניסיון הקודם נכשל רק על צורת-הבקשה (מחרוזת במקום אובייקט מובנה).

מה השתנה

  • court_fetch_supreme.py — שכתוב. המרת שנה 2→4 ספרות; בחירת מסמך best-first (פסק-דין→עמודים) עם דילוג על מסמכי published-report (s-prefix) שה-endpoint החופשי חוסם (fallback ל-החלטה substantive).
  • orchestrator — בקליטה מוצלחת סוגר missing_precedents תואמים (קישור ל-case_law). אומת end-to-end (בר"מ 10212/16 → קורפוס).
  • backfill_missing_precedents.py — מזין פערים-פתוחים fetchable (עליון+נט) לתור-האחזור; ה-drainer קולט+סוגר. dry-run כברירת-מחדל.
  • X13 spec + SCRIPTS.md (Tier-0 מפוענח, כבר לא מגבלה).

אימות

  • בג"ץ 3483/05 → 74KB PDF; בר"מ 10212/16 → 607KB PDF.
  • orchestrator end-to-end: בר"מ 10212/16 → case_law (source_type=court_ruling, provenance).
  • מגבלה: תיקים ישנים-מאוד שלא דיגיטצו (בג"ץ 389/87 → 0 רשומות) → manual.

🤖 Generated with Claude Code

## למה מבין 211 הפערים הפתוחים (`missing_precedents`): **99 פסקי-דין של העליון בפורמט-סדרתי** (בג"ץ/בר"מ/עע"מ NNNN/YY) — בלי פורמט-נט, ולכן ניתנים להורדה **רק מ-supremedecisions**. פיצחתי את ה-API הציבורי שלו (ללא דפדפן, ללא CAPTCHA, ללא כרטיס-חכם). אומת חי על בג"ץ 3483/05 + בר"מ 10212/16. > (105 מהפערים הם ועדת-ערר → צריך נבו, לא ניתן; 5 admin+נט → Tier-1 ממילא.) ## מה פוענח ``` POST Home/SearchVerdicts body {document:{Year:"YYYY",CaseNum,OldMainNumFormat:true,SearchText:[…]}, lan:1} + כותרת X-Requested-With: XMLHttpRequest → רשומות {Path,FileName,Type,Pages,…} GET Home/Download?path=&fileName=&type=4 → PDF ``` הניסיון הקודם נכשל **רק על צורת-הבקשה** (מחרוזת במקום אובייקט מובנה). ## מה השתנה - **`court_fetch_supreme.py`** — שכתוב. המרת שנה 2→4 ספרות; בחירת מסמך best-first (פסק-דין→עמודים) עם **דילוג על מסמכי published-report (`s`-prefix) שה-endpoint החופשי חוסם** (fallback ל-החלטה substantive). - **orchestrator** — בקליטה מוצלחת **סוגר missing_precedents תואמים** (קישור ל-case_law). אומת end-to-end (בר"מ 10212/16 → קורפוס). - **`backfill_missing_precedents.py`** — מזין פערים-פתוחים fetchable (עליון+נט) לתור-האחזור; ה-drainer קולט+סוגר. dry-run כברירת-מחדל. - X13 spec + SCRIPTS.md (Tier-0 מפוענח, כבר לא מגבלה). ## אימות - ✅ בג"ץ 3483/05 → 74KB PDF; בר"מ 10212/16 → 607KB PDF. - ✅ orchestrator end-to-end: בר"מ 10212/16 → case_law (source_type=court_ruling, provenance). - מגבלה: תיקים ישנים-מאוד שלא דיגיטצו (בג"ץ 389/87 → 0 רשומות) → manual. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-08 06:53:59 +00:00
The 211 open missing_precedents include 99 Supreme serial-format rulings
(בג"ץ/בר"מ/עע"מ NNNN/YY) with no נט-format triple — fetchable only from
supremedecisions.court.gov.il. Decoded its public JSON API (no browser, no
CAPTCHA, no smart-card); validated live on בג"ץ 3483/05 + בר"מ 10212/16.

- court_fetch_supreme.py: rewrite. POST Home/SearchVerdicts with a structured
  `document` ({Year:"YYYY", CaseNum, OldMainNumFormat:true, SearchText:[…]}) +
  X-Requested-With header → records; GET Home/Download?path=&fileName=&type=4 →
  PDF. The earlier attempt failed only on the request shape (string vs object).
  2-digit→4-digit year; try candidate docs best-first (פסק-דין→pages), skipping
  the published-report 's'-prefix files the free endpoint WAF-blocks.
- orchestrator: on successful ingest, close matching open missing_precedents
  (link to the new case_law). End-to-end validated (בר"מ 10212/16 → corpus).
- backfill_missing_precedents.py: enqueue fetchable open gaps (supreme + net)
  into court_fetch_jobs; the drainer fetches+ingests+closes. dry-run default.
- X13 spec + SCRIPTS.md updated (Tier-0 decoded, no longer a limitation).

Very old un-digitized Supreme cases (e.g. בג"ץ 389/87 → 0 records) → manual.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 64b9bd9d99 into main 2026-06-08 06:54:07 +00:00
chaim deleted branch worktree-supreme-tier0 2026-06-08 06:54:07 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/legal-ai#146