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

104 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 00 — סינתזה סופית — קורפוס-הפסיקה
> מאחדת 0106 + מבחן-אמת על 3 תיקים + nli-audit + **הכרעת-חיים הסופית** (§3): אפס-תור, אמינות=אזכור.
> אילוץ-העל: **אפס-ביקורת-אנושית — מוחלט.**
## 1. שתי שכבות — לא לבלבל
```text
שכבת-רקע = כל החילוץ הגולמי. אוטומטי, אין תור/שער/cap. נותן recall, מדורג-נמוך.
שכבת-מאומת = רק מה שיו"ר ציטף בפועל בהקשר. הסיגנל היחיד לאמינות. גדל לפי אזכורים.
```
(ההבחנה הישנה "רמה A=מה-לשמור / רמה B=מה-לצוף" התמזגה לכאן: לא שומרים/חותכים — **שומרים-הכל** כרקע,
והאזכור מקדם ל-trusted.)
## 2. ⚠️ מבחן-האמת ששינה את ההחלטה (8508-03-24) — שתי הרצות
תיק היטל-השבחה (יו"ר אחר) שמפיק 70 עקרונות. הרצנו **שני משטרים** על אותם 70:
```text
אגרסיבי (פאנל + cap/novelty): 70 → 3 ✗ אודיט-אובדן: ~22 עקרונות אמיתיים אבדו,
כולל הלכת לוסטרניק (ליבת חישוב היטל-השבחה!),
קשר-סיבתי, סף-פוטנציאל, כל המסד הפרוצדורלי (14/נטלים/ריבית)
מזוקק ("שמור-בספק", רעש בלבד): 70 → 70 ✓ "כולם בני-ציטוט; אין רעש-אמיתי; זוגות-קרובים
מוסיפים נדבך". כל עקרוני-הליבה נשמרו.
```
- **השורש לקריסת-האגרסיבי:** החילוץ שאל "איזה דין *חדש* יצרה הוועדה" (~3) — אבל RAG-לכתיבה צריך
"אילו עקרונות *בני-ציטוט שימושיים*" (~כל ה-70), **כולל יישומי-דוקטרינה-מוכרת**. מסנן "רק-חדש/בלי-יישומים"
סינן בדיוק את מה שהכותב צריך.
**האסימטריה המכריעה:**
```text
לחתוך → סיכון לאבד את הליבה (לוסטרניק), בלתי-הפיך בפועל ← עלות עצומה
לשמור → עולה כמעט-כלום; הרעש/הכפילויות שוקעים בדירוג ← עלות אפסית
```
**אישוש על 3 תיקים (אגרסיבי מול מזוקק):**
```text
תיק יו"ר קיים אגרסיבי אבדו-אמיתיים רעש מזוקק
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 — שתי שכבות מובחנות
```text
שכבת-רקע (לא-מאומת) = כל החילוץ הגולמי (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](daphna-precedent-network.md)), אך נבנה-מעצמו. **בינתיים מעט מאומתים — וזה בסדר**
(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.**