feat(tools): כלי legal_predecessor_context — הקשר מריצות-קודמות לסוכן (#220) #5

Merged
chaim merged 1 commits from feat/predecessor-context into main 2026-07-07 05:12:18 +00:00
Owner

מה

הצעד-האחרון של follow-up #1 (predecessor לסוכנים): כלי-plugin שהסוכן קורא בעת continuation כדי לראות מה ריצות קודמות על התיק הסיקו (ה-summary של כל heartbeat), במקום לגלות-מחדש הקשר מאפס (ה-blind heartbeat).

איך

  • legal-api.ts: getPredecessorForCase(caseNumber) → קורא ל-GET /api/operations/cases/{case}/predecessor (ה-endpoint שנוסף ב-legal-ai #410, חי בייצור).
  • worker.ts: רישום הכלי legal_predecessor_context(case_number) — מעצב digest קריא לסוכן (agent · issue · when · status + summary חתוך ל-600 תווים, newest-first).

למה זה plugin ולא mcp→web (ההכרעה הארכיטקטונית)

הכלי חי ב-plugin-legal-ai — המעטפת המוצהרת שכבר מגשרת Paperclip↔legal-ai web (מותר לה לדבר עם שניהם). לא ב-mcp-server, ששומר על עיוורון-הפלטפורמה של הליבה (G12/Dependency Rule). כך הסוכן מקבל predecessor דרך כלי-plugin רגיל (כמו כל legal_*), בלי להכניס תלות פלטפורמה לליבה.

בדיקות + פריסה

  • tsc + biome נקיים; ה-endpoint אומת חי בייצור (מחזיר מסקנות-דיספוזיציה אמיתיות).
  • פריסה ידנית (pm2, לא Coolify): npm run buildpaperclipai plugin installpm2 restart paperclip.

המשך (מוצהר)

הוראת-HEARTBEAT — להנחות סוכן שמתחיל-מחדש עבודה על תיק לקרוא legal_predecessor_context תחילה. שינוי ב-legal-ai .claude/agents/HEARTBEAT.md, תוקף דרך host git pull.

🤖 Generated with Claude Code

## מה הצעד-האחרון של **follow-up #1** (predecessor לסוכנים): כלי-plugin שהסוכן קורא בעת **continuation** כדי לראות מה ריצות קודמות על התיק הסיקו (ה-`summary` של כל heartbeat), במקום לגלות-מחדש הקשר מאפס (ה-*blind heartbeat*). ## איך - **`legal-api.ts`**: `getPredecessorForCase(caseNumber)` → קורא ל-`GET /api/operations/cases/{case}/predecessor` (ה-endpoint שנוסף ב-legal-ai **#410**, חי בייצור). - **`worker.ts`**: רישום הכלי `legal_predecessor_context(case_number)` — מעצב digest קריא לסוכן (agent · issue · when · status + summary חתוך ל-600 תווים, newest-first). ## למה זה plugin ולא mcp→web (ההכרעה הארכיטקטונית) הכלי חי ב-**`plugin-legal-ai`** — המעטפת המוצהרת שכבר מגשרת Paperclip↔legal-ai web (מותר לה לדבר עם שניהם). **לא** ב-`mcp-server`, ששומר על עיוורון-הפלטפורמה של הליבה (G12/Dependency Rule). כך הסוכן מקבל predecessor דרך כלי-plugin רגיל (כמו כל `legal_*`), בלי להכניס תלות פלטפורמה לליבה. ## בדיקות + פריסה - **`tsc` + `biome` נקיים**; ה-endpoint אומת חי בייצור (מחזיר מסקנות-דיספוזיציה אמיתיות). - **פריסה ידנית (pm2, לא Coolify):** `npm run build` → `paperclipai plugin install` → `pm2 restart paperclip`. ## המשך (מוצהר) **הוראת-HEARTBEAT** — להנחות סוכן שמתחיל-מחדש עבודה על תיק לקרוא `legal_predecessor_context` תחילה. שינוי ב-legal-ai `.claude/agents/HEARTBEAT.md`, תוקף דרך host git pull. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-07-07 05:12:08 +00:00
מוסיף כלי-plugin שהסוכן קורא בעת continuation כדי לראות מה ריצות קודמות על התיק
הסיקו (ה-summary של כל heartbeat), במקום לגלות-מחדש הקשר מאפס (blind heartbeat).

- legal-api.ts: getPredecessorForCase(caseNumber) → GET
  /api/operations/cases/{case}/predecessor (endpoint שנוסף ב-legal-ai #410).
- worker.ts: רישום הכלי (case_number param) — מעצב digest קריא (agent·issue·when·
  status + summary חתוך ל-600 תווים, newest-first).

ארכיטקטורה (ההכרעה מהדיון): הכלי חי ב-plugin — המעטפת המוצהרת שמותר לה לדבר גם
Paperclip וגם legal-ai web — ולא ב-mcp-server (הליבה נשארת עיוורת-פלטפורמה, G12).
זו הסיבה שזה plugin-tool ולא mcp→web seam.

בנייה: tsc + biome נקיים. פריסה (ידנית, pm2): npm run build → plugin install →
pm2 restart paperclip. המשך: הוראת-HEARTBEAT לקרוא בעת continuation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
chaim merged commit 8d933386d3 into main 2026-07-07 05:12:18 +00:00
chaim deleted branch feat/predecessor-context 2026-07-07 05:12:18 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/plugin-legal-ai#5