docs: add comprehensive agent audit 2026-05-17
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 8s
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 8s
7-agent parallel audit of all Paperclip agents (CEO, analyst, researcher, writer, QA, exporter, proofreader, curator). Found 12 issues including 3 critical: - Exporter: V vs v naming mismatch in DOCX versioning - Exporter: case.status not updated to exported after export - Researcher: section ז missing from case 8174-24 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
399
docs/agent-audit-2026-05-17.md
Normal file
399
docs/agent-audit-2026-05-17.md
Normal file
@@ -0,0 +1,399 @@
|
|||||||
|
# דו"ח Audit סוכנים — 2026-05-17
|
||||||
|
|
||||||
|
> נוצר על-ידי 7 sub-agents מקבילים שחקרו כל סוכן בנפרד.
|
||||||
|
> כיסוי: קבצי הנחיות, תצורת DB, skills, MCP tools, freshness, drift CMP↔CMPA.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## סיכום מנהלים
|
||||||
|
|
||||||
|
### טבלת מצב כללית
|
||||||
|
|
||||||
|
| סוכן | שורות | מודל ב-instructions | מודל ב-DB | Skills CMP | Skills CMPA | Drift? | דחיפות |
|
||||||
|
|------|-------|-------------------|---------|-----------|-----------|--------|--------|
|
||||||
|
| עוזר משפטי (CEO) | 796 | claude-sonnet-4-6 | claude-opus-4-6 | 9 | 6 | ✅ routing OK | 🟡 גבוה |
|
||||||
|
| מנתח משפטי | 498 | claude-opus-4-7 | claude-opus-4-6 | 9 | 6 | ⚠️ sync gap 13 ימים | 🟡 גבוה |
|
||||||
|
| חוקר תקדימים | 240 | claude-sonnet-4-6 | claude-sonnet-4-6 | 9 | 6 | ⚠️ §ז חסר ב-8174 | 🔴 קריטי |
|
||||||
|
| כותב החלטה | 410 | claude-opus-4-7 | claude-opus-4-6 | 9 | 6 | ✅ | 🟡 גבוה |
|
||||||
|
| בודק איכות (QA) | 219 | claude-sonnet-4-6 | claude-sonnet-4-6 | 9 | 6 | ✅ | 🟡 בינוני |
|
||||||
|
| מייצא טיוטה | 151 | claude-sonnet-4-6 | claude-sonnet-4-6 | 9 | 6 | ✅ | 🔴 קריטי |
|
||||||
|
| מגיה מסמכים | 115 | claude-opus-4-7 | claude-opus-4-6 | 9 | 6 | ✅ | 🟡 בינוני |
|
||||||
|
| מנהל ידע (Curator) | 147 | deepseek-v4-pro | deepseek-v4-pro | 9 | 6 | ✅ | 🟢 תקין |
|
||||||
|
|
||||||
|
### בעיות לפי עדיפות
|
||||||
|
|
||||||
|
| # | חומרה | סוכן | בעיה | קבוצה |
|
||||||
|
|---|-------|------|------|-------|
|
||||||
|
| 1 | 🔴 קריטי | מייצא | `טיוטה-V` בהנחיות vs `טיוטה-v` בקוד — דורס גרסאות | instructions |
|
||||||
|
| 2 | 🔴 קריטי | מייצא | case.status לא מעודכן ל-`exported` אחרי ייצוא | קוד |
|
||||||
|
| 3 | 🔴 קריטי | חוקר | §ז (query log) חסר בתיק 8174-24 — QA אמור לחסום | תיק פעיל |
|
||||||
|
| 4 | 🟠 גבוה | כולם | Skills asymmetry: CMPA חסרה 3+ skills שיש ב-CMP | DB config |
|
||||||
|
| 5 | 🟠 גבוה | חוקר | `search_internal_decisions` לא מתועד בהנחיות | instructions |
|
||||||
|
| 6 | 🟠 גבוה | מייצא | נתיב `legal-docx/SKILL.md` hardcoded ל-UUID של CMP — CMPA יכשל | instructions |
|
||||||
|
| 7 | 🟠 גבוה | CEO | Project ID 1130-25 hardcoded — test case, לא מייצג | instructions |
|
||||||
|
| 8 | 🟡 בינוני | רוב | Model drift: instructions מציינות גרסה שונה ממה שרץ ב-DB | הכל |
|
||||||
|
| 9 | 🟡 בינוני | QA | corpus_queries_logged: לא ברור אם בדיקה ידנית או אוטומטית | instructions |
|
||||||
|
| 10 | 🟡 בינוני | CEO | maxConcurrentRuns=NULL ב-DB (שאר הסוכנים=1) | DB config |
|
||||||
|
| 11 | 🟡 בינוני | מגיה | לא ברור אם MCP tools תומכים ב-write לתיקיות extracted/proofread | tools |
|
||||||
|
| 12 | 🟢 נמוך | מנהל ידע | לא מוגדר מי מממש את ההצעות ל-SKILL.md/lessons.md | תהליך |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ממצאים לפי סוכן
|
||||||
|
|
||||||
|
### 1. עוזר משפטי (CEO)
|
||||||
|
|
||||||
|
**קובץ:** `.claude/agents/legal-ceo.md` — 796 שורות, עודכן 2026-05-17
|
||||||
|
|
||||||
|
**תצורה:**
|
||||||
|
| חברה | ID | Model | Budget |
|
||||||
|
|------|-----|-------|--------|
|
||||||
|
| CMP | `752cebdd-6748-4a04-aacd-c7ab0294ef33` | claude-opus-4-6 | 1500¢ |
|
||||||
|
| CMPA | `cdbfa8bc-3d61-41a4-a2e7-677ec7d34562` | claude-opus-4-6 | 1500¢ |
|
||||||
|
|
||||||
|
**routing conditions:** `user_commented`, `agent_completion`, `precedent_extraction_*`, `weekly-feedback-job`, fallback→heartbeat רגיל
|
||||||
|
|
||||||
|
**MCP tools מוזכרים (41):** case_get/list/update, document_list, get_claims, get_chair_directions, record/list_chair_feedback, approve_direction, brainstorm_directions, search_case_documents, search_precedent_library, workflow_status, processing_status, get_metrics, validate_decision, set_outcome, export_docx, apply_user_edit, list_bookmarks, revise_draft, precedent_process_pending, extract_halachot/metadata, library_get/list, halacha_review, halachot_pending, extract_appraiser_facts, write_interim_draft, export_interim_draft
|
||||||
|
|
||||||
|
**✅ תקין:**
|
||||||
|
- Routing logic מלא ועדכני (כולל weekly-feedback-job שתוקן לאחרונה)
|
||||||
|
- Company filtering ברור (טבלה עם UUIDs וטווחי תיקים)
|
||||||
|
- Wakeup דרך API בלבד (לא DB ישיר) — מוגדר במפורש
|
||||||
|
- HEARTBEAT.md references נכונים (§0, §1, §1.7)
|
||||||
|
- weekly-feedback-job: כתיבה לקובץ בלבד, ללא issueId — נכון
|
||||||
|
|
||||||
|
**⚠️ בעיות:**
|
||||||
|
- 🟠 **Model drift:** instructions = claude-sonnet-4-6, DB = claude-opus-4-6
|
||||||
|
- 🟠 **Hardcoded Project ID:** `25c1b4a1-2c0e-4a2d-9938-8ae56ccda6f1` (תיק 1130-25) — צריך להיות דינמי
|
||||||
|
- 🟡 **maxConcurrentRuns = NULL** ב-DB (שאר הסוכנים = 1)
|
||||||
|
- 🟡 **MCP startup race:** הוראות מדברות על sleep+retry אבל לא כ-code אוטומטי
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. מנתח משפטי
|
||||||
|
|
||||||
|
**קובץ:** `.claude/agents/legal-analyst.md` — 498 שורות, עודכן 2026-05-04
|
||||||
|
|
||||||
|
**תצורה:**
|
||||||
|
| חברה | ID | Model | Budget |
|
||||||
|
|------|-----|-------|--------|
|
||||||
|
| CMP | `c26e9439-a88a-49dc-9e67-2262c95db65c` | claude-opus-4-6 | 1500¢ |
|
||||||
|
| CMPA | `f70fd353-...` | claude-opus-4-6 | 1500¢ |
|
||||||
|
|
||||||
|
**MCP tools (18):** case_get/list/update, document_list/get_text, extract_claims, extract_appraiser_facts, get_claims, search_case_documents, search_decisions, search_precedent_library, precedent_library_get/list, halacha_review, halachot_pending, find_similar_cases, workflow_status, processing_status
|
||||||
|
|
||||||
|
**Output artifacts:** `{case_dir}/documents/research/analysis-and-research.md`
|
||||||
|
|
||||||
|
**Query logging (§5ד/§7א):** לרשום כל `search_precedent_library`, `search_decisions`, `find_similar_cases` כולל ניסיונות עם 0 תוצאות
|
||||||
|
|
||||||
|
**✅ תקין:**
|
||||||
|
- כל 18 כלי MCP מוזכרים ומיושמים
|
||||||
|
- סיווג claim_type ברור (claim/response/reply)
|
||||||
|
- Wakeup CEO בפורמט נכון
|
||||||
|
- reference files קיימים
|
||||||
|
|
||||||
|
**⚠️ בעיות:**
|
||||||
|
- 🟠 **Model drift:** instructions = claude-opus-4-7, DB = claude-opus-4-6
|
||||||
|
- 🟡 **CMPA sync gap:** עדכון אחרון CMPA = 2026-05-04 (13 ימים לפני CMP)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. חוקר תקדימים
|
||||||
|
|
||||||
|
**קובץ:** `.claude/agents/legal-researcher.md` — 240 שורות, עודכן 2026-05-04
|
||||||
|
|
||||||
|
**תצורה:**
|
||||||
|
| חברה | ID | Model | Budget |
|
||||||
|
|------|-----|-------|--------|
|
||||||
|
| CMP | `35022af0-0498-4c3d-90ca-b0ab9e987198` | claude-sonnet-4-6 | 1500¢ |
|
||||||
|
| CMPA | `5dd06843-...` | claude-sonnet-4-6 | 1500¢ |
|
||||||
|
|
||||||
|
**MCP tools (29):** case_get/update, document_list/get_text, search_case_documents, search_decisions, find_similar_cases, extract_references, precedent_attach, precedent_list, precedent_search_library, search_precedent_library, library_get/list, extract_halachot/metadata, precedent_process_pending, halacha_review, halachot_pending, workflow_status
|
||||||
|
|
||||||
|
**Output artifact:** `{case_dir}/documents/research/precedent-research.md`
|
||||||
|
|
||||||
|
**Query logging (§ז):** חובה — כל query עם פילטרים, תוצאות, בחירה/דחייה, negative evidence
|
||||||
|
|
||||||
|
**✅ תקין:**
|
||||||
|
- שלושת הקורפוסים מוגדרים בבירור (פסיקה חיצונית / קאנון דפנה / ציטוטים ידניים)
|
||||||
|
- precedent_attach עם הוראות מלאות
|
||||||
|
- Wakeup CEO דינמי לפי חברה
|
||||||
|
|
||||||
|
**⚠️ בעיות:**
|
||||||
|
- 🔴 **§ז חסר בתיק 8174-24** — 1 מתוך 3 תיקים בדיסק חסר את תיעוד השאילתות. QA אמור לחסום ייצוא.
|
||||||
|
- 🟠 **`search_internal_decisions` לא מתועד** — הכלי ב-header אבל לא מוסבר בגוף ההנחיות. מתי להשתמש בו?
|
||||||
|
- 🟠 **Skills asymmetry CMPA** — CMPA חסרה: legal-assistant, legal-decision, legal-docx, diagnose-why-work-stopped, appendix-expert-intern, terminal-bench-loop
|
||||||
|
- 🟡 **`daphna-precedent-network.md` עדכון אחרון 27 אפריל** — עשוי להיות לפני תקדימים חדשים
|
||||||
|
- 🟡 **HEARTBEAT.md לא מוזכר בפירוש** — אין link ישיר בתחילת ההנחיות
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. כותב החלטה
|
||||||
|
|
||||||
|
**קובץ:** `.claude/agents/legal-writer.md` — 410 שורות, עודכן 2026-05-04
|
||||||
|
|
||||||
|
**תצורה:**
|
||||||
|
| חברה | ID | Model | Budget |
|
||||||
|
|------|-----|-------|--------|
|
||||||
|
| CMP | `7ed8686f-24bc-49a3-bc02-67ca15b895a9` | claude-opus-4-6 | 1500¢ |
|
||||||
|
| CMPA | `99289cb1-...` | claude-opus-4-6 | 1500¢ |
|
||||||
|
|
||||||
|
**Block range:** ה-יא (5-11), כותב בסדר; א-ד (אוטומטי), יב (אוטומטי)
|
||||||
|
|
||||||
|
**5 style docs לפני בלוק י (כולם קיימים):**
|
||||||
|
- `docs/daphna-voice-fingerprint.md` ✅ (עודכן 10 מאי)
|
||||||
|
- `docs/daphna-precedent-network.md` ✅ (עודכן 27 אפריל)
|
||||||
|
- `docs/daphna-architecture-by-outcome.md` ✅ (עודכן 28 אפריל)
|
||||||
|
- `docs/daphna-acceptance-architecture.md` ✅ (עודכן 28 אפריל)
|
||||||
|
- `docs/voice-1130-25.md` ✅ (עודכן 26 אפריל)
|
||||||
|
|
||||||
|
**MCP tools (18):** case_get/update, document_list/get_text, get_claims, get_chair_directions, get_decision_template, get_block_context, save_block_content, write_block, search_decisions, search_precedent_library, library_get/list, search_case_documents, get_style_guide, halacha_review, workflow_status, apply_user_edit
|
||||||
|
|
||||||
|
**✅ תקין:**
|
||||||
|
- 4 statuses של get_chair_directions מוגדרים (missing/empty/partial/complete)
|
||||||
|
- Revision mode ברור (לא לשמור ב-DB בעריכה)
|
||||||
|
- 10 anti-patterns ברורים
|
||||||
|
- Company filtering נכון (CEO IDs שונים לפי חברה)
|
||||||
|
|
||||||
|
**⚠️ בעיות:**
|
||||||
|
- 🟠 **Model drift:** instructions = claude-opus-4-7, DB = claude-opus-4-6
|
||||||
|
- 🟡 **חסר שלב 0 מפורש:** בדיקת `issue.description` (ההוראה הראשית מה-CEO)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. בודק איכות (QA)
|
||||||
|
|
||||||
|
**קובץ:** `.claude/agents/legal-qa.md` — 219 שורות, עודכן 2026-05-04
|
||||||
|
|
||||||
|
**תצורה:**
|
||||||
|
| חברה | ID | Model | Budget |
|
||||||
|
|------|-----|-------|--------|
|
||||||
|
| CMP | `1a5b229e-9220-4b13-940c-f8eb7285fc29` | claude-sonnet-4-6 | 1500¢ |
|
||||||
|
| CMPA | `7191ff77-...` | claude-sonnet-4-6 | 1500¢ |
|
||||||
|
|
||||||
|
**9 בדיקות (לא 8 — §7א הוא נפרד):**
|
||||||
|
1. שלמות מבנית — critical
|
||||||
|
2. רקע ניטרלי — critical
|
||||||
|
3. כיסוי טענות — critical
|
||||||
|
4. משקלות — warning
|
||||||
|
5. ללא כפילות — warning
|
||||||
|
6. מספור רציף — warning
|
||||||
|
7א. שאילתות קורפוס (corpus_queries_logged) — **critical blocker**
|
||||||
|
7. תאימות מתודולוגיה — critical
|
||||||
|
8. קול דפנה — critical
|
||||||
|
|
||||||
|
**Reference files (כולם קיימים):**
|
||||||
|
- `docs/daphna-decision-tree.md` ✅ (521 שורות)
|
||||||
|
- `docs/daphna-voice-fingerprint.md` ✅ (471 שורות)
|
||||||
|
- `docs/daphna-architecture-by-outcome.md` ✅ (381 שורות)
|
||||||
|
- `docs/daphna-acceptance-architecture.md` ✅ (640 שורות)
|
||||||
|
- `docs/daphna-block-zayin-claims.md` ✅ (385 שורות)
|
||||||
|
- `docs/daphna-precedent-network.md` ✅ (379 שורות)
|
||||||
|
|
||||||
|
**✅ תקין:**
|
||||||
|
- כל reference files קיימים ונגישים
|
||||||
|
- Company filtering מתועד (CEO IDs נכונים)
|
||||||
|
- Decision logic done/blocked מוגדרת
|
||||||
|
|
||||||
|
**⚠️ בעיות:**
|
||||||
|
- 🟡 **בדיקה 7א לא ברורה** — אוטומטית (validate_decision) או ידנית (grep בקובצי markdown)?
|
||||||
|
- 🟡 **בדיקה 8 (קול דפנה) סובייקטיבית** — חסרות דוגמאות anti-patterns מדידות
|
||||||
|
- 🟡 **get_metrics() — אין ספי קבלה** — מה מספר/אחוז שמוגדר כ-pass?
|
||||||
|
- 🟡 **decision tree:** אם רק בדיקות 4-6 (warning) נכשלו — done או blocked?
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6. מייצא טיוטה (Exporter)
|
||||||
|
|
||||||
|
**קובץ:** `.claude/agents/legal-exporter.md` — 151 שורות, עודכן 2026-05-04
|
||||||
|
|
||||||
|
**תצורה:**
|
||||||
|
| חברה | ID | Model | Budget |
|
||||||
|
|------|-----|-------|--------|
|
||||||
|
| CMP | `d0dc703b-ca83-4883-bca7-c9449e8713cd` | claude-sonnet-4-6 | 1500¢ |
|
||||||
|
| CMPA | `ada99a7d-...` | claude-sonnet-4-6 | 1500¢ |
|
||||||
|
|
||||||
|
**MCP tools (8):** export_docx, apply_user_edit, list_bookmarks, revise_draft, validate_decision, get_claims, get_block_context, workflow_status
|
||||||
|
|
||||||
|
**✅ תקין:**
|
||||||
|
- Git integration לכל ייצוא/עדכון
|
||||||
|
- validate_decision לפני export מוגדר
|
||||||
|
- active_draft detection (עריכה-*.docx) מוגדר
|
||||||
|
|
||||||
|
**⚠️ בעיות:**
|
||||||
|
- 🔴 **Naming mismatch קריטי:** הנחיות → `טיוטה-V{N}.docx` (V גדולה); קוד `revise_draft` → `טיוטה-v{N}.docx` (v קטנה); בדיסק בפועל → `טיוטה-v1.docx` (v קטנה). **הסוכן יחפש V גדולה ולא ימצא — יתחיל מ-v1 בכל הפעלה ויחליף קבצים קיימים!**
|
||||||
|
- 🔴 **case.status לא מעודכן ל-`exported`** — אחרי export מצליח, הסטטוס נשאר `drafted`/`reviewed`; הסטטוס `exported` קיים ב-DB schema ומוחרג מ-stale query
|
||||||
|
- 🟠 **legal-docx SKILL.md path hardcoded לCMP UUID** — CMPA ייכשל בקריאת ה-SKILL.md
|
||||||
|
- נכון: `/home/chaim/.paperclip/instances/default/skills/42a7acd0-.../legal-docx/SKILL.md`
|
||||||
|
- חסר: דינמי לפי `$PAPERCLIP_COMPANY_ID`
|
||||||
|
- 🟡 **Heartbeat grace=60s** — אם export DOCX > 60s, שני instances יתעוררו במקביל
|
||||||
|
- 🟡 **File size validation** — מוזכר בהנחיות אך לא מיושם בקוד
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 7. מגיה מסמכים (Proofreader)
|
||||||
|
|
||||||
|
**קובץ:** `.claude/agents/legal-proofreader.md` — 115 שורות, עודכן 2026-05-04
|
||||||
|
|
||||||
|
**תצורה:**
|
||||||
|
| חברה | ID | Model | Budget |
|
||||||
|
|------|-----|-------|--------|
|
||||||
|
| CMP | `410c0167-27dc-485c-a51b-7aa8b9ff2217` | claude-opus-4-6 | 1500¢ |
|
||||||
|
| CMPA | `17839fc6-...` | claude-opus-4-6 | 1500¢ |
|
||||||
|
|
||||||
|
**OCR workflow — 5 שלבים:** זיהוי → תיקון אוטומטי (abbreviations.json) → הגהה חכמה → שמירה → דיווח+סגירה
|
||||||
|
|
||||||
|
**abbreviations.json:** קיים ב-`/home/chaim/legal-ai/data/abbreviations.json` (2545 bytes, עודכן אפריל)
|
||||||
|
|
||||||
|
**✅ תקין:**
|
||||||
|
- abbreviations.json קיים
|
||||||
|
- Wakeup CEO דינמי לפי חברה
|
||||||
|
- חיוב סגירת issue
|
||||||
|
|
||||||
|
**⚠️ בעיות:**
|
||||||
|
- 🟠 **Model drift:** instructions = claude-opus-4-7, DB = claude-opus-4-6
|
||||||
|
- 🟡 **MCP write support לתיקיות:** לא אומת שה-tools תומכים בכתיבה ל-`documents/proofread/`
|
||||||
|
- 🟡 **Placeholder `{issue-id}` בקוד:** pc.sh calls משתמשות ב-literal `{issue-id}` — האם הסוכן מחליף עם `$PAPERCLIP_TASK_ID`?
|
||||||
|
- 🟡 **`extraction_status = proofread`:** האם השדה קיים ב-MCP document schema?
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 8. מנהל ידע (Hermes Curator)
|
||||||
|
|
||||||
|
**קובץ:** `.claude/agents/hermes-curator.md` — 147 שורות, עודכן 2026-05-10
|
||||||
|
|
||||||
|
**תצורה:**
|
||||||
|
| חברה | ID | Adapter | Model | Budget |
|
||||||
|
|------|-----|---------|-------|--------|
|
||||||
|
| CMP | `60dce831-5c5b-4bae-bda9-5282d506f0dc` | deepseek_local | deepseek-v4-pro | 1500¢ |
|
||||||
|
| CMPA | `d6f7c55d-570a-46b8-8d72-1286d07da0d8` | deepseek_local | deepseek-v4-pro | 1500¢ |
|
||||||
|
|
||||||
|
**Profiles:** `~/.hermes/profiles/curator-cmp/` ✅ + `curator-cmpa/` ✅ (שניהם קיימים)
|
||||||
|
|
||||||
|
**Trigger:** UI "סמן כסופי" → `web/paperclip_client.py:pc_wake_curator_for_final()` → sub-issue + wakeup
|
||||||
|
|
||||||
|
**MCP tools (6):** case_get, case_get_final_text, document_list, get_style_guide, precedent_library_list, search_internal_decisions, halacha_review
|
||||||
|
|
||||||
|
**✅ תקין:**
|
||||||
|
- deepseek_local מוגדר נכון בשתי החברות
|
||||||
|
- Profiles קיימים ועובדים (MEMORY.md מ-06/05 עם 5 ממצאים)
|
||||||
|
- Read-only design — לא מעדכן קבצים ישירות
|
||||||
|
- env vars נדרשים מתועדים
|
||||||
|
|
||||||
|
**⚠️ בעיות:**
|
||||||
|
- 🟢 **לא מוגדר:** מי מממש הצעות ל-SKILL.md/lessons.md שה-curator מציע ב-comments?
|
||||||
|
- 🟢 **Hermes bias:** DeepSeek V4-Pro עלול לפרש תוצאות בצורה סובייקטיבית — אין oversight layer
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## בעיות חוצות-סוכנים
|
||||||
|
|
||||||
|
### 1. Skills Asymmetry CMP vs CMPA (🟠 גבוה)
|
||||||
|
|
||||||
|
**Skills ב-CMP (9):**
|
||||||
|
- משותפים (6): paperclip, paperclip-converting-plans-to-tasks, paperclip-create-agent, paperclip-create-plugin, paperclip-dev, para-memory-files
|
||||||
|
- ייחודיים CMP (3+): legal-assistant, legal-decision, legal-docx, appendix-expert-intern, diagnose-why-work-stopped, terminal-bench-loop
|
||||||
|
|
||||||
|
**Skills ב-CMPA (6):** משותפים בלבד — **חסרים כל ה-legal-* skills**
|
||||||
|
|
||||||
|
**השפעה:** סוכני CMPA לא יכולים להשתמש ב-legal-decision skill (כתיבה), legal-assistant (ניתוח), legal-docx (DOCX). לא ברור אם זו החלטה מכוונת (CMPA עובד אחרת?) או gap בסנכרון.
|
||||||
|
|
||||||
|
**פעולה:** הרץ `sync_agents_across_companies.py --verify` עם PAPERCLIP_BOARD_API_KEY לבדיקה.
|
||||||
|
|
||||||
|
### 2. Model Version Drift (🟡 בינוני)
|
||||||
|
|
||||||
|
ב-DB כל הסוכנים רצים על claude-opus-4-6 או claude-sonnet-4-6, אבל קבצי הנחיות מציינים גרסאות שונות:
|
||||||
|
|
||||||
|
| סוכן | instructions מציין | DB רץ על |
|
||||||
|
|------|-------------------|---------|
|
||||||
|
| CEO | claude-sonnet-4-6 | claude-opus-4-6 |
|
||||||
|
| מנתח | claude-opus-4-7 | claude-opus-4-6 |
|
||||||
|
| כותב | claude-opus-4-7 | claude-opus-4-6 |
|
||||||
|
| מגיה | claude-opus-4-7 | claude-opus-4-6 |
|
||||||
|
| חוקר, QA, מייצא | claude-sonnet-4-6 | claude-sonnet-4-6 ✅ |
|
||||||
|
| מנהל ידע | deepseek-v4-pro | deepseek-v4-pro ✅ |
|
||||||
|
|
||||||
|
**לא ברור:** האם CEO/מנתח/כותב **אמורים** לרוץ על Opus (בחירה מכוונת לאיכות) ורק קבצי instructions לא עודכנו? או שה-DB צריך להתעדכן?
|
||||||
|
|
||||||
|
### 3. HEARTBEAT.md Reference (🟢 נמוך)
|
||||||
|
|
||||||
|
קובץ `legal-researcher.md` לא מפנה ל-`HEARTBEAT.md` בפירוש בתחילת הקובץ. שאר הסוכנים כן עושים זאת.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## רשימת תיקונים לפי עדיפות
|
||||||
|
|
||||||
|
### 🔴 קריטי — לתקן לפני תיק הבא
|
||||||
|
|
||||||
|
1. **`legal-exporter.md` + `web/app.py`/`drafting.py`:** אחד הדברים:
|
||||||
|
- תיקן הנחיות: שנה `טיוטה-V` → `טיוטה-v` (v קטנה) בכל המקומות
|
||||||
|
- **ועוד:** הוסף לקובץ הנחיות שלב: "אחרי export מוצלח — עדכן `case.status = 'exported'` דרך MCP או API"
|
||||||
|
|
||||||
|
2. **תיק 8174-24 — §ז חסר:** בדוק אם שלב המחקר הושלם. אם לא — הפעל חוקר מחדש לתיק זה.
|
||||||
|
|
||||||
|
### 🟠 גבוה — לתקן בשבוע הקרוב
|
||||||
|
|
||||||
|
3. **Skills CMPA:** הרץ:
|
||||||
|
```bash
|
||||||
|
PAPERCLIP_BOARD_API_KEY=$(mcp__infisical__get-secret \
|
||||||
|
--projectId 9a77b161-f70c-4dd3-9d67-b7ab850cef51 \
|
||||||
|
--environmentSlug nautilus --secretPath /paperclip --secretName BOARD_API_KEY) \
|
||||||
|
python ~/legal-ai/scripts/sync_agents_across_companies.py --verify
|
||||||
|
```
|
||||||
|
החלט אם להוסיף legal-* skills ל-CMPA ואם כן — הרץ `--apply`.
|
||||||
|
|
||||||
|
4. **`legal-researcher.md`:** הוסף תת-סעיף עם הוראות ל-`search_internal_decisions`:
|
||||||
|
- מתי להשתמש (החלטות פנימיות דפנה שלא בקורפוס הציבורי)
|
||||||
|
- מה ההבדל מ-`search_decisions`
|
||||||
|
|
||||||
|
5. **`legal-exporter.md` — נתיב legal-docx:** שנה מ-hardcoded UUID ל-דינמי:
|
||||||
|
```
|
||||||
|
אם $PAPERCLIP_COMPANY_ID = 42a7acd0... → CMP path
|
||||||
|
אם $PAPERCLIP_COMPANY_ID = 8639e837... → CMPA path
|
||||||
|
```
|
||||||
|
|
||||||
|
6. **`legal-ceo.md` — Project ID:** הסר את ה-hardcoded ID של 1130-25. החלף בהוראה: "השתמש ב-`projects_list` לקבלת project_id הנכון לפי חברה ולתיק".
|
||||||
|
|
||||||
|
### 🟡 בינוני — לתקן בחודש הקרוב
|
||||||
|
|
||||||
|
7. **Model documentation:** החלט על גרסאות מודל לכל סוכן ועדכן גם הנחיות גם DB. עדיף: שמור הנחיות כ-source of truth ועדכן DB דרך `sync_agents_across_companies.py --apply`.
|
||||||
|
|
||||||
|
8. **`legal-qa.md` — הבהרת corpus_queries_logged:** הוסף: "הבדיקה היא קריאת `validate_decision` עם `check_corpus_log=true` / או grep ידני בקובץ `analysis-and-research.md` לסעיף ז".
|
||||||
|
|
||||||
|
9. **`legal-ceo.md` — maxConcurrentRuns:** עדכן DB ל-maxConcurrentRuns=1 (או 2 אם CEO רוצה מקביליות מכוונת).
|
||||||
|
|
||||||
|
10. **`legal-proofreader.md` — {issue-id} placeholder:** שנה ל-`$PAPERCLIP_TASK_ID` באופן מפורש.
|
||||||
|
|
||||||
|
11. **`legal-researcher.md` — HEARTBEAT.md link:** הוסף בשורה 1: `> ראה גם: HEARTBEAT.md לחוקים הכלליים`.
|
||||||
|
|
||||||
|
### 🟢 נמוך — future improvement
|
||||||
|
|
||||||
|
12. **מנהל ידע — ownership:** הוסף ל-CLAUDE.md הנחיה: "Curator proposals ב-comments → חיים מאשר ידנית → commits ל-SKILL.md ו-lessons.md".
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## אימות (לאחר תיקונים)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. שלוף API key
|
||||||
|
PAPERCLIP_BOARD_API_KEY=$(mcp__infisical__get-secret \
|
||||||
|
--projectId 9a77b161-f70c-4dd3-9d67-b7ab850cef51 \
|
||||||
|
--environmentSlug nautilus --secretPath /paperclip --secretName BOARD_API_KEY)
|
||||||
|
|
||||||
|
# 2. בדוק drift
|
||||||
|
python ~/legal-ai/scripts/sync_agents_across_companies.py --verify
|
||||||
|
|
||||||
|
# 3. בדוק freshness של הנחיות
|
||||||
|
python ~/legal-ai/scripts/sync_agents_across_companies.py --check-instructions
|
||||||
|
|
||||||
|
# 4. בדוק שסוכני CMPA עובדים עם skills נכונים
|
||||||
|
PGPASSWORD="paperclip" psql -h 127.0.0.1 -p 54329 -U paperclip -d paperclip -c "
|
||||||
|
SELECT a.name, array_agg(s.name ORDER BY s.name) as skills
|
||||||
|
FROM agents a
|
||||||
|
JOIN companies c ON a.company_id = c.id
|
||||||
|
LEFT JOIN agent_skills ask ON ask.agent_id = a.id
|
||||||
|
LEFT JOIN skills s ON ask.skill_id = s.id
|
||||||
|
WHERE c.name LIKE '%השבחה%' AND (a.is_deleted = false OR a.is_deleted IS NULL)
|
||||||
|
GROUP BY a.id ORDER BY a.name;
|
||||||
|
"
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user