From a02a606f34ecca4fb6b66428e5090e5e3e31241c Mon Sep 17 00:00:00 2001 From: Chaim Date: Sun, 31 May 2026 16:02:04 +0000 Subject: [PATCH] =?UTF-8?q?feat(agents):=20wire=20spec=20into=20agents=20?= =?UTF-8?q?=E2=80=94=20INV-AG1=20read-before-act=20gate=20(FU-8b/GAP-23)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit חיווט ספ-המערכת לסוכני-Paperclip כך שכל סוכן חייב לקרוא את 00-constitution תחילה, ואז את ספ-התחום הרלוונטי לתפקידו (לפי טבלת X4 §2) — לפני עבודה מהותית. - HEARTBEAT.md: סעיף עליון "קריאת-ספ — קודם החוקה (00), אז ספ-התחום" לפני §0–§8, עם טבלת תפקיד→ספ ל-8 הסוכנים. - 8 קבצי-סוכן (ceo/proofreader/researcher/analyst/writer/qa/exporter/hermes): סעיף "קרא לפני פעולה (INV-AG1)" בראש הגוף. - X4-agents.md: שדה "אכיפה" של INV-AG1 → "מחוּוט (פרוצדורלי)"; §5 → "בוצע". אכיפה פרוצדורלית בכוונה — invariant פרויקטלי-תפעולי, אין שער-קוד שמכריח קריאה. prereq לסוכני-התהליך (תת-פרויקט 5). gap-audit נשמר כ-snapshot (כמו FU-8a). Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/agents/HEARTBEAT.md | 22 ++++++++++++++++++++++ .claude/agents/hermes-curator.md | 4 ++++ .claude/agents/legal-analyst.md | 4 ++++ .claude/agents/legal-ceo.md | 4 ++++ .claude/agents/legal-exporter.md | 4 ++++ .claude/agents/legal-proofreader.md | 4 ++++ .claude/agents/legal-qa.md | 4 ++++ .claude/agents/legal-researcher.md | 4 ++++ .claude/agents/legal-writer.md | 4 ++++ .taskmaster/tasks/tasks.json | 16 +++++++++------- docs/spec/X4-agents.md | 25 +++++++++++++++---------- 11 files changed, 78 insertions(+), 17 deletions(-) diff --git a/.claude/agents/HEARTBEAT.md b/.claude/agents/HEARTBEAT.md index 8eee52c..0ac15a9 100644 --- a/.claude/agents/HEARTBEAT.md +++ b/.claude/agents/HEARTBEAT.md @@ -12,6 +12,28 @@ --- +## קריאת-ספ — קודם החוקה (00), אז ספ-התחום — לפני פעולה מהותית (INV-AG1) ⚠️ + +**לפני העבודה המהותית בכל ריצה** — קרא תחילה את חוקת המערכת, ואז את ספ-התחום הרלוונטי לתפקידך. הסוכן **אינו פועל "מהזיכרון"**: המקור הקנוני להתנהגות הוא החוקה + ספ-התחום, לא הרגלים מריצות קודמות. שלב זה **קודם** ל-§0–§8 התפעוליים שמתחתיו (הם ה-checklist של ההפעלה; קריאת-הספ קודמת לעבודה המהותית). + +1. **תמיד ראשון:** [`~/legal-ai/docs/spec/00-constitution.md`](../../docs/spec/00-constitution.md) — ייעוד, עקרונות-עבודה, ה-invariants הגלובליים G1–G11, ואינדקס-הספ (§7). +2. **אז ספ-התחום לפי תפקידך** (מ-frontmatter `name`): + +| סוכן (`name`) | ספ-תחום לקרוא לפני פעולה | +|---------------|---------------------------| +| `legal-ceo` | **00 + כל הספ** (מתזמר → צריך תמונה מלאה); ניתוב comments → `X3-integration-deploy.md §1ב` | +| `legal-proofreader` | `01-ingest.md` (קליטה / טקסט-מחולץ) | +| `legal-researcher` | `03-retrieval.md` (3 קורפוסים, hybrid/RRF, attribution); קליטת-פסיקה → `01-ingest.md` | +| `legal-analyst` | `02-data-model.md` + `03-retrieval.md` + `04-analysis-writing.md` | +| `legal-writer` | `04-analysis-writing.md` + `05-qa-review.md` (כותב מול שערי-QA) | +| `legal-qa` | `05-qa-review.md` (שערי QA + שערים אנושיים) | +| `legal-exporter` | `06-export.md` (ייצוא DOCX לפי תבנית דפנה) | +| `hermes-curator` | `07-learning.md` (Hermes · לקחים · לולאת פידבק) | + +> כל הקבצים תחת [`~/legal-ai/docs/spec/`](../../docs/spec/). המפה המלאה (תפקיד→ספ, frontmatter, שערי-אישור) ב-[`X4-agents.md`](../../docs/spec/X4-agents.md). זהו מופע של **G10** (המערכת מסייעת תחת שערים אנושיים) — הסוכן פועל בגבולות שהחוקה מגדירה. קובץ-הסוכן שלך חוזר על ההפניה הזו בראשו ("קרא לפני פעולה"). + +--- + ## §0. כל קריאה ל-Paperclip API — דרך `pc.sh` בלבד **ה-skill הרשמי משתמש ב-`curl` ישיר. אצלנו אסור.** משתמשים ב-helper שלנו: diff --git a/.claude/agents/hermes-curator.md b/.claude/agents/hermes-curator.md index 4a59fc8..a1f9efa 100644 --- a/.claude/agents/hermes-curator.md +++ b/.claude/agents/hermes-curator.md @@ -15,6 +15,10 @@ profiles: # מנהל ידע — Hermes Knowledge Curator +## קרא לפני פעולה (INV-AG1) + +לפני העבודה המהותית — אני קורא **תחילה** את חוקת המערכת `~/legal-ai/docs/spec/00-constitution.md` (ייעוד, G1–G11, אינדקס-ספ §7), ואז את ספ-התחום שלי: `~/legal-ai/docs/spec/07-learning.md` (Hermes · לקחים · לולאת פידבק). איני פועל "מהזיכרון" — המקור הקנוני להתנהגות הוא החוקה + ספ-התחום. ראה גם [HEARTBEAT.md](HEARTBEAT.md) ("קריאת-ספ") ו-`~/legal-ai/docs/spec/X4-agents.md` (מפת תפקיד→ספ). הצעותיי עוברות **אישור-יו"ר ידני** לפני commit (G10). + ## רקע אני סוכן Hermes Agent (לא Claude Code), מותקן בתור POC לבדיקה האם Hermes diff --git a/.claude/agents/legal-analyst.md b/.claude/agents/legal-analyst.md index 4f6bc1a..75c6b14 100644 --- a/.claude/agents/legal-analyst.md +++ b/.claude/agents/legal-analyst.md @@ -32,6 +32,10 @@ tools: אתה מנתח ומחקר משפטי מומחה בדיני תכנון ובניה ומקרקעין בישראל. תפקידך לנתח תיקי ערר של ועדת ערר לתכנון ובניה, מחוז ירושלים, לבנות ניתוח משפטי מובנה, ולהפיק שאלות מחקר ממוקדות. +## קרא לפני פעולה (INV-AG1) + +לפני העבודה המהותית — קרא **תחילה** את חוקת המערכת `~/legal-ai/docs/spec/00-constitution.md` (ייעוד, G1–G11, אינדקס-ספ §7), ואז את ספ-התחום שלך: `~/legal-ai/docs/spec/02-data-model.md` + `03-retrieval.md` + `04-analysis-writing.md`. אינך פועל "מהזיכרון" — המקור הקנוני להתנהגות הוא החוקה + ספ-התחום. ראה גם [HEARTBEAT.md](HEARTBEAT.md) ("קריאת-ספ") ו-`~/legal-ai/docs/spec/X4-agents.md` (מפת תפקיד→ספ). מסמכי-ה-`docs/` שלהלן משלימים — ספ-התחום קודם. + ## לפני שאתה מתחיל — קרא 1. **`docs/decision-methodology.md`** — מתודולוגיה אנליטית: איך לחשוב על החלטה מעין-שיפוטית, מבנה סילוגיסטי, סדר סוגיות, טיפול בטענות diff --git a/.claude/agents/legal-ceo.md b/.claude/agents/legal-ceo.md index 9e2e074..81f0de0 100644 --- a/.claude/agents/legal-ceo.md +++ b/.claude/agents/legal-ceo.md @@ -47,6 +47,10 @@ tools: אתה מנהל תהליך כתיבת החלטות של ועדת ערר לתכנון ובניה, מחוז ירושלים. יו"ר הוועדה היא עו"ד דפנה תמיר. +## קרא לפני פעולה (INV-AG1) + +לפני העבודה המהותית — קרא **תחילה** את חוקת המערכת `~/legal-ai/docs/spec/00-constitution.md` (ייעוד, G1–G11, אינדקס-ספ §7), ואז — כיוון שאתה ה**מתזמר** וצריך תמונה מלאה — את **כל קבצי-הספ** (`00`–`07`, `X1`–`X5`) תחת `~/legal-ai/docs/spec/`; לניתוב comments בפרט → `X3-integration-deploy.md §1ב`. אינך פועל "מהזיכרון" — המקור הקנוני להתנהגות הוא החוקה + ספ-התחום. ראה גם [HEARTBEAT.md](HEARTBEAT.md) ("קריאת-ספ") ו-`~/legal-ai/docs/spec/X4-agents.md` (מפת תפקיד→ספ). + ## שפה עבוד תמיד בעברית. diff --git a/.claude/agents/legal-exporter.md b/.claude/agents/legal-exporter.md index aca0046..66037e3 100644 --- a/.claude/agents/legal-exporter.md +++ b/.claude/agents/legal-exporter.md @@ -26,6 +26,10 @@ tools: אתה סוכן שמבצע את התהליך הסופי של הכנת טיוטת החלטה לעיון. תפקידך: בדיקה אחרונה, ייצוא ל-DOCX מעוצב, ושמירה מסודרת. +## קרא לפני פעולה (INV-AG1) + +לפני העבודה המהותית — קרא **תחילה** את חוקת המערכת `~/legal-ai/docs/spec/00-constitution.md` (ייעוד, G1–G11, אינדקס-ספ §7), ואז את ספ-התחום שלך: `~/legal-ai/docs/spec/06-export.md` (ייצוא DOCX לפי תבנית דפנה). אינך פועל "מהזיכרון" — המקור הקנוני להתנהגות הוא החוקה + ספ-התחום. ראה גם [HEARTBEAT.md](HEARTBEAT.md) ("קריאת-ספ") ו-`~/legal-ai/docs/spec/X4-agents.md` (מפת תפקיד→ספ). + ## שפה עבוד תמיד בעברית. diff --git a/.claude/agents/legal-proofreader.md b/.claude/agents/legal-proofreader.md index 339880e..4ae0764 100644 --- a/.claude/agents/legal-proofreader.md +++ b/.claude/agents/legal-proofreader.md @@ -18,6 +18,10 @@ tools: אתה מגיה מסמכים משפטיים. תפקידך לבדוק טקסט שחולץ מסריקות (OCR) ולתקן שגיאות לפני שהמנתח המשפטי עובד איתו. +## קרא לפני פעולה (INV-AG1) + +לפני העבודה המהותית — קרא **תחילה** את חוקת המערכת `~/legal-ai/docs/spec/00-constitution.md` (ייעוד, G1–G11, אינדקס-ספ §7), ואז את ספ-התחום שלך: `~/legal-ai/docs/spec/01-ingest.md` (קליטה / טקסט-מחולץ). אינך פועל "מהזיכרון" — המקור הקנוני להתנהגות הוא החוקה + ספ-התחום. ראה גם [HEARTBEAT.md](HEARTBEAT.md) ("קריאת-ספ") ו-`~/legal-ai/docs/spec/X4-agents.md` (מפת תפקיד→ספ). + ## שפה עבוד תמיד בעברית. diff --git a/.claude/agents/legal-qa.md b/.claude/agents/legal-qa.md index 6f4c6e5..04fd7b8 100644 --- a/.claude/agents/legal-qa.md +++ b/.claude/agents/legal-qa.md @@ -25,6 +25,10 @@ tools: אתה בודק איכות מומחה. תפקידך לבדוק שהחלטה מוכנה לייצוא ולחתימת יו"ר הוועדה. +## קרא לפני פעולה (INV-AG1) + +לפני העבודה המהותית — קרא **תחילה** את חוקת המערכת `~/legal-ai/docs/spec/00-constitution.md` (ייעוד, G1–G11, אינדקס-ספ §7), ואז את ספ-התחום שלך: `~/legal-ai/docs/spec/05-qa-review.md` (שערי QA + שערים אנושיים). אינך פועל "מהזיכרון" — המקור הקנוני להתנהגות הוא החוקה + ספ-התחום. ראה גם [HEARTBEAT.md](HEARTBEAT.md) ("קריאת-ספ") ו-`~/legal-ai/docs/spec/X4-agents.md` (מפת תפקיד→ספ). + ## שפה עבוד תמיד בעברית. diff --git a/.claude/agents/legal-researcher.md b/.claude/agents/legal-researcher.md index e7dfe2e..947d132 100644 --- a/.claude/agents/legal-researcher.md +++ b/.claude/agents/legal-researcher.md @@ -42,6 +42,10 @@ tools: אתה חוקר משפטי מומחה בתכנון ובניה ישראלי. תפקידך לנתח את מסמכי הרקע בתיק ערר — פסיקה, תכניות, פרוטוקולים, החלטות ביניים. +## קרא לפני פעולה (INV-AG1) + +לפני העבודה המהותית — קרא **תחילה** את חוקת המערכת `~/legal-ai/docs/spec/00-constitution.md` (ייעוד, G1–G11, אינדקס-ספ §7), ואז את ספ-התחום שלך: `~/legal-ai/docs/spec/03-retrieval.md` (3 קורפוסים, hybrid/RRF, attribution); לקליטת-פסיקה → `01-ingest.md`. אינך פועל "מהזיכרון" — המקור הקנוני להתנהגות הוא החוקה + ספ-התחום. ראה גם [HEARTBEAT.md](HEARTBEAT.md) ("קריאת-ספ") ו-`~/legal-ai/docs/spec/X4-agents.md` (מפת תפקיד→ספ). + ## שפה עבוד תמיד בעברית. diff --git a/.claude/agents/legal-writer.md b/.claude/agents/legal-writer.md index 60c8598..546d9b5 100644 --- a/.claude/agents/legal-writer.md +++ b/.claude/agents/legal-writer.md @@ -33,6 +33,10 @@ tools: אתה כותב משפטי מומחה. תפקידך לכתוב החלטות של ועדת ערר לתכנון ובניה, מחוז ירושלים, בסגנון של יו"ר הוועדה עו"ד דפנה תמיר. +## קרא לפני פעולה (INV-AG1) + +לפני העבודה המהותית — קרא **תחילה** את חוקת המערכת `~/legal-ai/docs/spec/00-constitution.md` (ייעוד, G1–G11, אינדקס-ספ §7), ואז את ספ-התחום שלך: `~/legal-ai/docs/spec/04-analysis-writing.md` + `05-qa-review.md` (אתה כותב מול שערי-QA). אינך פועל "מהזיכרון" — המקור הקנוני להתנהגות הוא החוקה + ספ-התחום. ראה גם [HEARTBEAT.md](HEARTBEAT.md) ("קריאת-ספ") ו-`~/legal-ai/docs/spec/X4-agents.md` (מפת תפקיד→ספ). + ## שפה עבוד תמיד בעברית. diff --git a/.taskmaster/tasks/tasks.json b/.taskmaster/tasks/tasks.json index c14b70f..8dcdb72 100644 --- a/.taskmaster/tasks/tasks.json +++ b/.taskmaster/tasks/tasks.json @@ -2385,7 +2385,7 @@ "description": "HEARTBEAT/agent docs דורשים קריאת 00-constitution + ספ-תחום רלוונטי לפני פעולה. משנה התנהגות-סוכן בייצור; prereq לתת-פרויקט 5.", "details": "מכסה GAP-23. מספק INV-AG1. severity: High. סוג: docs+chair-decision. דורש ספ יציב (קיים) + החלטה על שילוב בזרימת-הסוכנים. הופרד מ-FU-8a לפי החלטת chaim 2026-05-31 (GAP-21/22 = pure-code עכשיו).", "testStrategy": "", - "status": "pending", + "status": "done", "dependencies": [ "66" ], @@ -2396,12 +2396,14 @@ "title": "[GAP-23] חיווט הספ לסוכנים", "description": "HEARTBEAT/agent docs דורשים קריאת 00-constitution + ספ-תחום (prereq לתת-פרויקט 5).", "dependencies": [], - "details": "INV-AG1", - "status": "pending", + "details": "INV-AG1\n\nהושלם 2026-05-31 (FU-8b/GAP-23 → INV-AG1). חיווט הספ לסוכנים:\n\n1. **HEARTBEAT.md:** נוסף סעיף עליון \"קריאת-ספ — קודם החוקה (00), אז ספ-התחום — לפני פעולה מהותית (INV-AG1)\" לפני §0–§8 התפעוליים, כולל טבלת תפקיד→ספ (8 שורות: ceo→00+כל-הספ, proofreader→01, researcher→03+01, analyst→02+03+04, writer→04+05, qa→05, exporter→06, hermes-curator→07).\n\n2. **8 קבצי-סוכן:** legal-ceo, legal-proofreader, legal-researcher, legal-analyst, legal-writer, legal-qa, legal-exporter, hermes-curator — כל אחד קיבל סעיף \"קרא לפני פעולה (INV-AG1)\" בראש גוף-הקובץ עם קריאת 00-constitution.md תחילה ואז ספ-התחום לפי הטבלה ב-X4 §2.\n\n3. **X4-agents.md:** שדה \"אכיפה\" של INV-AG1 עודכן ל\"מחוּוט (FU-8b, 2026-05-31): פרוצדורלי, לא שער-קוד\". סעיף §5 (בוצע) מתעד את הפעולות שבוצעו.\n\n**אופי האכיפה:** פרוצדורלית בכוונה — invariant פרויקטלי-תפעולי (מי קורא מה לפני שהוא פועל), אין שער-קוד שמכריח את הקריאה — זה גלום בטבע ה-invariant (מבוצע ע\"י הסוכן, לא ע\"י מערכת חיצונית).\n", + "status": "done", "testStrategy": "", - "parentId": "69" + "parentId": "69", + "updatedAt": "2026-05-31T16:01:42.032Z" } - ] + ], + "updatedAt": "2026-05-31T16:01:42.032Z" }, { "id": "70", @@ -2420,9 +2422,9 @@ ], "metadata": { "version": "1.0.0", - "lastModified": "2026-05-31T14:55:38.296Z", + "lastModified": "2026-05-31T16:01:42.033Z", "taskCount": 70, - "completedCount": 63, + "completedCount": 64, "tags": [ "legal-ai" ] diff --git a/docs/spec/X4-agents.md b/docs/spec/X4-agents.md index 28a074e..89190ba 100644 --- a/docs/spec/X4-agents.md +++ b/docs/spec/X4-agents.md @@ -95,8 +95,10 @@ Paperclip בקונפליקט (project-specific מנצח default), אך אינו קבצי-הסוכן תחת [.claude/agents/](../../.claude/agents/) (frontmatter + instructions) + [00-constitution.md §7](00-constitution.md#7-אינדקס-הספ) (אינדקס הספ — איזה קובץ אוכף איזה invariant). (invariant פרויקטלי-תפעולי — ללא פרוטוקול ≥3-המקורות; משרת את העיקרון הגלובלי G10.) -**אכיפה:** נוהל — ה-checklist ב-HEARTBEAT + הפניות-הספ בקבצי-הסוכן. **אין אכיפה אוטומטית** -שתכריח קריאת-ספ לפני פעולה (ראה §5 — זה היעד). +**אכיפה:** נוהל — **מחוּוט** (FU-8b, 2026-05-31): סעיף "קריאת-ספ — קודם החוקה (00), אז ספ-התחום" +ב-[HEARTBEAT.md](../../.claude/agents/HEARTBEAT.md) (כולל טבלת תפקיד→ספ) + סעיף "קרא לפני פעולה (INV-AG1)" +בכל אחד מ-8 קבצי-הסוכן. אכיפה **פרוצדורלית** (נוהל לפני עבודה), לא אוטומטית: אין שער-קוד שמכריח +את הקריאה — זה גלום בטבע ה-invariant (פרויקטלי-תפעולי, מבוצע ע"י הסוכן). ראה §5. **הפרה ידועה:** — ### INV-AG2: סוכן דומייני פועל רק בתחום-החברה שלו @@ -113,16 +115,19 @@ another company`, [X2 §2](X2-multi-company.md)). --- -## 5. מצב קיים מול יעד — חיווט הספ לסוכנים +## 5. חיווט הספ לסוכנים — בוצע (FU-8b) -ספ-המערכת (קבצי 00–07, X1–X5) הוא **חדש** — קבצי-הסוכן וה-HEARTBEAT עדיין **אינם מפנים אליו** -במפורש; הם מפנים ל-CLAUDE.md, למסמכי-`docs/` הישנים, ול-skills. זהו פער אמיתי: +עד FU-8b קבצי-הסוכן וה-HEARTBEAT **לא הפנו** לספ-המערכת במפורש; הם הפנו ל-CLAUDE.md, למסמכי-`docs/` +הישנים, ול-skills. **בוצע ב-2026-05-31 (FU-8b / GAP-23):** -- **קיים:** HEARTBEAT אוכף checklist הפעלה (סינון-חברה, comments, pc.sh) אך **לא** מחייב קריאת - `00-constitution.md` או ספ-התחום. -- **יעד:** לחווט את HEARTBEAT וקבצי-הסוכן כך שיחייבו במפורש את INV-AG1 — קריאת החוקה + ספ-התחום - הרלוונטי (לפי הטבלה בסעיף 2) לפני עבודה מהותית. זהו תנאי-מוקדם לסוכני-התהליך (סעיף 3), שכל - עבודתם היא "לקרוא את הספ ולעשות שיעורי-בית". +- **HEARTBEAT.md:** נוסף סעיף עליון "קריאת-ספ — קודם החוקה (00), אז ספ-התחום — לפני פעולה מהותית + (INV-AG1)", **לפני** §0–§8 התפעוליים, ובו טבלת תפקיד→ספ (זהה לסעיף 2 כאן). זה ממקם את קריאת-החוקה + קודם ל-checklist ההפעלה ("קודם החוקה (00) + ספ-התחום, אז ה-HEARTBEAT התפעולי"). +- **8 קבצי-הסוכן:** כל אחד קיבל סעיף "קרא לפני פעולה (INV-AG1)" בראש גוף-הקובץ — קריאת + `00-constitution.md` תחילה, ואז ספ-התחום הרלוונטי לתפקידו (לפי הטבלה בסעיף 2). +- **אופי האכיפה:** פרוצדורלית (נוהל), לא שער-קוד — ראה INV-AG1 "אכיפה". + +זהו תנאי-מוקדם לסוכני-התהליך (סעיף 3), שכל עבודתם היא "לקרוא את הספ ולעשות שיעורי-בית". ---