feat(precedents): איחוד cited_only↔missing_precedents — גזירת פסיקה-חסרה (#143, G2) #269
Reference in New Issue
Block a user
Delete Branch "worktree-cited-only-missing-precedent-union"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
הבעיה (#143)
שתי מערכות מקבילות לאותו מושג ("פסיקה מצוטטת שטקסטה לא נקלט"): טבלת
missing_precedents(תור-רכישה ידני) מולcase_lawsource_kind='cited_only'(stubs מגרף-הציטוטים/X11). חפיפה≈0 → 31 ה-stubs לא הופיעו ב-/missing-precedents. כשל-G2.ההכרעה (G2)
missing_precedents= SoT-לתור יחיד;cited_only= מקור-גילוי נגזר (כמו יומונים מזינים את ה-radar). גוזרים רשומתmissing_precedents'open' לכל stub.התיקון
court_citation.citation_dedup_key— מפתח-dedup designator-aware ({designator}\|{docket}). ⚠️ מתקן פגם בתוכנית-הניתוח המקורית: dedup על מספר-בלבד היה ממזג בטעות אותו docket בערכאות שונות —בג"ץ 389/87≠ע"א 389/87(נמצאו 18 כאלה בקיים, הם לא כפילים).missing_precedents+citation_norm(מפתח-dedup) +discovery_source(manual|cited_only|digest|writer) + index. בלי UNIQUE — הקורפוס מחזיק לגיטימית אותו docket בערכאות שונות; ייחודיות נאכפת designator-aware בנתיב-היצירה.create_missing_precedent: מחשבcitation_normבכתיבה (G1), מקבלdiscovery_source+linked_case_law_id.find_missing_precedent_by_citation: dedup דרךcitation_norm(fallback ל-citation גולמי כשאין מספר).scripts/derive_missing_from_cited_only.py: backfillcitation_normל-291 + גזירת 31 (dry-run: 31 ייווצרו, 0 deduped).linked_case_law_id=stub,status='open'→ promote-in-place בהעלאת-טקסט דרך ON CONFLICT הקיים. אידמפוטנטי. יורץ אחרי הפריסה.תיאום
citation_norm+ נתיב-יצירה).discovery_source) ב-UI — נדחה לשער Claude Design.בדיקות
test_dedup_key_is_designator_aware(חדש) —בג"ץ≠ע"א,ערר≠בל"מ, גרסאות-format מתמזגות.undefined-names+leak-guardנקיים. (rebased על origin/main.)Invariants
citation_normמנורמל בכתיבה (designator-aware, לא over-merge)🤖 Generated with Claude Code
שתי מערכות מקבילות לאותו מושג ("פסיקה מצוטטת שטקסטה לא נקלט"): טבלת missing_precedents (תור-רכישה ידני של היו"ר) מול case_law source_kind='cited_only' (stubs מגרף-הציטוטים/X11). חפיפה≈0 → 31 ה-stubs לא הופיעו ב-/missing-precedents. הכרעה (G2): missing_precedents = SoT-לתור-יחיד; cited_only = מקור-גילוי נגזר (כמו יומונים מזינים radar). גוזרים רשומת missing_precedents 'open' לכל stub. תיקון: - court_citation.citation_dedup_key — מפתח-dedup **designator-aware** (`{designator}|{docket}`). **מתקן פגם בתוכנית-הניתוח:** dedup על מספר-בלבד היה ממזג בטעות אותו docket בערכאות שונות (בג"ץ 389/87 ≠ ע"א 389/87; 18 כאלה בקיים). - סכמה V40: missing_precedents מקבל citation_norm (מפתח-dedup) + discovery_source (manual|cited_only|digest|writer) + index. **בלי UNIQUE** — הקורפוס מחזיק לגיטימית אותו docket בערכאות שונות; ייחודיות נאכפת designator-aware בנתיב-היצירה. - create_missing_precedent: מחשב citation_norm בכתיבה (G1), מקבל discovery_source + linked_case_law_id. find_missing_precedent_by_citation: dedup דרך citation_norm (fallback ל-citation גולמי כשאין מספר). - scripts/derive_missing_from_cited_only.py: backfill citation_norm ל-291 + גזירת 31 (dry-run: 31 ייווצרו, 0 deduped). linked_case_law_id=stub, status=open → promote-in-place בהעלאת-טקסט דרך ON CONFLICT הקיים. אידמפוטנטי. תלוי-הקשר: #140 (הגדרת cited_only). מתואם עם #136 (digest→MP — אותו citation_norm + create path). תיקון-נתון יורץ אחרי הפריסה. בדיקות: test_dedup_key_is_designator_aware (בג"ץ≠ע"א, ערר≠בל"מ, גרסאות-format מתמזגות). כל 356 עוברות. guards נקיים. Invariants: G2 (SoT-לתור יחיד, cited_only נגזר), G1 (citation_norm מנורמל בכתיבה), G3 (idempotent upsert), G10 (שער-העלאה ידני נשמר), G12. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>