feat(digests): case-contextual digest radar — surface unlinked digests as chair leads (X12) #320

Merged
chaim merged 1 commits from worktree-digest-radar into main 2026-06-20 16:45:49 +00:00
Owner

הבעיה

יומון לא-מקושר (פס"ד שעוד אין לנו) נלכד גלובלית (inbox פסיקה-חסרה) אבל לא צף בהקשר התיק שמוכרע — אז פס"ד רלוונטי שמוכר רק דרך יומון יכול ליפול בין הכיסאות בדיוק כשזה חשוב. ("אם הוא נופל אז אני לא אדע עליו".)

הפתרון

  • db.search_digests_semantic: פילטר linked_only (False = רק לא-מקושרים — קבוצת-היעד של הרדאר).
  • digest_library.case_digest_radar(case_number): בונה נושא-תיק מ-title + appeal_subtype + טענות-המנתח, מטמיע פעם אחת, מתאים מול יומונים לא-מקושרים, ומחזיר לידים עם סטטוס-הפער + פעולה מוצעת (new_lead/gap_open/fetched/available_link).
  • כלי-MCP digest_radar + endpoint GET /api/cases/{n}/digest-radar (לסוכן ולפאנל-התיק העתידי).

INV-DIG1 נשמר: radar בלבד — כל ליד מצביע על הפס"ד (משיכה/העלאה/קישור), לעולם לא מצטט את היומון. read-only.

אימות

נבדק על 8124-09-24 (היטל השבחה): 5 יומונים לא-מקושרים בנושא, ציונים 0.64–0.72 (סמכות ועדה, מס אמת, שומה מכרעת…). ast.parse נקי ל-5 המודולים.

הפאנל הגלוי בדף-התיק = שינוי-UI נפרד → יעבור דרך שער-העיצוב.

Invariants

G2 (שימוש-חוזר בחיפוש-הסמנטי-של-היומונים + resolvers של פער/ציטוט) · INV-DIG1 (אין ציטוט-יומון) · INV-DIG3 (הצפת-פער). ללא שינוי-סכמה.

🤖 Generated with Claude Code

## הבעיה יומון לא-מקושר (פס"ד שעוד אין לנו) נלכד גלובלית (inbox פסיקה-חסרה) אבל **לא צף בהקשר התיק שמוכרע** — אז פס"ד רלוונטי שמוכר רק דרך יומון יכול ליפול בין הכיסאות בדיוק כשזה חשוב. ("אם הוא נופל אז אני לא אדע עליו".) ## הפתרון - `db.search_digests_semantic`: פילטר `linked_only` (False = רק לא-מקושרים — קבוצת-היעד של הרדאר). - `digest_library.case_digest_radar(case_number)`: בונה נושא-תיק מ-title + appeal_subtype + טענות-המנתח, מטמיע פעם אחת, מתאים מול יומונים **לא-מקושרים**, ומחזיר לידים עם סטטוס-הפער + פעולה מוצעת (`new_lead`/`gap_open`/`fetched`/`available_link`). - כלי-MCP `digest_radar` + endpoint `GET /api/cases/{n}/digest-radar` (לסוכן ולפאנל-התיק העתידי). **INV-DIG1 נשמר:** radar בלבד — כל ליד מצביע על **הפס"ד** (משיכה/העלאה/קישור), לעולם לא מצטט את היומון. read-only. ## אימות נבדק על **8124-09-24 (היטל השבחה)**: 5 יומונים לא-מקושרים בנושא, ציונים 0.64–0.72 (סמכות ועדה, מס אמת, שומה מכרעת…). `ast.parse` נקי ל-5 המודולים. **הפאנל הגלוי בדף-התיק = שינוי-UI נפרד → יעבור דרך שער-העיצוב.** ## Invariants G2 (שימוש-חוזר בחיפוש-הסמנטי-של-היומונים + resolvers של פער/ציטוט) · INV-DIG1 (אין ציטוט-יומון) · INV-DIG3 (הצפת-פער). ללא שינוי-סכמה. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-20 16:45:40 +00:00
feat(digests): case-contextual digest radar — surface unlinked digests as chair leads (X12)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 5s
Lint — undefined names / undefined-names (pull_request) Successful in 14s
70f93c3bd4
A digest pointing at a ruling we don't hold yet ("unlinked") was captured globally
(missing_precedents inbox) but never surfaced IN THE CONTEXT of the case being
decided — so a relevant ruling known only via a digest could fall through the cracks
at the moment it matters. Adds the case-contextual radar:

- db.search_digests_semantic: new `linked_only` filter (False = unlinked-only target set).
- digest_library.case_digest_radar(case_number): builds the case topic from title +
  appeal_subtype + the analyst's claims, embeds once, matches against UNLINKED digests,
  and returns leads enriched with the underlying ruling's gap status + suggested action
  (new_lead / gap_open / fetched / available_link).
- MCP tool `digest_radar` + endpoint GET /api/cases/{n}/digest-radar (for the agent and
  the future case-page lead).

INV-DIG1 preserved: radar only — every lead points at the underlying RULING (fetch /
upload / link), never cites the digest. Read-only.

Validated on 8124-09-24 (היטל השבחה): 5 on-topic unlinked digests, scores 0.64–0.72.
The visible case-page panel is a separate UI change → goes through the design gate.

Invariants: G2 (reuses the one digest semantic-search + gap/citation resolvers),
INV-DIG1 (no digest citation), INV-DIG3 (gap surfacing). No schema change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit cc8fd0b853 into main 2026-06-20 16:45:49 +00:00
chaim deleted branch worktree-digest-radar 2026-06-20 16:45:49 +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#320