fix(extraction): מספר-תיק שהומצא נכתב לשדה-הזהות — עיגון בטקסט לפני כתיבה (#232 מלכודת 3) #432

Merged
chaim merged 1 commits from worktree-docket-grounding into main 2026-08-05 10:46:37 +00:00
Owner

ערר (מרכז) 1094-09-19 (פדילה) נשמר כ-1094-09-14. _is_clean_docket בדק צורה בלבד — שתי הצורות תקינות, כך שספרה שגויה עברה את השער וניתקה את השורה מכל הפניה לתיק האמיתי.

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

התיקון: _docket_grounded() דורש שכל קבוצת-ספרות תופיע בטקסט ההחלטה או בערך שהיא מחליפה. סובלני למפריד, לרווחים ולתווי-כיווניות (RLM/LRM בתוך המספר ב-PDF עברי). סירוב מלווה logger.warning (§6). בנוסף הפרומפט תוקן — הדוגמאות היו דו-חלקיות בלבד והטו נגד docket תלת-חלקי של ועדות ערר.

אימות מול הקורפוס החי (386 שורות): מתוך 50 השורות שהנרמול חל עליהן — 0 נחסמות.

invariants: INV-AH · G1 · §6

7 טסטים חדשים (הראשון משחזר את הרגרסיה); 521 עוברים; 3 שערי-CI ירוקים.

ערר (מרכז) 1094-09-19 (פדילה) נשמר כ-`1094-09-14`. `_is_clean_docket` בדק **צורה בלבד** — שתי הצורות תקינות, כך שספרה שגויה עברה את השער וניתקה את השורה מכל הפניה לתיק האמיתי. שורש נוסף שהתגלה: המספר אינו מופיע ב-`full_text` כלל (הטקסט מתחיל ב"בפני:") — המודל הפיק ספרות בלי עיגון במקור. **התיקון:** `_docket_grounded()` דורש שכל קבוצת-ספרות תופיע בטקסט ההחלטה או בערך שהיא מחליפה. סובלני למפריד, לרווחים ולתווי-כיווניות (RLM/LRM בתוך המספר ב-PDF עברי). סירוב מלווה `logger.warning` (§6). בנוסף הפרומפט תוקן — הדוגמאות היו דו-חלקיות בלבד והטו נגד docket תלת-חלקי של ועדות ערר. **אימות מול הקורפוס החי (386 שורות):** מתוך 50 השורות שהנרמול חל עליהן — **0 נחסמות**. **invariants:** INV-AH · G1 · §6 7 טסטים חדשים (הראשון משחזר את הרגרסיה); 521 עוברים; 3 שערי-CI ירוקים.
chaim added 1 commit 2026-08-05 10:45:40 +00:00
fix(extraction): מספר-תיק שהומצא נכתב לשדה-הזהות — עיגון בטקסט לפני כתיבה (#232 מלכודת 3)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 5s
INV-AG3 Agent Tool Grants / agent-tool-grants (pull_request) Successful in 5s
Lint — undefined names / undefined-names (pull_request) Successful in 11s
63387c0d7d
ערר (מרכז) 1094-09-19 (פדילה) נשמר כ-`1094-09-14` בעוד כל חמשת מסמכי
התיק גורסים ...-19. `_is_clean_docket` בדק **צורה בלבד**, ושתי הצורות
תקינות — כך שספרה שגויה אחת עברה את השער וניתקה את השורה מכל הפניה
לתיק האמיתי. `case_number` הוא שדה-זהות; זה לא שדה-תצוגה שאפשר לתקן
בקריאה.

שורש נוסף שהתגלה תוך כדי: ב-1094-09-19 המספר **אינו מופיע ב-full_text
כלל** (הטקסט מתחיל ב"בפני:"), כלומר המודל הפיק ספרות שאין להן עיגון
במקור — בדיוק מה ש-INV-AH בא למנוע.

מה שונה
- `_docket_grounded()` — כל קבוצת-ספרות של ה-docket חייבת להופיע, בסדר,
  בטקסט ההחלטה או בערך שהיא מחליפה. סובלני למפריד (`-` מול `/`), לרווחים
  סביבו, ולתווי-כיווניות (RLM/LRM) שנדחסים בתוך המספר ב-PDF עברי.
  המקורות לעולם אינם פלט-המודל עצמו — אחרת הבדיקה מעגלית.
- סירוב לכתוב מלווה `logger.warning` מפורש (§6) במקום להסתמך על הצורה.
- הפרומפט תוקן: הדוגמאות היו דו-חלקיות בלבד ('1062/24'), מה שהטה נגד
  docket תלת-חלקי של ועדות ערר. נוספו דוגמאות תלת-חלקיות והוראה מפורשת
  לא להשלים/לנחש/לתקן ספרה, ולהחזיר ריק כשהמספר אינו בטקסט.

אימות מול הקורפוס החי (386 שורות): מתוך 50 השורות שהנרמול חל עליהן
בפועל — **0 נחסמות**. הגארד חוסם רק ספרות שאין להן עיגון באף מקור.

invariants: INV-AH (quote-or-retract על שדה-זהות) · G1 (נרמול במקור) ·
§6 (סירוב מדווח, לא נבלע)

טסטים: 7 חדשים (tests/test_docket_grounding.py), הראשון שבהם משחזר בדיוק
את הרגרסיה — שתי הצורות עוברות את בדיקת-הצורה, רק הנכונה מעוגנת.
521 עוברים.
chaim merged commit 1544669c7a into main 2026-08-05 10:46:37 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/legal-ai#432