~2% מגיליונות "כל יום" הם לא-הכרעות (עדכוני-חקיקה/הודעות/ברכות) ללא ruling → החילוץ ה-decision-centric החזיר ריק → both-empty → מחזורי ב-self-heal. - SCHEMA_V32: `digest_kind` (decision/announcement/other) + backfill legacy בזול (יש citation→decision, אחרת announcement) — לפני שה-self-heal מסתמך עליו. - extractor: prompt מסווג + מחלץ תמיד concept/headline/summary; underlying_* רק ל-decision. extract מנרמל digest_kind. - enrich: שומר digest_kind; חילוץ מוצלח תמיד מסתיים ב-kind לא-ריק (ברירת-מחדל לפי citation אם המודל השמיט). - drain self-heal: הגדרת-כשל = completed עם digest_kind='' (במקום both-empty) → הודעות לא מנוסות-מחדש לנצח. - db: digest_kind ב-_DIGEST_COLS + update-whitelist (זורם ל-search/list/API). - X12 spec: תיעוד digest_kind + הגדרת-הכשל המתוקנת. אומת: V32 סיווג 533 (525 decision + 8 announcement, 0 unclassified — self-heal לא נוגע בהם). extract: 5163→decision+citation · 5060→announcement+concept, citation ריק (לא both-empty). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
15 KiB
X12 — יומונים כשכבת-גילוי (Digests Radar)
קובץ-תחום זה כפוף ל-חוקת המערכת. הוא מגדיר שכבת-גילוי (discovery/radar) מעל קורפוסי-הפסיקה: קליטה וחיפוש של יומונים — סיכומי-עמוד-אחד של משרד עפר טויסטר ("כל יום — היומון לענייני תכנון ובנייה") על פסק-דין/החלטה בודדים. היומון הוא מקור משני המצביע על פסק-הדין המקורי; הוא אינו נכנס לאף אחד מ-3 קורפוסי-הציטוט, אינו מצוטט בהחלטה, ואינו מחלץ הלכות. הוא נשען על INV-G2 (אין מסלול מקביל), INV-G4 (שלמות + אין בליעה שקטה) ו-INV-G9 (עקיבוּת-מקור), ומובחן מ-3 הקורפוסים של 03-retrieval.md.
TARGET, לא תיאור-מצב. התת-מערכת כולה היא יעד — אין כיום טבלת
digests, כלי-digest_*, ולא אינטגרציית-חוקר. כל רכיב מסומן מפורשות כ-audit-finding לבנייה (§6). כל טענה על הקודfile:line.
1. הרעיון — radar, לא קורפוס-ציטוט
חיים מקבל כמעט יומית מייל עם יומון: PDF של עמוד אחד שמסכם פסק-דין/החלטה בודדים בתחום רישוי-ובנייה / היטל-השבחה / פיצויים(ס'197). היומון אינו הטקסט המשפטי המקורי — הוא ניתוח של צד שלישי (עפר טויסטר), הנושא הבהרה מודפסת: "האמור הוא מידע ראשוני בלבד ואין הוא תחליף לייעוץ משפטי". במונחי-מחקר-משפטי זהו מקור משני (secondary authority): כלי-איתור והכוונה, לא סמכות שמצטטים בהחלטה.
הערך שלו עצום דווקא כ-radar: כל יומון הוא headnote + תג-נושא כתובים-מראש בידי מומחה, המצביע
על פסק-דין מקורי. כשמנסחים החלטה, search_digests מחזיר את היומון הרלוונטי → החוקר קורא את ניתוח
טויסטר כרקע → מחלץ את מראה-המקום של פסק-הדין המקורי → מביא את הפסק עצמו לקורפוס-הפסיקה הקיים
(הזמינות גבוהה) → ומצטט משם. היומון מצביע; הציטוט תמיד נשען על המקור.
2. מה היומון מכיל
מבנה קבוע (אומת מול הקבצים ב-data/precedents/incoming/, יומון 5158/5159/5160/5163):
| רכיב | דוגמה | תפקיד |
|---|---|---|
| מספר-יומון + תאריך-גיליון | יומון מס' 5163 7 ביוני 2026 |
מפתח-upsert + digest_date |
| תג-מושג | "שיקול הדעת המצומצם" |
ציר-נושא לחיפוש |
| כותרת-הלכה | ביהמ"ש - שיקול דעת הוועדה המחוזית אינו מצומצם... |
הסיכום בשורה |
| גוף-ניתוח (1–2 עמ') | ניתוח עפר-טויסטר | רקע + מקור-embedding |
| מראה-מקום בתחתית | עת"מ 46111-12-22 יכין-אפק... ניתן 3.6.26... שופטת: יעל טויסטר ישראלי |
השדה הקריטי — הגשר לפסק המקורי |
underlying_date (מתן הפסק) שונה מ-digest_date (גיליון היומון) — מקור-באגים נפוץ; חילוץ-המטא-דאטה
מבחין ביניהם מפורשות.
digest_kind (סיווג-גיליון, V32): רוב הגיליונות הם decision (סיכום פס"ד → underlying_citation),
אך חלקם announcement — עדכון/הודעה ללא הכרעה (חקיקה, נוהל, ברכת-שנה) שאין לו מראה-מקום. החילוץ
מסווג כל גיליון ותמיד מחלץ concept_tag/headline/summary (קיימים לכל סוג); underlying_citation
רק ל-decision. שימוש קריטי: הגדרת-"כשל" של ה-drain self-heal היא completed עם
digest_kind='' (מעולם לא סווג) — כך הודעה (kind=announcement, בלי citation) אינה נחשבת כשל
ואינה מנוסה-מחדש לנצח. ההיוריסטיקה הישנה ("שני השדות ריקים") טיפלה בהודעות בטעות כ-retry אינסופי.
3. למה זה לא קורפוס-ציטוט רביעי (הקושיה המרכזית — G2)
03-retrieval.md §1 מגדיר 3 קורפוסי-ציטוט: מסמכי-תיק+סגנון-דפנה, פסיקה-חיצונית, החלטות-ועדה. השאלה: האם יומונים = רביעי, ובכך הפרת INV-G2?
לא — בתנאי המסגור הנכון. G2 אוסר מסלול מקביל ליכולת קיימת. יומונים אינם עוד-מסלול-לאחזור-
פסיקה אלא bounded context נפרד: ישות נפרדת (digests, לא case_law), מטרה נפרדת (הצבעה ולא
ציטוט), וחוזה נפרד. ההבחנה הקנונית: 3 הקורפוסים הם עקיבים-בפלט (כל ציטוט בהחלטה חוזר אליהם —
INV-RET5/G9).
היומון לעולם אינו עקיב-אליו בפלט (INV-DIG1) — ולכן אינו קורפוס-ציטוט רביעי, אלא שכבה
מקדימה לקורפוסים. הפרדת-הקורפוס מ-INV-RET1
מתקיימת אוטומטית: search_digests שואל רק את digests, ואף כלי-חיפוש-פסיקה אינו נוגע בה
(הפרדה פיזית בטבלה, לא תנאי-סינון).
4. המנגנון (TARGET)
קליטה (מסלול קצר עצמאי — INV-DIG2):
יומון PDF → extract_text → content_hash (idempotent, INV-G3)
→ חילוץ-LLM: תג-מושג / כותרת-הלכה / תקציר / מראה-מקום / שני-תאריכים / תחום / תגיות
→ INSERT digests → embedding יחיד (תג+כותרת+תקציר+ניתוח) לחיפוש סמנטי בלבד
→ try_autolink(underlying_citation → case_law) [INV-DIG3]
⚠ ללא precedent_chunks, ללא halacha-extraction, ללא precedent metadata-extractor.
חיפוש + שימוש (radar — INV-DIG1):
legal-researcher: search_digests(סוגיה)
→ קורא ניתוח טויסטר + כותרת-הלכה = רקע/orientation בלבד
→ מחלץ את מראה-המקום של הפסק המקורי
→ הפסק בקורפוס? כן → אמת+צטט כרגיל (precedent_attach) + digest_link
לא → missing_precedent_create על *הפסק המקורי*
(notes="זוהה דרך יומון מס' NNNN") [INV-DIG3]
→ היומון לעולם אינו נרשם דרך precedent_attach ואינו supporting_quote. [INV-DIG1]
5. Invariants של התחום
INV-DIG1: היומון מצביע, לא מצוטט
כלל: רשומת-digest לעולם אינה משמשת כ-supporting_quote/provenance בפלט-החלטה; כל ציטוט
בהחלטה נגזר מקורפוס-ציטוט (case_law/document_chunks). היומון הוא מקור משני — כלי-איתור,
לא סמכות-מצוטטת. החוקר רושם אותו כ-radar (סעיף-דוח נפרד), לא דרך precedent_attach.
מקור-סמכות: היו"ר + ההבהרה המודפסת ביומון ("מידע ראשוני בלבד... אינו תחליף לייעוץ משפטי") —
invariant תוכן-משפטי/תפעולי, קשור ל-G9.
מקורות (פתוחים, להבחנת מקור-ראשוני↔משני): Georgetown Law Library — Secondary Sources research
guide ("secondary sources... are not the law") · Amy E. Sloan, Basic Legal Research: Tools and
Strategies — primary vs. persuasive/secondary authority · The Bluebook: A Uniform System of
Citation — סיווג סמכות-ראשונית מול משנית | סטטוס: verified
אכיפה: היעדר FK מ-decision_blocks/ציטוטים ל-digests; ולידציית-QA (05-qa-review.md)
שדוחה ציטוט שמקורו digest; הוראת-חוקר מפורשת (X4-agents.md, legal-researcher.md).
הפרה ידועה: — (תת-מערכת חדשה)
INV-DIG2: מסלול-קליטה נפרד-בכוונה — לא מסלול-פסיקה מקביל
כלל: קליטת-יומון היא bounded context נפרד, ואינה עוברת ב-precedent pipeline
(01-ingest.md): אין precedent_chunks, אין halacha-extraction, אין
precedent-metadata-extractor. מסלול קצר עצמאי (digest_library.ingest_digest) הבונה
embedding-יחיד לחיפוש סמנטי בלבד. הצהרה זו היא מה שמונע הפרת-G2 — היומון אינו ישות-אחות
של case_law ואינו מתפצל ממסלולו.
מקורות: Eric Evans, Domain-Driven Design (2003) — Bounded Context (הקשרים שונים = מודלים
מובחנים) · Martin Kleppmann, DDIA (2017) — system-of-record מובחן מ-derived/index data · Martin
Fowler — Bounded Context / Canonical Data Model | סטטוס: verified
אכיפה: טבלה פיזית נפרדת digests; ingest_digest עושה reuse לשירותים אטומיים בלבד
(extractor.extract_text, embeddings.embed_texts) ולא ל-ingest.ingest_document; ביקורת-
ארכיטקטורה. אוכף את G2
- כלל-הנדסה "סימטריה" (§6). מקור-אמת יחיד: מצב-הקליטה נשמר אך-ורק בטבלת
digests(סטטוס +content_hashל-idempotency); תיקיות-קבצים (incoming/) הן staging בלבד, לא state. הפרה ידועה (תוקנה 2026-06-07):ingest_digests_batch.pyהעביר קבצים ל-data/digests/processed/— state מבוסס-תיקיות מקביל ל-DB. הוסר; הסקריפט מסתמך על dedup ב-content_hash (G2).
INV-DIG3: קישור-לפסק-המקורי הוא הגשר — חוסר-קישור הוא פער גלוי
כלל: לכל digest שדה linked_case_law_id (FK ל-case_law, nullable). כשהפסק המקורי בקורפוס —
היומון מקושר אליו (אוטומטית בקליטה לפי מראה-המקום, או ידנית ב-digest_link). כל עוד אינו בקורפוס,
הקישור ריק והפער מוצף דרך missing_precedent_create על הפסק המקורי — לא נבלע בשקט.
מקורות: E.F. Codd — referential integrity (foreign keys, CACM 13(6), 1970) · ISO 8000 —
completeness (פער-ידע מתועד) · DAMA-DMBOK2 — data linkage / lineage | סטטוס: verified
אכיפה: שדה-FK digests.linked_case_law_id + try_autolink בקליטה + כלי digest_link/
digest_relink; חוסר-קישור → missing_precedent_create (כלל-הנדסה "אין בליעה שקטה", §6). אוכף את
G4 +
G2.
הפרה ידועה: — (תת-מערכת חדשה)
6. מצב קיים מול יעד — audit-findings
התת-מערכת כולה TARGET; אין כיום מימוש. רכיבים לבנייה:
- טבלת
digests+ פונקציות-DB — לא קיימות. יעד:SCHEMA_V30ב-db.py(טבלה + ivfflat/GIN/FTS אינדקסים + UNIQUE חלקי עלyomon_number/content_hashל-idempotent) +create_digest/search_digests/link_digest_to_case_law(§4, INV-DIG2/DIG3). - שירות + חילוץ-LLM —
services/digest_library.py+services/digest_metadata_extractor.pyלא קיימים. החילוץ נשען עלclaude_session(local-only — ייבוא lazy בתוךingest_digestבלבד, לא רץ בקונטיינר; תואם [claude_session local-only]). - כלי-MCP
digest_*— לא קיימים. יעד:tools/digests.py+ רישום ב-server.py, מעטפת-envelope אחידה לפי X9-mcp-tool-contract.md (search_digestsמובחן בשם מ-6 כלי- החיפוש הקיימים — INV-TOOL2). - אינטגרציית-חוקר —
legal-researcher.mdללאsearch_digests/digest_linkב-tools:וללא שלב- radar. יעד: שלב סריקת-יומונים לפני האימות + סעיף-דוח נפרד "radar — לא ציטוט" (INV-DIG1). - UI — אין דף
/digests. יעד: דף נפרד (לא כרטיסייה ב-/precedents, לשמור גבול סמכותי/משני), אחריnpm run api:types(X6-ui-api-contract.md). - אוטומציית-קליטה (Gmail) + עלון-חודשי רב-נושאי — שלב עתידי; שלב-1 ידני (drop ל-
data/digests/incoming/→scripts/ingest_digests_batch.py).
7. הפניות-אחיות
- 00-constitution.md — G2 (אין מסלול מקביל), G4 (שלמות/אין-בליעה), G9 (עקיבוּת).
- 03-retrieval.md — 3 קורפוסי-הציטוט שהיומון מובחן מהם (§3); הפרדת-קורפוס.
- 01-ingest.md — צינור-הפסיקה הקנוני שהיומון אינו עובר בו (INV-DIG2).
- 02-data-model.md —
case_law(יעד-הקישור שלlinked_case_law_id). - 05-qa-review.md — שער-QA שדוחה ציטוט שמקורו digest (INV-DIG1).
- X4-agents.md — סוכן החוקר שצורך את ה-radar.
- X9-mcp-tool-contract.md — חוזה כלי-ה-
digest_*.