Files
legal-ai/docs/spec/07-learning.md
Chaim b46d25f605 docs(spec): 07-learning loop
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 15:21:34 +00:00

15 KiB
Raw Blame History

07 — לולאת הלמידה (Learning Loop)

קובץ-תחום זה כפוף ל-חוקת המערכת ומפרט כיצד המערכת לומדת לאורך זמן — מהחלטות סופיות (Hermes), מפידבק-היו"ר, ומצמיחת-הקורפוס — באופן שמזין חזרה את הכתיבה (04-analysis-writing.md) ואת שערי-האיכות (05-qa-review.md). הוא אוכף את INV-G10 (שערים אנושיים — אישור היו"ר על כל עדכון-ידע) ואת INV-G4 / כלל-ההנדסה quality-at-source (האחריות לאיכות יושבת במקור, לא בטלאי במורד הזרם).

⚠ קובץ מעורב — שני מודלי-סמכות (לפי החוקה §3, §5):

  • שער-הממשל (Hermes מציע — היו"ר מאשרת ידנית; אין auto-commit ל-SKILL/lessons) הוא invariant הנדסי במודל הממשל-שיפוטי → נושא מקורות: (NCSC/JTC · CEPEJ 2018 · FJC) + סטטוס: verified.
  • כלל-ההנדסה quality-at-source (היכן יושבת האחריות לאיכות-הידע) → invariant הנדסי במודל הנדסת-הנתונים → נושא מקורות: (Fowler — Data Mesh / quality-at-source · DAMA-UK · ISO 8000) + סטטוס: verified.

1. שלוש לולאות-המשנה

הלמידה אינה אירוע יחיד אלא שלוש לולאות המתנקזות לאותם מסמכי-ידע מוסמכים (legal-decision-lessons.md, skills/decision/SKILL.md) ולקורפוסים:

1.1 לולאת-Hermes (post-export → הצעה → אישור)

הסוכן hermes-curator (adapter deepseek_local, פרופילים curator-cmp / curator-cmpa) נקרא אחרי שדפנה מסמנת קובץ כסופי ב-UI (POST /api/cases/{case_number}/exports/{filename}/mark-finalpc_wake_curator_for_final() ב-web/paperclip_client.py → sub-issue + wakeup; חיבור ישיר מה-UI, לא דרך CEOhermes-curator.md:27-35). הוא:

  • קורא בלבד את הטקסט הסופי (case_get_final_text), get_style_guide, ואת SKILL.md / legal-decision-lessons.md / corpus-analysis.md המקומיים (hermes-curator.md:60-70).
  • מזהה 35 דפוסים/פערים חדשים, כל ממצא מתויג [סגנון] / [מבנה] / [לקסיקון משפטי] / [טבלאי] (hermes-curator.md:99-108).
  • מציע — comment ב-Paperclip + רישום כל ממצא כ-decision_lesson דרך POST /api/training/corpus/{corpus_id}/lessons (source:"curator") שמופיע ב-UI תחת הטאב "מה למדנו" (hermes-curator.md:73-96).
  • אינו מעדכן קבצים בעצמו (skills/, lessons.py, DB) — רק מציע (hermes-curator.md:125-130).

1.2 לולאת-פידבק-היו"ר (capture → ניתוח שבועי → לקחים)

  • לכידה מובנית: record_chair_feedback שומר הערת-דפנה בטבלת chair_feedback (category ∈ {missing_content, wrong_tone, wrong_structure, factual_error, style, other}) — tools/workflow.py:348, ראה 05-qa-review.md §2.3.
  • ניתוח שבועי: ה-scheduled job weekly-feedback-analysis (ראשון 19:00, plugin-legal-ai/src/manifest.ts:175-179) מושך GET /api/chair-feedback/weekly-summary, ואם יש פריטים — מעיר את ה-CEO לעדכן את legal-decision-lessons.md עם הלקחים החדשים (worker.ts:784-837; הוראת ה-prompt: "הוסף רק לקחים חדשים… קבץ לפי נושא" — worker.ts:830).
  • אין פריטים → הג'וב מדלג בשקט (worker.ts:805). ל-CEO שמתעורר מ-weekly-feedback-job אין issueId — הוא כותב לקובץ בלבד, לא מפרסם comment ולא סוגר issue (כלל מ-CLAUDE.md "Scheduled Jobs").

1.3 לולאת-צמיחת-הקורפוס (החלטה סופית → קורפוס → אחזור)

החלטה סופית נקלטת לקורפוס-הסגנון (ingest_final_version — ראה 06-export.md § Hermes), ופסיקה/החלטות-ועדה חדשות נקלטות דרך המסלול הקנוני של 01-ingest.md. כך הקורפוס שמזין את האחזור (03-retrieval.md) גדל מהפלט עצמו — והדיון הבא נשען על תקדים עשיר יותר. צמיחה זו כפופה לאותו חוזה-שלמות (G4) כמו כל קליטה.


2. הלולאה במלואה (הציור)

                 ┌──────────────────────────────────────────────────────┐
                 │                                                      │
   ┌─────────────▼─────────────┐         ┌────────────────────────┐     │
   │  כתיבה (04)               │  ───▶   │  QA + שערים אנושיים (05)│     │
   │  12 בלוקים · סגנון דפנה   │         │  validate_decision +    │     │
   │  ← lessons.py CONTENT_    │         │  פידבק-היו"ר            │     │
   │    CHECKLISTS · SKILL.md  │         └───────────┬────────────┘     │
   └───────────────────────────┘                     │ ייצוא (06)        │
            ▲                                         ▼                   │
            │                              ┌──────────────────────┐      │
   ┌────────┴──────────────┐               │  סימון "סופי" (UI)    │      │
   │ legal-decision-       │               │  mark-final           │      │
   │ lessons.md + SKILL.md │               └───────┬──────────────┘      │
   │ (מסמכי-ידע מוסמכים)   │                       │                      │
   └────────▲──────────────┘            ┌──────────┴───────────┐         │
            │                           ▼                      ▼         │
            │  ✋ אישור-יו"ר ידני  ┌───────────────┐   ┌────────────────┐│
            └──────────────────────│ Hermes curator │   │ ingest_final → ││
            (commit ידני בלבד)     │ → הצעות(comment)│   │ קורפוס-סגנון → ┘│
                                   └───────────────┘   │ אחזור (03)      │
   ┌───────────────────────────┐                       └────────────────┘
   │ פידבק-היו"ר (05) ──┐       │
   │ chair_feedback     │       │
   └────────────────────┼───────┘
                        ▼
              weekly-feedback-analysis (job)
                        │ מעיר CEO
                        ▼
              עדכון legal-decision-lessons.md  ──┐
                                                 └──▶ (חזרה ל-04 / lessons.py)

הקשר לכתיבה: הלקחים והצ'קליסטים שב-CONTENT_CHECKLISTS (mcp-server/src/legal_mcp/services/lessons.py:355, בורר get_content_checklist :509-555) ו-get_lessons_for_outcome (lessons.py:309) מוזרקים ל-prompt-הכתיבה לפי סוג-ערר ותוצאה — ראה 04-analysis-writing.md §5. כל סגירה של לולאה (Hermes או פידבק) שמשנה את legal-decision-lessons.md / SKILL.md משפיעה ישירות על הכתיבה הבאה.


3. Invariants של התחום

INV-LRN1: עדכון-ידע דורש אישור-יו"ר ידני — אין auto-commit (governance →G10)

כלל: מנגנוני-הלמידה (Hermes, ניתוח-פידבק שבועי) מציעים בלבד. כל שינוי ב- SKILL.md או ב-legal-decision-lessons.md מחייב בחינה ואישור ידניים של היו"ר/חיים ואז commit ידני — לעולם לא auto-committed. Hermes כותב comment + decision_lesson, לא קבצים; ה-CEO השבועי כותב לקובץ אך הצעותיו מאומתות ידנית לפני קיבוע. זהו פֶּאֶט של INV-G10 על שכבת-הידע: גם הלמידה כפופה לשיקול-הדעת האנושי. מקורות: NCSC/JTC — Principles & Practices for AI Use in Courts (human-in-the-loop; never replace human judgment) · Council of Europe / CEPEJ (2018, under user control) · Federal Judicial Center — Judicial Writing Manual (2d ed.) | סטטוס: verified אכיפה: הסוכן read-only על תוכן ו-write רק על comments (hermes-curator.md:1-3, 125-130); תהליך-האישור — הצעת-curator כ-comment ב-Paperclip → חיים בוחן ומאשר ידנית → commit ל- SKILL.md ו-docs/legal-decision-lessons.md (מ-CLAUDE.md "Hermes Curator"); ה-CEO השבועי מתעורר בלי issueId וכותב לקובץ בלבד (CLAUDE.md "Scheduled Jobs"). הפרה ידועה:

INV-LRN2: האחריות לאיכות יושבת במקור — quality-at-source (engineering →G4)

כלל: האחריות לאיכות-הידע (לקחים, הלכות, metadata של פריטים מואנדקסים) נאכפת קרוב ככל האפשר לנקודת-היצירה/הקליטה — בעת ניסוח-ההחלטה, בעת לכידת-הפידבק, ובעת קליטת-פריט — לא מתוקנת בדיעבד במורד-הזרם (re-OCR, טלאי-קריאה, ניחוש בזמן-חיפוש). פריט-ידע חסר-שלמות מסומן ומדווח בנקודת-הכניסה, לא מתקבל בשקט. מקורות: Martin Fowler — Data Mesh (quality-at-source: domain owns data quality at the point of creation) · DAMA-UK Six Primary Dimensions for Data Quality (2013, completeness) · ISO 8000 (Data quality) | סטטוס: verified אכיפה: חוזה-שלמות בקליטה (01-ingest.md §2, 02-data-model.md)

  • "אין בליעה שקטה" (חוקה §6); לכידת-פידבק מובנית בנקודת-ההערה (record_chair_feedback, tools/workflow.py:348); לקחים נשמרים מבני ולא ad-hoc (lessons.py, legal-decision-lessons.md). הפרה ידועה: ראה INV-G4 (ערן סופר 8046/24 אונדקס עם headnote/summary/tags ריקים — שלמות לא נאכפה במקור) → ממצא ל-audit.

INV-LRN3: ידע נלכד באופן מובנה — לא ad-hoc (engineering →G9)

כלל: פידבק ולקחים נלכדים במבנה דטרמיניסטי ועקיבchair_feedback (עם category ו-block_id), decision_lessons (עם category/source), ו-CONTENT_CHECKLISTS בקוד — כך שהלמידה עמידה וניתנת-לביקורת, לא פזורה בהערות חופשיות. מקור-הלקח (source:"curator" מול פידבק-יו"ר) משומר לעקיבוּת. מקורות: ISO 15489-1:2016 (records reliability/authenticity) · DAMA-UK Six Primary Dimensions for Data Quality (2013) · ISO 8000 (Data quality) | סטטוס: verified אכיפה: טבלת chair_feedback + record_chair_feedback/list_chair_feedback (tools/workflow.py:348, 393); decision_lessons עם source+category (hermes-curator.md:79-96); CONTENT_CHECKLISTS/get_lessons_for_outcome (lessons.py:355, 309). עקיבוּת-מקור קושרת ל-X5-audit-provenance.md. הפרה ידועה:


4. הג'ובים המתוזמנים (תמיכת-תשתית ללולאה)

Job (manifest.ts) לוח-זמנים תפקיד בלולאה
weekly-feedback-analysis ראשון 19:00 (:175-179) מסכם פידבק-יו"ר → מעיר CEO לעדכון legal-decision-lessons.md (worker.ts:784-837)
stale-case-reminder יומי 08:00 (:169-172) תזכורת על תיקים תקועים 30+ ימים (worker.ts:710-780) — היגיינת-תהליך, לא ידע
sync-case-status כל 15 דק' (:162-166) מסנכרן סטטוסי-תיקים legal-ai↔Paperclip (worker.ts:624) — תשתית, לא ידע

רק weekly-feedback-analysis הוא חלק מלולאת-הלמידה; שני האחרים הם היגיינת-תהליך/סנכרון.


5. הפניות-אחיות