Files
legal-ai/docs/precedent-corpus-redesign/00-final-synthesis.md
Chaim b9fa74b875
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 5s
Lint — undefined names / undefined-names (pull_request) Successful in 12s
feat(corpus): corpus redesign — eliminate halacha queue, verified-by-citation layer, rank-at-retrieval (#153)
Implements chaim's 2026-06-20 directive (5 steps; step 6 deferred):
1. No review queue — HALACHA_NO_REVIEW_QUEUE=true (auto-approve all → background);
   migration cleared 2,416 pending_review → approved.
2. Verified layer — halachot.verified/cite_count from chair citations
   (db.refresh_verified_layer + scripts/build_verified_layer.py runs citator on
   ALL committee decisions). 2,775 verified / 137 precedents.
3. Retrieval ranks verified ≫ background — HALACHA_VERIFIED_BOOST in both semantic
   + lexical halacha queries; filter now includes background (<> rejected).
5. Disabled destructive panel cap/novelty — HALACHA_PANEL_REGIME_ENABLED=false
   (8508/1049/1200 proved it lost 22-30 genuine principles incl. Lustrenik).
4. Ingest contract — going-forward already queues metadata; backfill_practice_area.py
   + 206 re-queued to the metadata drain.

Source of truth: docs/precedent-corpus-redesign/00-final-synthesis.md. Quality flags
are 97% false-positive (nli-audit) → no longer gate. UI queue removal → Claude Design
gate. 429 tests green (no regressions).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 13:55:00 +00:00

8.3 KiB
Raw Blame History

00 — סינתזה סופית — קורפוס-הפסיקה

מאחדת 0106 + מבחן-אמת על 3 תיקים + nli-audit + הכרעת-חיים הסופית (§3): אפס-תור, אמינות=אזכור. אילוץ-העל: אפס-ביקורת-אנושית — מוחלט.

1. שתי שכבות — לא לבלבל

שכבת-רקע   = כל החילוץ הגולמי. אוטומטי, אין תור/שער/cap. נותן recall, מדורג-נמוך.
שכבת-מאומת = רק מה שיו"ר ציטף בפועל בהקשר. הסיגנל היחיד לאמינות. גדל לפי אזכורים.

(ההבחנה הישנה "רמה A=מה-לשמור / רמה B=מה-לצוף" התמזגה לכאן: לא שומרים/חותכים — שומרים-הכל כרקע, והאזכור מקדם ל-trusted.)

2. ⚠️ מבחן-האמת ששינה את ההחלטה (8508-03-24) — שתי הרצות

תיק היטל-השבחה (יו"ר אחר) שמפיק 70 עקרונות. הרצנו שני משטרים על אותם 70:

אגרסיבי (פאנל + cap/novelty):   70 → 3    ✗ אודיט-אובדן: ~22 עקרונות אמיתיים אבדו,
                                              כולל הלכת לוסטרניק (ליבת חישוב היטל-השבחה!),
                                              קשר-סיבתי, סף-פוטנציאל, כל המסד הפרוצדורלי (14/נטלים/ריבית)
מזוקק ("שמור-בספק", רעש בלבד):  70 → 70   ✓ "כולם בני-ציטוט; אין רעש-אמיתי; זוגות-קרובים
                                              מוסיפים נדבך". כל עקרוני-הליבה נשמרו.
  • השורש לקריסת-האגרסיבי: החילוץ שאל "איזה דין חדש יצרה הוועדה" (~3) — אבל RAG-לכתיבה צריך "אילו עקרונות בני-ציטוט שימושיים" (~כל ה-70), כולל יישומי-דוקטרינה-מוכרת. מסנן "רק-חדש/בלי-יישומים" סינן בדיוק את מה שהכותב צריך.

האסימטריה המכריעה:

לחתוך → סיכון לאבד את הליבה (לוסטרניק), בלתי-הפיך בפועל   ← עלות עצומה
לשמור → עולה כמעט-כלום; הרעש/הכפילויות שוקעים בדירוג        ← עלות אפסית

אישוש על 3 תיקים (אגרסיבי מול מזוקק):

תיק          יו"ר          קיים   אגרסיבי   אבדו-אמיתיים   רעש   מזוקק
8508-03-24   ברק שוורץ      70    → 3       ~22            16    → 70
1049-06-21   יריב אבן חיים  43    → 1       ~27            15    → 43
1200-12-25   דפנה תמיר      35    → 3       ~30             2    → 35

מסקנה (מחקר + 3 תיקים = 4 ראיות בלתי-תלויות): לא לחתוך בכלל. האגרסיבי הרסני בעקביות (גם על החלטת-דפנה-עצמה). הרעש קטן (16→15→2) — "יותר מדי הלכות" היתה אבחנה-שגויה; הבעיה = תור-אישור + היעדר-דירוג, לא עודף-זבל. מתקנים את שניהם, והעקרונות בלתי-מזיקים (שוקעים בדירוג, נשמרים לאחזור).

3. ההחלטה (סופית — הכרעת-חיים 2026-06-20: "אמינות=אזכור, אפס-תור")

עמוד 1 — שתי שכבות מובחנות

שכבת-רקע (לא-מאומת)   = כל החילוץ הגולמי (5,489). אוטומטי לחלוטין. אין תור, אין שער, אין cap.
שכבת-מאומת (trusted)  = רק עיקרון שיו"ר ציטט בפועל, בהקשר שבו הביא אותו. גדל לפי אזכורים בלבד.

עמוד 2 — ביטול-מוחלט של תור-ההלכות

אין pending_review. אין קריאת-רשומות. אין אישור-ידני. אף פעם. החילוץ פשוט קורה (אוטומטי), והפלט יושב כשכבת-רקע. ה-2,402 הממתינות → מבוטלות. מאומת אף פעם לא בא מאישור — רק מאזכור.

דגלי-האיכות לא משמשים כשער — אומת ש-nli_unsupported=97% false-positive (29/30); ה"רעש" שהתור כביכול תפס היה מדומה. הדגלים, אם בכלל, סיגנל-דירוג-משני בלבד.

עמוד 3 — שכבת-המאומת = קאנון-אוטומטי מאזכורים

"מאומת" = precedent_internal_citations + match_context (ההקשר שבו היו"ר הביא את העיקרון). נבנית אוטומטית מכל החלטה שיו"ר כותב — כל אזכור מוסיף עיקרון-מאומת-בהקשר. זהו בדיוק הקאנון-הידני (daphna-precedent-network), אך נבנה-מעצמו. בינתיים מעט מאומתים — וזה בסדר (8508 = 0 אזכורים → 0 מאומתים). גדל עם השימוש (active-learning, INV-LRN).

עמוד 4 — אחזור: מאומת ≫ רקע

דירוג ב-RRF: מאומת (אזכור-יו"ר-בהקשר) צף ראשון; שכבת-הרקע נותנת recall ומדורגת-מתחת לפי importance (דפנה≫יו"ר-אחר≫סמכות). שום עיקרון לא נמחק; הרקע פשוט שוקע. (לוסטרניק נשמר ברקע, וצף ל-trusted ברגע שדפנה תצטט אותו.)

עמוד 5 — V41 canonical: לעקוף

100% תקוע + בנוי-על-אישור (סותר אפס-תור) → האחזור מדרג ישירות על halachot. V41 נדחה (הפיך).

4. תיקוני-תשתית (תנאי-מקדים)

  • חוזה-קליטה חיצוני: 87% בלי practice_area → חילוץ-אוטומטי/searchable=false (G1).
  • לצופף גרף-ציטוטים: citator על כל 363 (לא רק 42 של דפנה).
  • להטמיע פסיקת-קאנון-חסרה (חוף-השרון, הרמלין) דרך X13.

5. אבולוציית-ההחלטה

שלב עמדה
זמנית פאנל + cap-5 במקור
אחרי 8508/1049/1200 לא-לחתוך; cap הרסני (איבד לוסטרניק ב-3 תיקים, גם של דפנה)
אחרי nli-audit דגלי-איכות לא-אמינים (97% FP) — לא שער ולא מסנן
הכרעת-חיים (סופי) ביטול-תור מוחלט; "מאומת"=אזכור-יו"ר-בהקשר בלבד; גדל לפי אזכורים; מעט-מאומתים-בינתיים תקין

6. תוכנית-ביצוע (סדר)

  1. לבטל את תור-ההלכות — להסיר pending_review כשער; חילוץ→שכבת-רקע אוטומטית (אפס-אדם).
  2. שכבת-מאומת מאזכורים — לבנות מ-precedent_internal_citations+match_context; job שמעדכן בכל החלטה חדשה (גם להריץ citator על 91 הוועדות שטרם חולצו → להעשיר מאומתים).
  3. אחזור: מאומת ≫ רקע — boost ב-RRF (האחזור).
  4. תיקון-חוזה-קליטה (practice_area) — היגיינת-מקור.
  5. רוויזיית-PR#304 — לבטל cap+novelty (הרסניים). הפאנל/דגלים לכל-היותר סיגנל-דירוג.
  6. (נדחה) V41/conformal/הטמעת-קאנון-חסר.

7. סטטוס-מימוש (2026-06-20)

צעד סטטוס
5 — ביטול cap/novelty HALACHA_PANEL_REGIME_ENABLED=false (חזרה לחילוץ-עשיר-לרקע)
1 — ביטול תור HALACHA_NO_REVIEW_QUEUE=true (auto-approve הכל) + migration 2,416→0 pending
2 — שכבת-מאומת verified/cite_count + db.refresh_verified_layer + build_verified_layer.py; 2,775 מאומתים / 137 פס"ד
3 — אחזור מאומת≫רקע boost ב-2 שאילתות-האחזור (HALACHA_VERIFIED_BOOST); אומת חי (מאומתים צפים)
4 — חוזה-קליטה going-forward מחווט (ingest queues metadata); 206 הוזנו ל-drain + backfill_practice_area.py (backfill חסום-מכסה זמנית)
6 — V41/conformal/קאנון-חסר נדחה (כמתוכנן)

429 בדיקות ירוקות (אפס רגרסיות). שינוי-UI (הסרת תור-ההלכות מ-/precedents) → דרך שער Claude Design.