190 lines
15 KiB
Markdown
190 lines
15 KiB
Markdown
# 07 — לולאת הלמידה (Learning Loop)
|
||
|
||
קובץ-תחום זה כפוף ל-[חוקת המערכת](00-constitution.md) ומפרט כיצד המערכת **לומדת לאורך
|
||
זמן** — מהחלטות סופיות (Hermes), מפידבק-היו"ר, ומצמיחת-הקורפוס — באופן שמזין חזרה את
|
||
הכתיבה ([04-analysis-writing.md](04-analysis-writing.md)) ואת שערי-האיכות
|
||
([05-qa-review.md](05-qa-review.md)). הוא אוכף את
|
||
[INV-G10](00-constitution.md#inv-g10-המערכת-מסייעת--שערים-אנושיים-הם-invariant)
|
||
(שערים אנושיים — אישור היו"ר על כל עדכון-ידע) ואת
|
||
[INV-G4](00-constitution.md#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](../legal-decision-lessons.md),
|
||
[skills/decision/SKILL.md](../../skills/decision/SKILL.md)) ולקורפוסים:
|
||
|
||
### 1.1 לולאת-Hermes (post-export → הצעה → אישור)
|
||
|
||
הסוכן [hermes-curator](../../.claude/agents/hermes-curator.md) (adapter `deepseek_local`,
|
||
פרופילים `curator-cmp` / `curator-cmpa`) נקרא **אחרי שדפנה מסמנת קובץ כסופי** ב-UI
|
||
(`POST /api/cases/{case_number}/exports/{filename}/mark-final` → `pc_wake_curator_for_final()`
|
||
ב-`web/paperclip_client.py` → sub-issue + wakeup; **חיבור ישיר מה-UI, לא דרך CEO** —
|
||
`hermes-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`).
|
||
- מזהה **3–5 דפוסים/פערים** חדשים, כל ממצא מתויג `[סגנון]` / `[מבנה]` /
|
||
`[לקסיקון משפטי]` / `[טבלאי]` (`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](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](../../CLAUDE.md) "Scheduled Jobs").
|
||
|
||
### 1.3 לולאת-צמיחת-הקורפוס (החלטה סופית → קורפוס → אחזור)
|
||
|
||
החלטה סופית נקלטת לקורפוס-הסגנון (`ingest_final_version` — ראה [06-export.md](06-export.md)
|
||
§ Hermes), ופסיקה/החלטות-ועדה חדשות נקלטות דרך המסלול הקנוני של
|
||
[01-ingest.md](01-ingest.md). כך הקורפוס שמזין את האחזור ([03-retrieval.md](03-retrieval.md))
|
||
**גדל מהפלט עצמו** — והדיון הבא נשען על תקדים עשיר יותר. צמיחה זו כפופה לאותו חוזה-שלמות
|
||
([G4](00-constitution.md#inv-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](04-analysis-writing.md) §5. כל סגירה של
|
||
לולאה (Hermes או פידבק) שמשנה את `legal-decision-lessons.md` / `SKILL.md` משפיעה ישירות
|
||
על הכתיבה הבאה.
|
||
|
||
---
|
||
|
||
## 3. Invariants של התחום
|
||
|
||
### INV-LRN1: עדכון-ידע דורש אישור-יו"ר ידני — אין auto-commit (governance →G10)
|
||
**כלל:** מנגנוני-הלמידה (Hermes, ניתוח-פידבק שבועי) **מציעים בלבד**. כל שינוי ב-
|
||
[SKILL.md](../../skills/decision/SKILL.md) או ב-[legal-decision-lessons.md](../legal-decision-lessons.md)
|
||
מחייב **בחינה ואישור ידניים של היו"ר/חיים** ואז commit ידני — **לעולם לא auto-committed**.
|
||
Hermes כותב comment + `decision_lesson`, לא קבצים; ה-CEO השבועי כותב לקובץ אך הצעותיו
|
||
מאומתות ידנית לפני קיבוע. זהו פֶּאֶט של [INV-G10](00-constitution.md#inv-g10-המערכת-מסייעת--שערים-אנושיים-הם-invariant)
|
||
על שכבת-הידע: גם הלמידה כפופה לשיקול-הדעת האנושי.
|
||
**מקורות:** 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](../../CLAUDE.md) "Hermes Curator");
|
||
ה-CEO השבועי מתעורר בלי `issueId` וכותב לקובץ בלבד ([CLAUDE.md](../../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](01-ingest.md) §2, [02-data-model.md](02-data-model.md))
|
||
+ "אין בליעה שקטה" (חוקה §6); לכידת-פידבק מובנית בנקודת-ההערה (`record_chair_feedback`,
|
||
`tools/workflow.py:348`); לקחים נשמרים מבני ולא ad-hoc (`lessons.py`,
|
||
[legal-decision-lessons.md](../legal-decision-lessons.md)).
|
||
**הפרה ידועה:** ראה [INV-G4](00-constitution.md#inv-g4-חוזה-שלמות-לפני-שמיש--ניתן-לחיפוש)
|
||
(ערן סופר 8046/24 אונדקס עם `headnote`/`summary`/`tags` ריקים — שלמות לא נאכפה במקור) →
|
||
ממצא ל-[audit](../audit-report.md).
|
||
|
||
### 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](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. הפניות-אחיות
|
||
|
||
- [00-constitution.md](00-constitution.md#inv-g10-המערכת-מסייעת--שערים-אנושיים-הם-invariant) —
|
||
INV-G10 (שערים אנושיים) + [INV-G4](00-constitution.md#inv-g4-חוזה-שלמות-לפני-שמיש--ניתן-לחיפוש)
|
||
(quality-at-source) + כלל-ההנדסה §6.
|
||
- [04-analysis-writing.md](04-analysis-writing.md) — הכתיבה שהלקחים/הצ'קליסטים מזינים (§3, §5).
|
||
- [05-qa-review.md](05-qa-review.md) — שער פידבק-היו"ר (§2.3) שמתחיל את לולאת-הפידבק.
|
||
- [01-ingest.md](01-ingest.md) — קליטה אחידה (quality-at-source) לצמיחת-הקורפוס.
|
||
- [03-retrieval.md](03-retrieval.md) — האחזור שהקורפוס הגדל מזין.
|
||
- [06-export.md](06-export.md) — `mark-final` שמפעיל את Hermes + `ingest_final_version`.
|
||
- [X5-audit-provenance.md](X5-audit-provenance.md) — עקיבוּת-מקור של לקחים (`source`).
|
||
- הסוכן: [.claude/agents/hermes-curator.md](../../.claude/agents/hermes-curator.md).
|
||
- מסמכי-הידע המוסמכים: [legal-decision-lessons.md](../legal-decision-lessons.md) ·
|
||
[skills/decision/SKILL.md](../../skills/decision/SKILL.md) ·
|
||
[corpus-analysis.md](../corpus-analysis.md).
|