# עוזר משפטי — Legal Decision Assistant ## רקע הפרויקט מערכת AI לסיוע בכתיבת החלטות של **ועדת ערר לתכנון ובניה, מחוז ירושלים**, בראשות **עו"ד דפנה תמיר**. ### מה עושה ועדת ערר? ועדת ערר היא גוף מעין-שיפוטי שדן בעררים על החלטות ועדות מקומיות לתכנון ובניה. הוועדה מקבלת חומרי מקור (כתבי ערר, תגובות, פרוטוקולים, תכניות), דנה בטענות הצדדים, ומוציאה **החלטה כתובה מנומקת** — מסמך משפטי פורמלי שניתן לביקורת שיפוטית בבית משפט לעניינים מנהליים. ### שלושה סוגי עררים | סוג | מספרי תיקים | טון | מאפיין | |-----|-------------|-----|--------| | רישוי ובנייה | 1xxx | חם יחסית | הקשר תכנוני רחב, אלמנטים אנושיים | | היטל השבחה | 8xxx | קר ומקצועי | יבש, ללא רגשות | | פיצויים (ס' 197) | 9xxx | קר ומקצועי | דומה להיטל השבחה | ### מטרת המערכת לבנות כלי עבודה שמסייע ליו"ר הוועדה לנסח החלטות: 1. **ניהול תיקים** — ייבוא חומרי מקור, סיווג מסמכים, מעקב סטטוס 2. **בסיס ידע** — פסיקה, ביטויי מעבר, לקחים מהחלטות קודמות, חקיקה 3. **חיפוש סמנטי (RAG)** — מציאת תקדימים רלוונטיים ופסקאות דומות 4. **סיוע בכתיבה** — ייצור טיוטות לפי ארכיטקטורת 12 בלוקים בסגנון דפנה 5. **ייצוא DOCX** — מסמך מעוצב מוכן להגשה ### מה היה קודם (Legacy) המערכת הקודמת היתה **Obsidian vault** עם Claude Code skills על שרת אחר. פותחו: - ניתוח סגנון של 3 החלטות (הכט — דחייה, בית הכרם — קבלה חלקית, אריאלי — השוואה) - ארכיטקטורת 12 בלוקים מבוססת CREAC / DITA / Akoma Ntoso / Federal Judicial Center - כללי כתיבה (רקע ניטרלי, ללא כפילות, טענות מקוריות בלבד) - לקחים מהשוואת טיוטות לגרסאות סופיות - סקריפט ייצוא DOCX כל החומר הועבר לתיקיית `legacy/` כקריאה בלבד. **הפרויקט הנוכחי** מעביר את הידע הזה למערכת מובנית עם PostgreSQL + pgvector + n8n. --- ## מסמכי ייחוס | מסמך | תוכן | מתי לקרוא | |------|-------|-----------| | [`docs/architecture.md`](docs/architecture.md) | ארכיטקטורת המערכת, תרשים רכיבים, זרימת נתונים, 4 שכבות DB | לפני עבודה על תשתית | | [`docs/block-schema.md`](docs/block-schema.md) | הגדרת 12 בלוקים — content model, constraints, processing params | **לפני כל כתיבת החלטה** | | [`docs/migration-plan.md`](docs/migration-plan.md) | תוכנית מעבר vault → DB — טבלאות, עדיפויות, כמויות | לפני ייבוא נתונים | | [`docs/legal-decision-lessons.md`](docs/legal-decision-lessons.md) | לקחים מ-3 החלטות — מה עבד, מה השתנה, ביטויי מעבר חדשים | **לפני כל כתיבת החלטה** | | [`docs/decision-methodology.md`](docs/decision-methodology.md) | **מתודולוגיה אנליטית — איך לחשוב על החלטה מעין-שיפוטית** | **לפני כל כתיבת החלטה** | | [`docs/corpus-analysis.md`](docs/corpus-analysis.md) | ניתוח שיטתי של 24 החלטות — מפת תוכן, דפוסי דיון תכנוני, פערים | **לפני כל כתיבת החלטה** | | [`docs/memory.md`](docs/memory.md) | הקשר כללי — skills, פרויקטים שהושלמו, מבנה vault | להתמצאות כללית | | [`skills/decision/SKILL.md`](skills/decision/SKILL.md) | מדריך סגנון מלא של דפנה — טון, מבנה, ביטויים, מתודולוגיה | **לפני כל כתיבת החלטה** | --- ## שרת Nautilus (158.178.131.193) | שירות | תפקיד | כתובת | |-------|--------|-------| | Coolify | ניהול containers | `http://158.178.131.193:8000` | | PostgreSQL + pgvector | בסיס נתונים ראשי | `legal-ai-postgres` | | Redis | תור משימות | `legal-ai-redis` | | n8n | אוטומציית workflows | להגדרה | | Gitea | מאגר קוד | `gitea.nautilus.marcusgroup.org/ezer-mishpati` | | ezer-mishpati-web | ממשק העלאת מסמכים | `legal-ai.nautilus.marcusgroup.org` | | Infisical | ניהול סודות | `secret.dev.marcus-law.co.il` | --- ## מבנה תיקיות ``` /home/chaim/legal-ai/ ├── CLAUDE.md ← הקובץ הזה ├── Dockerfile ← Docker build ├── docs/ ← תיעוד + לקחים │ ├── architecture.md ארכיטקטורה │ ├── block-schema.md 12 בלוקים (המסמך החשוב ביותר) │ ├── migration-plan.md תוכנית מעבר vault → DB │ ├── legal-decision-lessons.md לקחים מ-3 החלטות │ └── memory.md הקשר כללי — skills, פרויקטים ├── skills/ ← כלי עבודה ומדריכים │ ├── decision/ מדריך סגנון + references + 12 בלוקים │ ├── assistant/ קטלוג מסמכים │ └── docx/ עיצוב DOCX ├── data/ │ ├── training/ ← 4 החלטות לאימון (DOCX) │ ├── exports/ ← ייצוא legacy (תיקים ישנים) │ └── cases/{case-number}/ ← תיקי עררים (מבנה שטוח, סטטוס ב-DB) ├── web/ ← UI + API + integration clients ├── mcp-server/ ← MCP server + services + tools └── scripts/ ← סקריפטים וכלי עזר ``` --- ## ניהול משימות — TaskMaster AI הפרויקט משתמש ב-**TaskMaster AI** (MCP server) לניהול משימות מובנה: - **תמיד** להשתמש ב-TaskMaster לפירוק, מעקב וניהול משימות — לא ב-TASKS.md ידני - קובץ המשימות: `tasks/tasks.json` - פקודות עיקריות: `get_tasks`, `next_task`, `add_task`, `update_task`, `expand_task` - לפני התחלת עבודה → `next_task` כדי לדעת מה הבא לפי תלויות - אחרי סיום משימה → `update_task` עם status=done - משימה מורכבת → `expand_task` לפירוק לתתי-משימות --- ## עקרונות כתיבה קריטיים 1. **"מבחן השופט"** — כל החלטה חייבת להיות קריאה לשופט שלא מכיר את התיק 2. **"רקע ניטרלי"** — בלוק ו = עובדות בלבד. אין ציטוטים מצדדים, אין מילות שיפוט 3. **"ללא כפילות"** — בלוק י (דיון) מפנה לבלוקים קודמים, לא חוזר עליהם 4. **"טענות מקוריות בלבד"** — בלוק ז = מכתבי טענות מקוריים בלבד. השלמות → בלוק ח 5. **ארכיטקטורת 12 בלוקים** — ראה `docs/block-schema.md` 6. **צ'קליסט תוכן** — בלוק י מקבל צ'קליסט תוכן אוטומטי לפי סוג הערר (ראה `lessons.py: CONTENT_CHECKLISTS`) ## הערות יו"ר (Chair Feedback) מנגנון לתיעוד הערות דפנה על טיוטות: - **DB**: טבלת `chair_feedback` (case_id, block_id, feedback_text, category, lesson_extracted) - **API**: `GET/POST /api/feedback`, `PATCH /api/feedback/{id}/resolve` - **MCP tools**: `record_chair_feedback`, `list_chair_feedback` - **UI**: דף ניהול ב-`/feedback` (ב-Next.js) - **קטגוריות**: missing_content, wrong_tone, wrong_structure, factual_error, style, other ## יו"ר: עו"ד דפנה תמיר - מדריך סגנון מלא: `skills/decision/SKILL.md`