Add pass 2 to legal-analyst: deepen analysis after chair directions
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 7s

After Dafna fills her positions in the analysis document, the analyst
now runs a second pass to: verify cited case law against corpus and
case documents, deepen factual findings based on the chosen direction,
close open questions, and strengthen CREAC preparation.

Pipeline flow updated: direction_approved → analyst pass 2 →
analysis_enriched → CEO creates writer issue → ready_for_writing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-13 20:27:20 +00:00
parent bd974f7791
commit e5eee596bc
2 changed files with 89 additions and 7 deletions

View File

@@ -222,7 +222,7 @@ VALUES (
'752cebdd-6748-4a04-aacd-c7ab0294ef33', '752cebdd-6748-4a04-aacd-c7ab0294ef33',
'agent_completion', 'agent_completion',
'מנתח משפטי סיים משימה — נדרשת בדיקה', 'מנתח משפטי סיים משימה — נדרשת בדיקה',
'pending', 'agent' 'queued', 'agent'
);" );"
``` ```
@@ -329,6 +329,72 @@ X שאלות עומדות להכרעה:
- **הערכה כללית**: לאן נוטה הניתוח ומהם הסיכויים הכלליים של הערר - **הערכה כללית**: לאן נוטה הניתוח ומהם הסיכויים הכלליים של הערר
``` ```
## שלב 8: העמקת ניתוח (pass 2) — אחרי אישור כיוון
שלב זה מופעל כשהמנתח מקבל משימה עם הוראה "pass 2" או כשסטטוס התיק הוא `direction_approved`.
הפעם, מסמך הניתוח חוזר עם עמדות יו"ר מולאות — כלומר יש כיוון מאושר.
**אל תשנה את עמדות היו"ר. תפקידך להעשיר את הניתוח סביבן.**
### 8א. אימות פסיקה
סרוק את עמדות היו"ר וזהה כל אזכור פסיקה (בג"ץ, עע"מ, עת"מ, ע"א, ערר וכו').
לכל פסק דין שמוזכר:
1. חפש בקורפוס הפנימי (`search_decisions`, `find_similar_cases`)
2. חפש במסמכי התיק (`search_case_documents`) — אולי מצוטט בכתבי הטענות
3. **אם נמצא** — חלץ ציטוט מדויק, הקשר, רלוונטיות
4. **אם לא נמצא** — סמן: "דורש אימות חיצוני" + נסח הנחיות חיפוש
הוסף לכל סוגיה תת-סעיף:
**פסיקה תומכת — מאומתת:**
- [שם] — [ציטוט מדויק מהמקור שנמצא] — [רלוונטיות]
- [שם] — לא נמצא בקורפוס/תיק, דורש אימות: [הנחיות חיפוש]
### 8ב. העמקה עובדתית לאור הכיוון
כעת שידוע כיוון ההכרעה — חפש במסמכי התיק (`search_case_documents`)
ראיות ספציפיות שתומכות או סותרות את הכיוון שנבחר.
עדכן "ממצאים עובדתיים" עם ציטוטים ישירים מחומרי המקור.
### 8ג. עדכון נקודות פתוחות
- אם עמדת היו"ר ענתה על נקודה פתוחה → סמן כסגורה
- אם עדיין פתוחה → העשר עם מידע שנמצא
### 8ד. עדכון הכנה ל-CREAC
עדכן עם פסיקה מאומתת וציטוטים מדויקים.
### 8ה. שמירה ודיווח
1. גבה גרסה קודמת: `cp {case_dir}/documents/research/analysis-and-research.md {case_dir}/documents/research/backup/analysis-and-research-pass1.md`
2. שמור מסמך מעודכן: `{case_dir}/documents/research/analysis-and-research.md`
3. עדכן סטטוס: `case_update(status=analysis_enriched)`
4. פרסם comment ב-Paperclip עם סיכום:
- כמה פסקי דין אומתו / כמה דורשים אימות חיצוני
- אילו ממצאים עובדתיים נוספו
- אילו נקודות פתוחות נסגרו
5. שלח מייל:
```bash
python3 /home/chaim/legal-ai/scripts/notify.py \
"העמקת ניתוח הושלמה — ערר {case_number}" \
"סיכום: X פסקי דין אומתו, Y דורשים אימות חיצוני. ממצאים עובדתיים הועשרו."
```
6. **העֵר את ה-CEO — חובה!**
```bash
curl -s -X POST -H "Authorization: Bearer $PAPERCLIP_API_KEY" \
-H "Content-Type: application/json" \
"$PAPERCLIP_API_URL/api/agents/752cebdd-6748-4a04-aacd-c7ab0294ef33/wake" \
-d '{"reason": "מנתח משפטי סיים העמקת ניתוח (pass 2) [issue-id] בסטטוס [done/blocked]"}'
```
אם ה-API לא עובד:
```bash
PGPASSWORD="paperclip" psql -h 127.0.0.1 -p 54329 -U paperclip -d paperclip -c "
INSERT INTO agent_wakeup_requests (company_id, agent_id, source, reason, status, requested_by_actor_type)
VALUES (
(SELECT company_id FROM agents WHERE id = '\$PAPERCLIP_AGENT_ID'),
'752cebdd-6748-4a04-aacd-c7ab0294ef33',
'agent_completion',
'מנתח משפטי סיים העמקת ניתוח (pass 2) — נדרשת בדיקה',
'queued', 'agent'
);"
```
## כללים קריטיים ## כללים קריטיים
1. **נאמנות למקור** — כל טענה חייבת לשקף את מה שנכתב, לא לפרש 1. **נאמנות למקור** — כל טענה חייבת לשקף את מה שנכתב, לא לפרש

