Establishes the foundation to fix a recurring root-cause failure class (non-canonical identifiers, asymmetric ingest paths, silent manual gates): - Confirmed system mission (quasi-judicial decision assistant; human decides) - Decomposition into 5 sub-projects (spec → audit → integrity layer → re-check → process agents) - spec-set structure under docs/spec/ (lifecycle-organized + cross-cutting files) - 11 global invariants + engineering rules, each backed by ≥3 authoritative sources (NCSC/JTC, FJC, CEPEJ, South Bucks; RAG/Lewis, Manning IR, Elastic/Pinecone/Weaviate; DAMA-DMBOK, ISO 8000, ISO 15489, Kleppmann, Codd, Fowler) - 3-source verification protocol; UNVERIFIED items escalated, not decided solo Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 KiB
מסמך-עיצוב אב — ספ המערכת והשכבה החסרה (System Spec & Integrity Layer)
תאריך: 2026-05-30 סטטוס: עיצוב מאושר (Design approved) — ממתין לכתיבת קבצי הספ בעלים: חיים מרכוס הקשר: מהלך-יסוד להגדרת "מהו תקין" במערכת עוזר משפטי, ולסגירת כשל-שורש חוזר.
1. הבעיה — כשל-השורש החוזר
מה שנחווה כ"כל פעם משהו אחר לא מדויק" אינו אוסף תקלות אקראיות אלא כשל אחד שחוזר בתחפושות. ראיות שצפו (30.5.2026):
| תסמין | שורש |
|---|---|
8126-25 לא נמצא (האמיתי 8126-03-25); קומיט "tolerant case_number lookup" |
אין מפתח קנוני — מתקנים תסמין בקריאה |
3 החלטות "סופר" ב-3 פורמטים שונים (8126/24, ציטוט-מלא-כ-case_number) |
אין חוזה-נתונים אחיד |
| ערן סופר 8046/24 עלתה בלי metadata (headnote/summary/tags ריקים) | מסלול ה-ingest הפנימי לא מתזמן חילוץ metadata — אסימטרי למסלול החיצוני |
| 10/19 הלכות מאושרות, התגלה במקרה | שער ידני שקוף בלי נראות backlog |
| משימות #56, #57 | אי-עקביות בין רכיבים (דליפה חוצת-קורפוסים, chunker) |
אבחנה: המערכת גדלה בקצב הוספת יכולות מהר יותר מקצב שמירת עקביות — מסלולים/כלים/קורפוסים מקבילים שנוספים בבידוד ומתפצלים (drift), בלי שכבה שמגדירה ואוכפת "תקין". כל פגם מתגלה בדיעבד, אחד-אחד.
התרופה: לא לתקן 10 דברים — להוסיף שכבה אחת חסרה: חוקה + חוזה-שלמות + בדיקת-בריאות אחת + איחוד מסלולי ה-ingest. זה הופך כשל מ"מתפרץ במקום אקראי" ל"נחסם בכניסה, גלוי בדשבורד".
2. ייעוד המערכת (מאושר ע"י חיים)
מערכת AI שמסייעת ליו"ר ועדת הערר לתכנון ובנייה (מחוז ירושלים, עו"ד דפנה תמיר) לנסח החלטות מעין-שיפוטיות כתובות ומנומקות — מסמכים משפטיים פורמליים שעומדים לביקורת שיפוטית — תוך שמירה על הקול, השיקול והאחריות של היו"ר.
- משרת: יו"ר הוועדה (משתמש-על) והסוכנים הפועלים בשמה.
- מחזור-חיים: ניהול תיקים → בסיס ידע (3 קורפוסים) → אחזור סמנטי (RAG) → סיוע-כתיבה (12 בלוקים, סגנון דפנה) → ייצוא DOCX.
- 3 סוגי עררים: רישוי ובנייה (1xxx, חם), היטל השבחה (8xxx, קר), פיצויים ס'197 (9xxx, קר).
- ה"למה" העמוק: המערכת מסייעת — היו"ר מכריעה (שערים קריטיים ידניים בכוונה); מנוע צבירת-ידע (לומד מהחלטות סופיות ומפידבק); רב-חברתי (CMP/CMPA).
3. עקרונות-עבודה למהלך
- אסור להניח שהקיים תקין. כל מה שמופה בקוד/בקורפוס = "טענה לבדיקה", לא "אמת". "תקין" נגזר ממקורות חיצוניים, לא מהמערכת שתחת חשד.
- פרוטוקול אימות 3-מקורות: כל invariant/חוק בספ מגובה ב-≥3 מקורות סמכותיים מוכרים בעלי ידע מקצועי מוכח. כשאין 3 → מסומן
⚠ UNVERIFIEDומועלה לחיים, לא מוכרע לבד. - מנגנון: מחקר עצמאי → טיוטה לביקורת.
- מודל-שיתוף: על החלטות טכניות/אדריכליות אני חוקר ומכריע מקצועית ומציג תוצאה מוגמרת. שואל את חיים רק במקום שבו הוא הסמכות — כוונה, עדיפויות עסקיות, עובדות משפטיות-דומייניות.
4. פירוק ל-5 תת-פרויקטים (לפי תלות)
| # | תת-פרויקט | תוצר | תלות |
|---|---|---|---|
| 1 | ספ המערכת + חוקה | spec-set ב-docs/spec/ המגדיר מודל קנוני + invariants |
— |
| 2 | מפת הפערים (Audit) | סריקה אמפירית מול הספ → רשימת משימות | תת-פרויקט 1 |
| 3 | שכבת שלמות-נתונים | חוזה-שלמות באכיפת-קוד + בדיקת-בריאות אחת + איחוד מסלולי ingest | 1, 2 |
| 4 | בדיקה חוזרת | הרצת בריאות/audit אחרי התיקון | 3 |
| 5 | סוכני-תהליך | add-feature / fix-feature / spec-guardian — מכירים את הספ, "עושים שיעורי בית", לומדים ומתעדכנים | 1 (3) |
כל תת-פרויקט יקבל מחזור spec→plan→implementation משלו. מסמך זה מפרט את תת-פרויקט 1 במלואו ומקבע את ההחלטות העקרוניות לכולם.
5. מבנה הספ-set (תת-פרויקט 1)
מיקום: docs/spec/ (ספ חי). ארגון קבצי-תחום: לפי מחזור-חיים (גישה A) — חושף ישירות אסימטריות-זרימה.
docs/spec/
├── 00-constitution.md ← ייעוד · invariants גלובליים · כללי-הנדסה · אינדקס · תבנית-invariant · פרוטוקול-אימות
│ ── מחזור-החיים ──
├── 01-ingest.md ← קליטה מאוחדת: מסמכי-תיק / פסיקה חיצונית / החלטות-ועדה — חוזה מסלול-יחיד
├── 02-data-model.md ← אחסון: ישויות (cases, case_law, documents, chunks, halachot…) + חוזה-שלמות לכל ישות
├── 03-retrieval.md ← 3 קורפוסים + כלי-חיפוש · hybrid/RRF · attribution · eval harness · invariants
├── 04-analysis-writing.md ← חילוץ טענות · 12 בלוקים · סגנון דפנה (מצטט block-schema.md וכו')
├── 05-qa-review.md ← שערי QA + שערים אנושיים (אישור הלכה, בחירת תוצאה, פידבק) כ-invariant
├── 06-export.md ← ייצוא DOCX לפי תבנית דפנה
├── 07-learning.md ← Hermes · לקחים · לולאת פידבק היו"ר · צמיחת קורפוס (quality-at-source)
│ ── חוצי-שלבים ──
├── X1-identifiers.md ← מודל מזהים קנוני: נרמול case_number **בכתיבה** · cases מול case_law · פורמטי ציטוט
├── X2-multi-company.md ← CMP/CMPA · 14 סוכנים · כללי sync
├── X3-integration-deploy.md ← Paperclip (wakeup, ניתוב comments, webhooks) · Coolify/pm2
├── X4-agents.md ← מפת הסוכנים (דומיין + סוכני-התהליך מתת-פרויקט 5)
└── X5-audit-provenance.md ← audit-trail לשימוש ב-AI · עקיבוּת כל מקור מצוטט · שלמות-רשומה (CEPEJ/NCSC/ISO 15489)
עקרונות: כל קובץ עצמאי, ממוקד, agent-readable, יעד ≤~500 שורות (תפיחה = סימן לפיצול). 00-constitution.md = שער-כניסה יחיד. מסמכים קיימים (architecture.md, product-specification.md, block-schema.md…) לא נמחקים ולא משוכפלים — מצוטטים כ"מקור" ומאומתים מול הסמכויות; סתירה = ממצא ל-audit.
תבנית-invariant (מבנה אחיד לכל חוק בספ)
### INV-<תחום><מספר>: <כותרת קצרה>
**כלל:** <ניסוח נורמטיבי חד — מה חייב להתקיים>
**מקורות:** <≥3 סמכויות> | סטטוס: verified / ⚠ UNVERIFIED
**אכיפה:** <היכן/איך נאכף — schema, ולידציית-כתיבה, בדיקת-בריאות, שער>
**הפרה ידועה:** <דוגמה מהמערכת, אם יש — מקשר ל-audit>
6. ה-Invariants הגלובליים (לב 00-constitution.md)
כל אחד מגובה ב-≥3 סמכויות (פירוט ב-§9). אלה החוקים שמייבשים את כשל-השורש:
| # | Invariant | סמכויות |
|---|---|---|
| G1 | מזהה קנוני, מנורמל בכתיבה (לא תיקון-סלחני בקריאה בלבד) | SSOT/normalization · Codd 1NF · Kleppmann |
| G2 | מקור-אמת יחיד; אין מסלולי-קוד מקבילים שמתפצלים — אחים חולקים מסלול קנוני אחד; derived data משוחזר | Kleppmann (system of record) · Fowler (canonical model) · SSOT |
| G3 | ingest אחיד ו-idempotent (upsert על מפתח דטרמיניסטי) | Kleppmann · Stripe/CDC idempotency · ISO 8000 |
| G4 | חוזה-שלמות: שדות חובה מולאו לפני שרשומה "שמישה/ניתנת-לחיפוש"; נבדק מול spec מפורש | ISO 8000 · DAMA (completeness) · ISO 15489 (reliability) |
| G5 | metadata מלא לכל פריט מואנדקס + הפרדת-קורפוס נאכפת בכל מסלול-query | Pinecone (multitenancy) · RAG attribution · ISO 8000 |
| G6 | re-index בכל שינוי תוכן (אין embeddings מיושנים) | Pinecone · Weaviate · RAG freshness |
| G7 | מיזוג לפי דירוג (RRF), לא סכום-ציונים גולמי בין retrievers | Elastic · Weaviate · OpenSearch/Azure (corrob.) |
| G8 | איכות-אחזור נמדדת (precision+recall), לא מונחת | Manning (IR textbook) · RAG eval literature |
| G9 | כל פלט עקיב למקורו + audit-trail לשימוש ב-AI | CEPEJ (user control) · NCSC · ISO 15489 |
| G10 | המערכת מסייעת; שערים אנושיים (אישור הלכה/תוצאה/פידבק) הם invariant, לא רשות | NCSC · CEPEJ · FJC |
| G11 | תוכן החלטה מנומקת: רקע ניטרלי · ללא כפילות · מענה לטענות המפסיד · מבחן-השופט · טענות מקוריות | FJC (Writing Manual) · South Bucks (adequacy) · חוק 1958 (חובת הנמקה) |
כללי-הנדסה (constitution — מונעים הישנות)
- סימטריה: אסור להוסיף מסלול מקביל ליכולת קיימת — מרחיבים את המסלול הקנוני. (נגזר מ-G2)
- נרמול לא תיקון-תסמין: מתקנים נתון במקור (קנוני), לא מטליאים בקריאה. (נגזר מ-G1)
- Quality-at-source: שלמות נאכפת קרוב ככל האפשר לקליטה. (Fowler/Data-Mesh)
- אין בליעה שקטה: רשומה חסרה מסומנת ומדווחת, לא מתקבלת בשקט. (תואם feedback קיים)
7. פרוטוקול-אימות ומודל-שיתוף (ייכנס ל-00-constitution.md)
- כל invariant נושא
מקורות+סטטוס: verified / ⚠ UNVERIFIED. ⚠ UNVERIFIED(פחות מ-3 מקורות) → לא מוכרע לבד; מועלה לחיים.- החלטות טכניות → מחקר עצמאי + הכרעה מקצועית + הצגת תוצאה. שאלה לחיים רק במקום שהוא הסמכות.
8. פריטים פתוחים — אימות-מקור-ראשוני נדרש
(החוקר אימת מסגרת; הפריטים הישראליים דורשים אימות לפני ציטוט כ-סמכות, בשלב כתיבת 04/05/X5)
- מספר הסעיף המדויק בחוק לתיקון סדרי המינהל (החלטות והנמקות) תשי"ט-1958 (וכן תיקון תשכ"ט-1969).
- ציטוט מדויק מ-ברק-ארז, משפט מינהלי.
- אסמכתאות פסיקה: בג"ץ 143/56; עע"ם 2994/21 (מעמד ועדת ערר כגוף תכנוני-מקצועי).
9. נספח מקורות סמכותיים (מאומתים במחקר 30.5.2026)
ממשל-AI שיפוטי + מבנה החלטה מנומקת
- NCSC / JTC — Court Technology Standards + Principles & Practices for AI Use in Courts. https://www.ncsc.org/our-centers-projects/joint-technology-committee/court-technology-standards
- Federal Judicial Center — Judicial Writing Manual (2d ed.). https://www.fjc.gov/content/judicial-writing-manual-pocket-guide-judges-second-edition
- Council of Europe / CEPEJ — European Ethical Charter on the use of AI in judicial systems (2018).
- South Buckinghamshire DC v Porter (No 2) [2004] UKHL 33 (adequacy of reasons). https://publications.parliament.uk/pa/ld200304/ldjudgmt/jd040701/south-1.htm
- חוק לתיקון סדרי המינהל (החלטות והנמקות), תשי"ט-1958. https://www.nevo.co.il/law_html/law00/98603.htm
- Kevin D. Ashley — Artificial Intelligence and Legal Analytics (CUP).
אחזור / RAG / IR
- Lewis et al. (2020) — Retrieval-Augmented Generation (NeurIPS). https://arxiv.org/abs/2005.11401
- Manning, Raghavan & Schütze — Introduction to Information Retrieval (CUP, 2008). https://nlp.stanford.edu/IR-book/
- Elastic — Reciprocal Rank Fusion. https://www.elastic.co/docs/reference/elasticsearch/rest-apis/reciprocal-rank-fusion
- Pinecone — Implement multitenancy. https://docs.pinecone.io/guides/index-data/implement-multitenancy
- Weaviate — Hybrid Search Explained. https://weaviate.io/blog/hybrid-search-explained
שלמות-נתונים / איכות / רשומות
- DAMA-DMBOK2 + DAMA-UK — Six Primary Dimensions for Data Quality (2013).
- ISO 8000 — Data quality (8000-8/61/110).
- ISO 15489-1:2016 — Records management (authenticity/reliability/integrity/usability).
- Martin Kleppmann — Designing Data-Intensive Applications (O'Reilly, 2017).
- E.F. Codd — Relational model & normalization (CACM 13(6), 1970).
- Martin Fowler — Canonical Data Model / Data Mesh (quality-at-source).
10. השלב הבא
לאחר ביקורת חיים על מסמך זה → invoke writing-plans לבניית תוכנית-יישום מפורטת לתת-פרויקט 1 (כתיבת קבצי הספ-set, החל מ-00-constitution.md).