Chaim
d6608ce849
G12 Leak-Guard / leak-guard (pull_request) Successful in 5s
Lint — undefined names / undefined-names (pull_request) Successful in 11s
feat(precedents): citation_formatted דטרמיניסטי בקוד — Gemini מחלץ רכיבים, לא מעצב (#145)
הבעיה (#145): מחלץ-המטא ביקש מ-Gemini Flash *לעצב* את מראה-המקום המלא
(citation_formatted). ב-JSON-mode חופשי (ללא responseSchema) המודל החזיר JSON
תקין ומלא אך **השמיט בעקביות** דווקא את השדה הזה — אומת על 8070-05-25,
1194-12-25, 1200-12-25 (וגם כשהצדדים זוהו). השדה הקשה ביותר (עיצוב מחרוזת) +
היתר-בפרומפט להשאיר ריק → Flash מפיל אותו.
הפתרון: citation_formatted הוא **שדה-תצוגה נגזר** (X1 §3 / INV-ID2) — מורכב
דטרמיניסטית מרכיבים מובְנים, לא מעוצב ע"י LLM. תפקיד ה-LLM מצטמצם לחילוץ
רכיבים אמינים (שורת-הצדדים, קידומת-ההליך לפסקי-בית-משפט).
- db.format_precedent_citation(record) — מרכיב לפי כללי-הציטוט-האחיד:
ועדת-ערר (מחוזית/ארצית/בל"מ) מ-proceeding_type+district+source_kind;
פסקי-בית-משפט מ-court_prefix(LLM)+district-abbrev. מוציא docket נקי
מ-case_number מזוהם ("עע\"מ 683/13"→"683/13"). נמנע ('') כשחסר רכיב
(צדדים/docket/תאריך/קידומת) — abstention על המצאה (INV-AH).
- case_law.parties (V39) — שורת "עורר נ' משיב" כבסיס re-derivable.
- מחלץ-המטא: הפרומפט מחלץ parties+citation_prefix (לא citation_formatted);
apply_to_record מרכיב דטרמיניסטית מהרשומה-האפקטיבית וממלא רק שדה ריק
(עריכות-יו"ר נשמרות).
- scripts/backfill_precedent_citations.py — backfill 2-מעברים (דטרמיניסטי→LLM),
מדווח שורות-נמנעות, idempotent.
אומת: 3 הרשומות הידניות משוחזרות תו-בתו; פסק עליון אמיתי מולא end-to-end
(עע"מ 683/13 ... נבו 3.9.2015). test_fu2b_reconcile ✓.
Invariants: INV-ID2/X1§3 (ציטוט=תצוגה נגזר, לא מפתח) · INV-AH (abstention,
אפס המצאה) · G1 (docket נקי) · G2 (מסלול-יחיד — מחליף את נתיב-ה-LLM, לא מקביל).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 03:37:53 +00:00
..
2026-05-10 05:58:52 +00:00
2026-06-10 09:52:35 +00:00
2026-05-31 18:42:13 +00:00
2026-06-13 11:28:16 +00:00
2026-06-12 07:25:54 +00:00
2026-05-27 10:06:22 +00:00
2026-04-14 15:28:16 +00:00
2026-05-03 20:04:33 +00:00
2026-05-26 08:34:40 +00:00
2026-06-08 06:53:31 +00:00
2026-05-26 11:26:52 +00:00
2026-06-06 19:45:43 +00:00
2026-06-14 13:46:26 +00:00
2026-06-15 03:37:53 +00:00
2026-06-06 18:10:01 +00:00
2026-04-03 10:21:47 +00:00
2026-04-09 16:45:49 +00:00
2026-06-06 19:55:45 +00:00
2026-06-14 09:58:45 +00:00
2026-05-26 11:26:52 +00:00
2026-04-16 18:49:10 +00:00
2026-06-08 11:59:21 +00:00
2026-04-16 18:49:30 +00:00
2026-06-08 08:57:23 +00:00
2026-06-08 08:57:23 +00:00
2026-06-13 09:03:07 +00:00
2026-06-08 08:57:23 +00:00
2026-05-31 14:58:13 +00:00
2026-05-31 14:58:13 +00:00
2026-06-12 10:31:56 +00:00
2026-06-12 10:50:12 +00:00
2026-05-04 17:47:05 +00:00
2026-05-31 08:57:42 +00:00
2026-05-31 14:12:45 +00:00
2026-06-07 18:18:41 +00:00
2026-06-07 20:12:58 +00:00
2026-06-11 16:13:24 +00:00
2026-06-06 21:29:46 +00:00
2026-06-15 03:18:56 +00:00
2026-06-06 19:55:45 +00:00
2026-06-12 04:22:48 +00:00
2026-06-08 05:01:03 +00:00
2026-06-12 07:19:48 +00:00
2026-06-12 06:59:34 +00:00
2026-06-07 18:18:41 +00:00
2026-06-08 08:07:45 +00:00
2026-06-07 20:33:18 +00:00
2026-06-10 09:40:42 +00:00
2026-06-07 21:04:44 +00:00
2026-06-07 20:31:53 +00:00
2026-06-07 21:04:44 +00:00
2026-06-13 08:08:19 +00:00
2026-06-13 08:08:19 +00:00
2026-06-13 08:08:19 +00:00
2026-06-08 05:13:49 +00:00
2026-06-07 19:43:53 +00:00
2026-06-13 11:28:16 +00:00
2026-06-11 17:48:38 +00:00
2026-06-06 15:34:49 +00:00
2026-05-26 11:26:52 +00:00
2026-05-03 19:24:52 +00:00
2026-06-11 16:50:50 +00:00
2026-06-06 19:45:43 +00:00
2026-04-14 15:55:55 +00:00
2026-05-04 17:25:45 +00:00
2026-05-26 09:34:23 +00:00
2026-06-07 19:43:53 +00:00
2026-06-03 07:55:42 +00:00
2026-06-11 22:09:38 +00:00
2026-05-03 16:43:48 +00:00
2026-06-12 06:24:10 +00:00
2026-04-03 10:21:47 +00:00
2026-04-16 18:49:30 +00:00
2026-06-15 03:37:53 +00:00
2026-06-10 09:40:42 +00:00
2026-06-11 19:57:12 +00:00
2026-06-08 10:57:57 +00:00
2026-05-31 11:14:44 +00:00
2026-05-04 17:25:45 +00:00
2026-05-30 11:26:19 +00:00
2026-05-26 09:17:33 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00