feat(learning): FU-2 — לכידת seed אקטיב-לרנינג בשער-היו"ר הקיים (#133) #216

Merged
chaim merged 1 commits from worktree-halacha-active-learning-fu2 into main 2026-06-12 04:38:01 +00:00
Owner

מה

FU-2 של יוזמת ה-active-learning לפאנל-ההלכות (#133). כל הכרעת keep/drop חדה של היו"ר על הלכה שהפאנל כבר שפט (יש לה שורה ב-halacha_panel_rounds מ-FU-1) פולטת seed gold-set מתויג-יו"ר. זהו הסיגנל היחיד שמותר ללולאת-הלמידה ללמוד ממנו — ground-truth אנושי, לעולם לא הצבעות-הפאנל-עצמן (echo-chamber).

איך

  • db.seed_goldset_from_chair() — capture-only, idempotent (UPSERT על batch='chair-live', tagged_by='chair'). לעולם לא נוגע ב-halachot ולא זורק שגיאה לתוך השער (errors → logger.warning). ממפה approved/published→keep (is_holding=True), rejected→drop (is_holding=False); deferred/pending_review = נודניק, בלי seed.
  • db._chair_seed_label() — שער טהור (בלי DB) → guard ה-echo-chamber unit-testable offline; מסנן reviewer-מכונה (panel:* / corroborated*).
  • מחובר בשכבת-ה-DB: update_halacha (PATCH יחיד + MCP halacha_review) ו-update_halachot_batch (פעולת-קבוצה) — כך כל מסלולי-השער מתכנסים (נרמול-במקור). הפאנל (halacha_panel_approve.py) משתמש ב-SQL גולמי ולא ב-update_halachaאין echo-chamber מבני, וה-guard על reviewer-מכונה הוא defense-in-depth.
  • דורש שורת-פאנל קודמת: ערך-הזרע הוא זוג (הצבעות-פאנל ⋈ הכרעת-יו"ר) המזין זיקוק-rubric (FU-4) ומדידה (FU-5). הלכה שהפאנל לא שפט — נדלגת.
  • ה-batch chair-live נצרך דרך משטחי-ה-goldset הקיימים (/api/goldset/score?batch=, goldset_list) — בלי endpoint/שער חדש.

בדיקות

tests/test_chair_seed_gate.py — 10 בדיקות offline על מדיניות-השער + guard ה-echo-chamber (panel/corroborated חסומים; reviewer ריק = שער-אנוש לגיטימי כי ה-UI לא שולח reviewer). עוברות. רגרסיה: test_goldset_*, test_halacha_quality (80) .

Invariants

  • INV-G10 — שער-אישור יחיד נשמר; הזרע capture-only, לא משנה review_status.
  • INV-LRN1 — propose-only; אין auto-commit של rubric/סף (זו לכידה בלבד).
  • G1/G2 — נרמול-במקור בשכבת-DB, בלי מסלול-אישור מקביל; שימוש-חוזר ב-halacha_goldset.
  • anti-echo-chamber (#133) — seeds רק מ-ground-truth אנושי.
  • INV-IA — אין UI/שער חדש.

נדחה (מחוץ ל-FU-2)

  • תצוגת-הצבעות+הנמקות-הפאנל בתוך HalachaReviewPanel (סעיף אופציונלי ב-FU-2) — מצריכה שער-עיצוב Claude Design, לכן follow-up נפרד.
  • FU-3 (uncertainty-sampling), FU-4 (זיקוק-rubric), FU-5 (מדידה מול chair-live).

🤖 Generated with Claude Code

## מה FU-2 של יוזמת ה-active-learning לפאנל-ההלכות (#133). כל הכרעת **keep/drop חדה** של היו"ר על הלכה ש**הפאנל כבר שפט** (יש לה שורה ב-`halacha_panel_rounds` מ-FU-1) פולטת **seed gold-set מתויג-יו"ר**. זהו הסיגנל היחיד שמותר ללולאת-הלמידה ללמוד ממנו — ground-truth אנושי, **לעולם לא הצבעות-הפאנל-עצמן** (echo-chamber). ## איך - **`db.seed_goldset_from_chair()`** — capture-only, idempotent (UPSERT על `batch='chair-live'`, `tagged_by='chair'`). לעולם לא נוגע ב-`halachot` ולא זורק שגיאה לתוך השער (errors → `logger.warning`). ממפה `approved`/`published`→keep (`is_holding=True`), `rejected`→drop (`is_holding=False`); `deferred`/`pending_review` = נודניק, בלי seed. - **`db._chair_seed_label()`** — שער טהור (בלי DB) → guard ה-echo-chamber **unit-testable offline**; מסנן reviewer-מכונה (`panel:*` / `corroborated*`). - מחובר בשכבת-ה-DB: `update_halacha` (PATCH יחיד + MCP `halacha_review`) ו-`update_halachot_batch` (פעולת-קבוצה) — כך **כל מסלולי-השער מתכנסים** (נרמול-במקור). הפאנל (`halacha_panel_approve.py`) משתמש ב-SQL גולמי ולא ב-`update_halacha` → **אין echo-chamber מבני**, וה-guard על reviewer-מכונה הוא defense-in-depth. - **דורש שורת-פאנל קודמת**: ערך-הזרע הוא זוג (הצבעות-פאנל ⋈ הכרעת-יו"ר) המזין זיקוק-rubric (FU-4) ומדידה (FU-5). הלכה שהפאנל לא שפט — נדלגת. - ה-batch `chair-live` נצרך דרך משטחי-ה-goldset הקיימים (`/api/goldset/score?batch=`, `goldset_list`) — **בלי endpoint/שער חדש**. ## בדיקות `tests/test_chair_seed_gate.py` — 10 בדיקות offline על מדיניות-השער + guard ה-echo-chamber (panel/corroborated חסומים; reviewer ריק = שער-אנוש לגיטימי כי ה-UI לא שולח reviewer). ✅ עוברות. רגרסיה: `test_goldset_*`, `test_halacha_quality` (80) ✅. ## Invariants - **INV-G10** — שער-אישור יחיד נשמר; הזרע capture-only, לא משנה `review_status`. - **INV-LRN1** — propose-only; אין auto-commit של rubric/סף (זו לכידה בלבד). - **G1/G2** — נרמול-במקור בשכבת-DB, בלי מסלול-אישור מקביל; שימוש-חוזר ב-`halacha_goldset`. - **anti-echo-chamber (#133)** — seeds רק מ-ground-truth אנושי. - **INV-IA** — אין UI/שער חדש. ## נדחה (מחוץ ל-FU-2) - תצוגת-הצבעות+הנמקות-הפאנל בתוך `HalachaReviewPanel` (סעיף *אופציונלי* ב-FU-2) — מצריכה **שער-עיצוב Claude Design**, לכן follow-up נפרד. - FU-3 (uncertainty-sampling), FU-4 (זיקוק-rubric), FU-5 (מדידה מול `chair-live`). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-12 04:37:56 +00:00
feat(learning): FU-2 — לכידת seed אקטיב-לרנינג בשער-היו"ר הקיים (#133)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 5s
614c06ab60
כל הכרעת keep/drop חדה של היו"ר על הלכה שהפאנל כבר שפט (יש לה שורה
ב-halacha_panel_rounds) פולטת seed gold-set מתויג-יו"ר — הסיגנל היחיד
שמותר ללולאת הלמידה ללמוד ממנו. לימוד מהצבעות-הפאנל-עצמן = echo-chamber
ואסור; לכן הזרע נטבע אך-ורק מהכרעה אנושית.

- db.seed_goldset_from_chair(): capture-only, idempotent (UPSERT על
  batch='chair-live', tagged_by='chair'), לעולם לא נוגע ב-halachot ולא
  זורק שגיאה לתוך השער (INV-G10). ממפה approved/published→keep,
  rejected→drop; deferred/pending_review = נודניק, בלי seed.
- db._chair_seed_label(): שער טהור (בלי DB) → guard echo-chamber
  unit-testable; מסנן reviewer מכונה (panel:* / corroborated*).
- מחובר ב-db layer (update_halacha + update_halachot_batch) כך שכל
  מסלולי-השער מתכנסים (G1 נרמול-במקור, G2 בלי מסלול מקביל). הפאנל
  משתמש ב-SQL גולמי ולא ב-update_halacha → אין echo-chamber מבני.
- מצריך שורת-פאנל קודמת: ערך-הזרע הוא זוג (הצבעות-פאנל ⋈ הכרעת-יו"ר)
  שמזין זיקוק-rubric (FU-4) ומדידה (FU-5).
- test_chair_seed_gate.py: 10 בדיקות offline על מדיניות-השער + guard.

Invariants: INV-G10 (שער-אישור יחיד, capture-only) · INV-LRN1
(propose-only — אין auto-commit) · G1/G2 · anti-echo-chamber (#133).
אין UI/שער חדש (INV-IA). תצוגת-הצבעות-הפאנל ב-HalachaReviewPanel
(אופציונלי) נדחית — מצריכה שער-עיצוב Claude Design.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 56bc72760a into main 2026-06-12 04:38:01 +00:00
chaim deleted branch worktree-halacha-active-learning-fu2 2026-06-12 04:38:01 +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#216