feat(learning): FU-2 UI — התלבטות-הפאנל במסך-אישור היו"ר (#133) #220

Merged
chaim merged 1 commits from worktree-halacha-deliberation-ui into main 2026-06-12 06:19:50 +00:00
Owner

מה ולמה

מציג את התלבטות 3-השופטים (הצבעה+נימוק לכל לינאז' + ה-verdict) בתוך כרטיס-האישור הקיים של דפנה ב-/precedents → "ממתין לאישור". כך הכרעתה — תווית-הזהב שלולאת ה-active-learning לומדת ממנה — מיודעת בלמה הפאנל נחלק (סטנדרט קפדני↔תמצית). אושר ב-Claude Design (כרטיס 18-halacha-deliberation).

Backend (opt-in — ברירת-מחדל off, קוראים קיימים לא מושפעים)

  • db.list_halachot(include_panel_round=True)_annotate_panel_rounds מצרף את הסבב האחרון מ-halacha_panel_rounds (DISTINCT ON (halacha_id) … ORDER BY round_ts DESC).
  • GET /api/halachot?include_panel_round=true — פרמטר חדש בלבד.

Frontend

  • Halacha.panel_round (טיפוס ידני; ה-endpoint מחזיר dict רופף).
  • useHalachotPending מבקש include_panel_round בשני הדליים: clean (שאלת keep) ו-needsFix (nli/entailed — שם יושבות ההלכות המסומנות).
  • רכיב PanelDeliberation: טבלת 3-שופטים (✓נתמך / ✗הכלל-חורג + נימוק מלא), תג-ורדיקט "פיצול 2:1", ושורת "שורש המחלוקת" (קפדני↔תמצית) — מוצגת רק בפיצול על ציר ה-entailment. מוזרק אחרי רשת הכלל/ציטוט.

Invariants

  • INV-IA/G10 — שער יחיד, אין עמוד/שער חדש; display-only, לא נוגע ב-review_status.
  • שער-עיצוב Claude Design — עבר ואושר לפני הקוד (פרוטוקול AGENTS.md).
  • #133/FU-2 — מצליב את התלבטות-הפאנל (FU-1) להכרעת-היו"ר.

בדיקה

  • py_compile + tsc --noEmit + eslint נקיים.
  • פונקציונלי: panel_round מצורף ל-6 ההלכות שיש להן סבב, 1994 בלי (opt-in נקי).

אחרי merge

deploy (הקונטיינר מגיש את ה-API+UI) + אופציונלית npm run api:types (ה-endpoint מחזיר dict רופף, אז הטיפוס ידני — לא חוסם). תלוי-נתונים: רוב 362 הממתינות עוד ללא סבב — צריך מעבר-לכידה (FU-1 dry-run) לאחר git pull בעץ הראשי כדי שהטבלה תוצג לכולן.

## מה ולמה מציג את **התלבטות 3-השופטים** (הצבעה+נימוק לכל לינאז' + ה-verdict) בתוך כרטיס-האישור הקיים של דפנה ב-`/precedents` → "ממתין לאישור". כך הכרעתה — תווית-הזהב שלולאת ה-active-learning לומדת ממנה — מיודעת ב**למה** הפאנל נחלק (סטנדרט קפדני↔תמצית). אושר ב-Claude Design (כרטיס `18-halacha-deliberation`). ## Backend (opt-in — ברירת-מחדל off, קוראים קיימים לא מושפעים) - `db.list_halachot(include_panel_round=True)` → `_annotate_panel_rounds` מצרף את הסבב האחרון מ-`halacha_panel_rounds` (`DISTINCT ON (halacha_id) … ORDER BY round_ts DESC`). - `GET /api/halachot?include_panel_round=true` — פרמטר חדש בלבד. ## Frontend - `Halacha.panel_round` (טיפוס ידני; ה-endpoint מחזיר dict רופף). - `useHalachotPending` מבקש `include_panel_round` בשני הדליים: clean (שאלת keep) ו-needsFix (nli/entailed — שם יושבות ההלכות המסומנות). - רכיב `PanelDeliberation`: טבלת 3-שופטים (✓נתמך / ✗הכלל-חורג + נימוק מלא), תג-ורדיקט "פיצול 2:1", ושורת **"שורש המחלוקת"** (קפדני↔תמצית) — מוצגת רק בפיצול על ציר ה-entailment. מוזרק אחרי רשת הכלל/ציטוט. ## Invariants - **INV-IA/G10** — שער יחיד, אין עמוד/שער חדש; display-only, לא נוגע ב-`review_status`. - **שער-עיצוב Claude Design** — עבר ואושר לפני הקוד (פרוטוקול AGENTS.md). - **#133/FU-2** — מצליב את התלבטות-הפאנל (FU-1) להכרעת-היו"ר. ## בדיקה - `py_compile` + `tsc --noEmit` + `eslint` נקיים. - פונקציונלי: `panel_round` מצורף ל-6 ההלכות שיש להן סבב, 1994 בלי (opt-in נקי). ## אחרי merge deploy (הקונטיינר מגיש את ה-API+UI) + אופציונלית `npm run api:types` (ה-endpoint מחזיר dict רופף, אז הטיפוס ידני — לא חוסם). **תלוי-נתונים:** רוב 362 הממתינות עוד ללא סבב — צריך מעבר-לכידה (FU-1 dry-run) לאחר `git pull` בעץ הראשי כדי שהטבלה תוצג לכולן.
chaim added 1 commit 2026-06-12 06:19:43 +00:00
feat(learning): FU-2 UI — התלבטות-הפאנל במסך-אישור היו"ר (#133)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 6s
9c6896df90
מציג את התלבטות 3-השופטים (הצבעה+נימוק לכל לינאז' + ה-verdict)
בתוך כרטיס-האישור הקיים של דפנה ב-/precedents → "ממתין לאישור",
כדי שהכרעתה — תווית-הזהב שהלולאה לומדת ממנה — תהיה מיודעת ב*למה*
הפאנל נחלק. אושר ב-Claude Design (כרטיס 18-halacha-deliberation).

Backend (opt-in, ברירת-מחדל off — קוראים קיימים לא מושפעים):
- db.list_halachot(include_panel_round=True) → _annotate_panel_rounds
  מצרף את הסבב האחרון מ-halacha_panel_rounds (DISTINCT ON, latest).
- GET /api/halachot?include_panel_round=true.

Frontend:
- Halacha.panel_round (טיפוס ידני; ה-endpoint מחזיר dict).
- תור-הסקירה (useHalachotPending) מבקש include_panel_round בשני
  הדליים (clean=keep, needsFix=nli/entailed).
- רכיב PanelDeliberation: טבלת 3-שופטים (✓נתמך/✗הכלל-חורג + נימוק),
  תג-ורדיקט "פיצול 2:1", ושורת "שורש המחלוקת" (קפדני↔תמצית) רק
  בפיצול-entailment. מוזרק אחרי רשת הכלל/ציטוט.

שער יחיד — אין עמוד/שער חדש (INV-IA/G10); display-only, לא נוגע
ב-review_status. ולידציה: py_compile + tsc --noEmit + eslint נקיים;
בדיקה פונקציונלית: panel_round מצורף ל-6 שיש להן סבב, 1994 בלי.

חלק מ-#133 (FU-2). דורש deploy + (אופ') npm run api:types אחרי.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
chaim merged commit d292c06ecd into main 2026-06-12 06:19:50 +00:00
chaim deleted branch worktree-halacha-deliberation-ui 2026-06-12 06:19:51 +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#220