עלון חודשי רב-נושאי (פרסום נפרד מהיומון היומי) → מתפצל ל-N שורות digest באותה טבלה (publication='עו"ד על נדל"ן', לא קורפוס מקביל — G2): - bulletin_splitter (LLM local-only, tools=""): מפצל ל-cases[]+articles[]; עדכוני-חקיקה מדולגים (החלטת יו"ר). - bulletin_library.ingest_bulletin: כל מצביע-פסיקה → digest_kind='decision' + embedding + autolink (כולל X13 court-fetch); כל מאמר → digest_kind='article' (טקסט-מלא + embedding, רקע בלבד — INV-DIG1 חל). - content_hash per-item הוא מפתח-הדדאפ (yomon_number ריק) → אידמפוטנטי. - db.create_digest: פרמטר digest_kind (זורם ל-INSERT + upsert). - scripts/ingest_bulletins.py (host, venv) לעיבוד הארכיון. - spec X12 §2.1. אומת (dry-run, ללא DB): עלון 180 → 4 cases+1 article · עלון 201 → 4 cases (כולל ערר-197) +1 article. עדכוני-חקיקה דולגו. claude_session נשאר local-only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
16 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 אינסופי.
2.1 מקור שני ל-radar — העלון החודשי "עו"ד על נדל"ן"
פרסום נפרד מהיומון היומי: עלון חודשי ממוספר (משרדי צבי שוב + רונית אלפר), רב-נושאי — מאמר-עומק,
עדכוני-חקיקה, וסט מצביעי-פסיקה מקובצים לפי נושא. נקלט לאותה טבלת digests (לא קורפוס מקביל — G2),
מובחן ע"י publication='עו"ד על נדל"ן' (מול 'כל יום'). עלון אחד מתפצל ל-N שורות דרך
bulletin_splitter (LLM, local-only) → bulletin_library.ingest_bulletin:
- מצביעי-פסיקה →
digest_kind='decision'— מצטרפים ל-radar ומקושרים לפסק (autolink + X13 כמו היומון). - מאמרים →
digest_kind='article'— טקסט-מלא + embedding לחיפוש-עומק; רקע בלבד, INV-DIG1 חל (לא מצוטט). - עדכוני-חקיקה — לא נקלטים (החלטת יו"ר).
מפתח-הדדאפ לפריט-עלון הוא content_hash (per-פריט), כי yomon_number ריק (ה-upsert על yomon-number
לא חל; uq_digests_content_hash תופס re-runs). אידמפוטנטי. סקריפט: scripts/ingest_bulletins.py.
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_*.