FU-2c — reconcile external case_law identifiers (GAP-08, #68) #17

Merged
chaim merged 1 commits from feat/fu2c-external-id-reconciliation into main 2026-05-31 14:13:26 +00:00
Owner

FU-2c — תיאום מזהי case_law חיצוני (GAP-08, #68)

המשך ל-FU-2b (internal). פסיקה חיצונית אחסנה ציטוט-מלא ב-case_number (מציין + docket + צדדים + תאריך-נבו) — הפרת INV-ID2/G1.

הכרעת-יו"ר 2026-05-31 (Option A): case_number חיצוני קנוני = מציין-הליך + docket, / נשמר (מוסכמת-ציטוט, לא /- של X1); צדדים/ערכאה/תאריך → citation_formatted.

הסקריפט

scripts/fu2c_reconcile_external_case_numbers.py — dry-run → סקירת-יו"ר → apply, במתכונת FU-2b:

  • חילוץ דטרמיניסטי designator+docket; פיצול flags ל-BLOCKING (MISMATCH / CIT_NO_DOCKET / DESIG_MISMATCH / DUP_CHECK / NO_DOCKET) מול ADVISORY (NO_CITATION — תיקון case_number עדיין בטוח)
  • --overrides CSV מבוקר להכרעת-יו"ר פר-רשומה
  • apply מוגבל ל-source_kind='external_upload' (יעד #68), אך cited_only/nevo_seed נשארים ב-VIEW כך ש-DUP_CHECK פורש על כל מרחב-הייחודיות החיצוני; collision-guard לפני כל UPDATE

הוחל בייצור 2026-05-31

  • 21 case_number מנורמלים + 3 citation_formatted מתואמים
    • D = פס"ד מאוחד בעליון (לויתן/קלמנוביץ) → docket מוביל 25226-04-25
    • 2×C ציטוט-ריק → הורכב מהמטא-דאטה
  • אהוד שפר עע"מ 317/10 נדחה — כפילות חוצת-source מול cited_only קיים (collision-guard עצר; → #70)
  • 49 רשומות cited_only מחוץ-להיקף → משימה חדשה #70 (צורות-ועדה NNNN-NN שה-extractor מפספס, dedup, "ערר אדלר" בלתי-פתיר)

חילוץ + gating אומתו offline על כל 24 הרשומות. גיבוי לרולבק: data/audit/fu2c-backup-20260531T140943Z.csv.

🤖 Generated with Claude Code

## FU-2c — תיאום מזהי `case_law` חיצוני (GAP-08, #68) המשך ל-FU-2b (internal). פסיקה חיצונית אחסנה ציטוט-מלא ב-`case_number` (מציין + docket + צדדים + תאריך-נבו) — הפרת INV-ID2/G1. **הכרעת-יו"ר 2026-05-31 (Option A):** `case_number` חיצוני קנוני = **מציין-הליך + docket**, `/` נשמר (מוסכמת-ציטוט, לא `/`→`-` של X1); צדדים/ערכאה/תאריך → `citation_formatted`. ### הסקריפט [`scripts/fu2c_reconcile_external_case_numbers.py`](scripts/fu2c_reconcile_external_case_numbers.py) — dry-run → סקירת-יו"ר → apply, במתכונת FU-2b: - חילוץ דטרמיניסטי designator+docket; פיצול flags ל-**BLOCKING** (MISMATCH / CIT_NO_DOCKET / DESIG_MISMATCH / DUP_CHECK / NO_DOCKET) מול **ADVISORY** (NO_CITATION — תיקון case_number עדיין בטוח) - `--overrides` CSV מבוקר להכרעת-יו"ר פר-רשומה - apply מוגבל ל-`source_kind='external_upload'` (יעד #68), אך `cited_only`/`nevo_seed` נשארים ב-VIEW כך ש-DUP_CHECK פורש על כל מרחב-הייחודיות החיצוני; **collision-guard** לפני כל UPDATE ### הוחל בייצור 2026-05-31 - **21** `case_number` מנורמלים + **3** `citation_formatted` מתואמים - D = פס"ד מאוחד בעליון (לויתן/קלמנוביץ) → docket מוביל `25226-04-25` - 2×C ציטוט-ריק → הורכב מהמטא-דאטה - **אהוד שפר** `עע"מ 317/10` נדחה — כפילות חוצת-source מול `cited_only` קיים (collision-guard עצר; → #70) - **49** רשומות `cited_only` מחוץ-להיקף → משימה חדשה **#70** (צורות-ועדה `NNNN-NN` שה-extractor מפספס, dedup, "ערר אדלר" בלתי-פתיר) חילוץ + gating אומתו offline על כל 24 הרשומות. גיבוי לרולבק: `data/audit/fu2c-backup-20260531T140943Z.csv`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-05-31 14:13:20 +00:00
External court precedents stored the full citation (designator + docket +
parties + Nevo date) inside case_number, violating INV-ID2/G1 (citation as
identifier). Chair decision 2026-05-31 (Option A): canonical external
case_number = proceeding-designator + docket, '/' preserved (court
convention, not X1's '/'→'-'); parties/court/date → citation_formatted.

scripts/fu2c_reconcile_external_case_numbers.py — deterministic dry-run →
chair-review → apply, mirroring FU-2b:
- extracts designator+docket; flags split into BLOCKING (MISMATCH /
  CIT_NO_DOCKET / DESIG_MISMATCH / DUP_CHECK / NO_DOCKET) vs ADVISORY
  (NO_CITATION — case_number fix still deterministic, missing citation is a
  separate gap), so advisory rows apply while uncertain identity does not.
- --overrides CSV (id,proposed_canonical,citation_formatted,reason) for
  audited chair adjudication of blocking rows.
- apply scoped to source_kind='external_upload' (task target) while keeping
  cited_only/nevo_seed in the reconciliation VIEW so DUP_CHECK spans the full
  external unique space; pre-flight collision guard before every UPDATE.

Applied to production 2026-05-31: 21 case_number normalized + 3
citation_formatted reconciled (D = consolidated Supreme Court judgment
לויתן/קלמנוביץ → lead docket 25226-04-25; 2×C empty citations composed from
metadata). אהוד שפר עע"מ 317/10 deferred — cross-source duplicate with an
existing cited_only reference (collision guard held; → #70). 49 cited_only
records out of scope → new task #70 (committee-form NNNN-NN dockets the
extractor misses, dedup, unresolvable "ערר אדלר"). Extraction + gating
verified offline on all 24 records.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit cfcac80de2 into main 2026-05-31 14:13:26 +00:00
chaim deleted branch feat/fu2c-external-id-reconciliation 2026-05-31 14:13:26 +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#17