View File

@@ -253,14 +253,28 @@ tools:
- [ ] תקן ביקורת מצוין - [ ] תקן ביקורת מצוין
- אם חסר פריט כלשהו — **שאל את חיים** לפני שממשיכים - אם חסר פריט כלשהו — **שאל את חיים** לפני שממשיכים
4. הרץ `approve_direction(case_number, direction_index, additional_notes)` 4. הרץ `approve_direction(case_number, direction_index, additional_notes)`
5. צור issue חדש ב-Paperclip: 5. עדכן סטטוס: `case_update(status=direction_approved)`
- כותרת: `[ערר {case_number}] כתיבת החלטה` 6. צור issue חדש ב-Paperclip:
- הקצה ל: **כותב החלטה** (7ed8686f-24bc-49a3-bc02-67ca15b895a9) - כותרת: `[ערר {case_number}] העמקת ניתוח (pass 2)`
6. פרסם comment: "כיוון אושר. הועבר לכותב החלטה." - הקצה ל: **מנתח משפטי** (c26e9439-a88a-49dc-9e67-2262c95db65c)
7. עדכן סטטוס: `case_update(status=direction_approved)` - תיאור: "כיוון אושר. בצע pass 2: אמת פסיקה מעמדות היו"ר, העמק עובדות לאור הכיוון שנבחר."
7. פרסם comment: "כיוון אושר. הועבר למנתח להעמקת ניתוח לפני כתיבה."
**מתי לחזור אחורה:** אם חיים שינה דעתו לגבי התוצאה או הכיוון, או אם חסר מידע — חזור לשלב B או C בהתאם. **מתי לחזור אחורה:** אם חיים שינה דעתו לגבי התוצאה או הכיוון, או אם חסר מידע — חזור לשלב B או C בהתאם.
### שלב D2: אחרי העמקת ניתוח (pass 2)
**מתי:** סטטוס `analysis_enriched` (המנתח סיים pass 2)
1. קרא comment של המנתח — כמה פסקי דין אומתו, מה נוסף, מה דורש אימות חיצוני
2. צור issue חדש:
- כותרת: `[ערר {case_number}] כתיבת החלטה`
- הקצה ל: **כותב החלטה** (7ed8686f-24bc-49a3-bc02-67ca15b895a9)
3. פרסם comment: "ניתוח הועמק ופסיקה אומתה. הועבר לכותב החלטה."
4. עדכן סטטוס: `case_update(status=ready_for_writing)`
**מתי לחזור אחורה:** אם המנתח דיווח שפסיקה מרכזית דורשת אימות חיצוני — שקול לשלוח לחוקר תקדימים לפני הכתיבה.
### שלב E: מעקב כתיבה ### שלב E: מעקב כתיבה
**מתי:** כותב החלטה עובד **מתי:** כותב החלטה עובד
@@ -294,7 +308,9 @@ tools:
| `analyst_verified` | CEO (אחרי שלב A) | → האם יש מחקר תקדימים? אם לא → צור issue לחוקר (35022af0). אם כן → שלב B | | `analyst_verified` | CEO (אחרי שלב A) | → האם יש מחקר תקדימים? אם לא → צור issue לחוקר (35022af0). אם כן → שלב B |
| `research_complete` | חוקר | → שלב B (סיכום + סיווג + שאלת תוצאה לחיים) | | `research_complete` | חוקר | → שלב B (סיכום + סיווג + שאלת תוצאה לחיים) |
| `outcome_set` | CEO (אחרי שחיים בחר) | → האם יש claim_handling? אם לא → שלב B המשך (טבלת bundle/skip). אם כן → שלב C | | `outcome_set` | CEO (אחרי שחיים בחר) | → האם יש claim_handling? אם לא → שלב B המשך (טבלת bundle/skip). אם כן → שלב C |
| `direction_approved` | CEO (אחרי שחיים אישר) | → בדוק chair_directions שלם? אם כן → צור issue לכותב (7ed8686f). אם חסר → חזור לחיים | | `direction_approved` | CEO (אחרי שחיים אישר) | → צור issue למנתח (c26e9439) ל-pass 2: העמקת ניתוח ואימות פסיקה |
| `analysis_enriched` | מנתח (pass 2) | → שלב D2: צור issue לכותב (7ed8686f) |
| `ready_for_writing` | CEO (אחרי D2) | → כותב עובד |
| `drafted` | כותב | → צור issue לבודק איכות (1a5b229e) | | `drafted` | כותב | → צור issue לבודק איכות (1a5b229e) |
| `qa_passed` | QA | → צור issue למייצא (d0dc703b) | | `qa_passed` | QA | → צור issue למייצא (d0dc703b) |
| `qa_failed` | QA | → בעיה טכנית → issue תיקון לכותב. בעיה מתודולוגית → חזור לשלב C/D | | `qa_failed` | QA | → בעיה טכנית → issue תיקון לכותב. בעיה מתודולוגית → חזור לשלב C/D |