feat(learning): FU-4 — זיקוק-רובריקה propose-only מהכרעות-היו"ר (#133) #224

Merged
chaim merged 1 commits from worktree-halacha-active-learning-fu4 into main 2026-06-12 07:00:09 +00:00
Owner

מה

FU-4 של יוזמת ה-active-learning (#133) — סוגר את הלולאה. job תקופתי שמצליב את סבבי-הפאנל (FU-1: הצבעות+נימוקים) מול הכרעות-היו"ר (FU-2: seeds ב-chair-live), מזהה כשלים שיטתיים, ומציע KEEP_SYSTEM v2 + exemplars מופשטים — כדוח-diff לעיון-היו"ר. לעולם לא auto-applied (INV-LRN1).

איך

  • db.panel_rounds_vs_chair() — read-only LATERAL join: לכל הלכה עם seed chair-live (FU-2, האמת האנושית) + סבב-פאנל אחרון (FU-1) → הצבעות+נימוקי-3-השופטים מול keep/drop של היו"ר. הסיגנל היחיד = הכרעת-היו"ר, לא הצבעות-הפאנל (anti-echo-chamber).
  • scripts/halacha_rubric_distill.py:
    • analyze_pairs() — ליבה דטרמיניסטית טהורה (offline-testable): false-keep (פאנל שמר אוטומטית, יו"ר דחה — הטעות היקרה), false-drop, פיצולים-שהוכרעו, ושיעור-מחלוקת-עם-היו"ר לכל שופט; בוחר ראיות-מחלוקת מכוסות (cap).
    • הצעת-LLM מקומית (claude_session, tools="", אפס עלות): מזהה דפוסי-כשל ומציע נוסח KEEP_SYSTEM v2 + few-shot exemplars מופשטים (INV-LRN5 — בלי מהות-תיק).
    • כותב data/learning/rubric-proposal-<ts>.md עם diff(KEEP_SYSTEM → v2). אף שורת-קוד לא משתנה — אימוץ v2 = עריכה ידנית של הקבוע דרך PR.
    • מתחת ל-12 זוגות → "אין מספיק נתונים" (מצב נוכחי — seeds עדיין מצטברים ככל שהיו"ר סוקרת הלכות שהפאנל שפט).
    • --no-llm (סטטיסטיקה בלבד) / --limit N.

בדיקות

tests/test_rubric_distill.py — 8 בדיקות offline על analyze_pairs (false-keep/false-drop/split-resolution; מחלוקת נמדדת מול היו"ר ולא בין-השופטים; cap; chair=None מתעלם). smoke read-only מול ה-DB עבר (0 זוגות → insufficient-data, דוח נכתב). רגרסיה FU-2/3 + goldset + corpus-isolation (29) עברה.

תואם דפוס קיים

אותו עיקרון כמו style_lesson_panel.py / halacha_panel_audit.py: הפאנל מציע, ההטמעה נשארת שער-יו"ר ידני.

Invariants

  • INV-LRN1 — propose-only; אין auto-commit לרובריקה/סף. הדוח הוא הצעה בלבד.
  • INV-LRN5 — טוהר-רובריקה: exemplars/נוסח מופשטים, בלי מהות-תיק.
  • INV-G10 / anti-echo-chamber — האמת היחידה היא הכרעת-היו"ר; קריאה-בלבד מטבלאות-הלכידה.
  • G2 / INV-IA — בלי שער/עמוד/דגל מקבילים; דוח-קובץ + PR ידני.

הבא

FU-5 — הרחבת halacha_panel_calibrate.py למדידה מול batch chair-live (split-rate/precision לאורך-זמן) + anon-stability כמטריקת-בריאות נגד echo-chamber.

🤖 Generated with Claude Code

## מה FU-4 של יוזמת ה-active-learning (#133) — **סוגר את הלולאה**. job תקופתי שמצליב את סבבי-הפאנל (FU-1: הצבעות+נימוקים) מול הכרעות-היו"ר (FU-2: seeds ב-`chair-live`), מזהה **כשלים שיטתיים**, ומציע `KEEP_SYSTEM` v2 + exemplars מופשטים — כ**דוח-diff לעיון-היו"ר**. **לעולם לא auto-applied** (INV-LRN1). ## איך - **`db.panel_rounds_vs_chair()`** — read-only `LATERAL` join: לכל הלכה עם seed `chair-live` (FU-2, האמת האנושית) + סבב-פאנל אחרון (FU-1) → הצבעות+נימוקי-3-השופטים מול keep/drop של היו"ר. **הסיגנל היחיד = הכרעת-היו"ר**, לא הצבעות-הפאנל (anti-echo-chamber). - **`scripts/halacha_rubric_distill.py`**: - `analyze_pairs()` — ליבה דטרמיניסטית **טהורה** (offline-testable): `false-keep` (פאנל שמר אוטומטית, יו"ר דחה — הטעות היקרה), `false-drop`, פיצולים-שהוכרעו, ושיעור-מחלוקת-עם-היו"ר לכל שופט; בוחר ראיות-מחלוקת מכוסות (cap). - הצעת-LLM **מקומית** (`claude_session`, `tools=""`, אפס עלות): מזהה דפוסי-כשל ומציע נוסח `KEEP_SYSTEM` v2 + few-shot exemplars **מופשטים** (INV-LRN5 — בלי מהות-תיק). - כותב `data/learning/rubric-proposal-<ts>.md` עם `diff(KEEP_SYSTEM → v2)`. **אף שורת-קוד לא משתנה** — אימוץ v2 = עריכה ידנית של הקבוע דרך PR. - מתחת ל-12 זוגות → "אין מספיק נתונים" (מצב נוכחי — seeds עדיין מצטברים ככל שהיו"ר סוקרת הלכות שהפאנל שפט). - `--no-llm` (סטטיסטיקה בלבד) / `--limit N`. ## בדיקות `tests/test_rubric_distill.py` — 8 בדיקות **offline** על `analyze_pairs` (false-keep/false-drop/split-resolution; מחלוקת נמדדת מול היו"ר ולא בין-השופטים; cap; chair=None מתעלם). ✅ smoke read-only מול ה-DB עבר (0 זוגות → insufficient-data, דוח נכתב). רגרסיה FU-2/3 + goldset + corpus-isolation (29) עברה. ## תואם דפוס קיים אותו עיקרון כמו `style_lesson_panel.py` / `halacha_panel_audit.py`: **הפאנל מציע, ההטמעה נשארת שער-יו"ר ידני**. ## Invariants - **INV-LRN1** — propose-only; אין auto-commit לרובריקה/סף. הדוח הוא הצעה בלבד. - **INV-LRN5** — טוהר-רובריקה: exemplars/נוסח מופשטים, בלי מהות-תיק. - **INV-G10 / anti-echo-chamber** — האמת היחידה היא הכרעת-היו"ר; קריאה-בלבד מטבלאות-הלכידה. - **G2 / INV-IA** — בלי שער/עמוד/דגל מקבילים; דוח-קובץ + PR ידני. ## הבא FU-5 — הרחבת `halacha_panel_calibrate.py` למדידה מול batch `chair-live` (split-rate/precision לאורך-זמן) + `anon-stability` כמטריקת-בריאות נגד echo-chamber. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-12 07:00:04 +00:00
feat(learning): FU-4 — זיקוק-רובריקה propose-only מהכרעות-היו"ר (#133)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 5s
4cad17df3a
job תקופתי שסוגר את לולאת-הלמידה: מצליב את סבבי-הפאנל (FU-1, הצבעות+
נימוקים) מול הכרעות-היו"ר (FU-2 seeds), מזהה כשלים שיטתיים, ומציע
KEEP_SYSTEM v2 + exemplars מופשטים — כדוח-diff לעיון-היו"ר. לעולם לא
auto-applied.

- db.panel_rounds_vs_chair() — read-only LATERAL join: לכל הלכה עם seed
  chair-live (FU-2, אמת אנושית) + סבב-פאנל אחרון (FU-1) → הצבעות+נימוקי-
  3-השופטים מול keep/drop של היו"ר. הסיגנל היחיד = הכרעת-יו"ר, לא
  הצבעות-הפאנל (anti-echo-chamber, INV-LRN1).
- scripts/halacha_rubric_distill.py:
  • analyze_pairs() — ליבה דטרמיניסטית טהורה (offline-testable): false-keep
    (פאנל שמר, יו"ר דחה), false-drop, פיצולים-שהוכרעו, שיעור-מחלוקת-עם-
    היו"ר לכל שופט; בוחר ראיות-מחלוקת מכוסות.
  • הצעת-LLM מקומית (claude_session, tools="", אפס עלות): מזהה דפוסי-כשל
    ומציע נוסח-רובריקה v2 + exemplars מופשטים (INV-LRN5 — בלי מהות-תיק).
  • כותב data/learning/rubric-proposal-<ts>.md עם diff(KEEP_SYSTEM→v2);
    אף שורת-קוד לא משתנה. אימוץ = עריכה ידנית דרך PR (INV-LRN1).
  • <12 זוגות → "אין מספיק נתונים" (מצב נוכחי: seeds עדיין מצטברים).
  • --no-llm (סטטיסטיקה בלבד) / --limit N.
- tests/test_rubric_distill.py — 8 בדיקות offline על analyze_pairs.
- SCRIPTS.md עודכן. smoke read-only עבר (0 זוגות → insufficient-data).

תואם הדפוס הקיים (style_lesson_panel/halacha_panel_audit): פאנל מציע,
הטמעה נשארת שער-יו"ר ידני. Invariants: INV-LRN1 (propose-only) ·
INV-LRN5 (טוהר-רובריקה) · INV-G10 · anti-echo-chamber. בלי שער/UI חדש.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 412bd091cf into main 2026-06-12 07:00:09 +00:00
chaim deleted branch worktree-halacha-active-learning-fu4 2026-06-12 07:00:09 +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#224