Includes: - docs/: architecture, block-schema, migration-plan, product-specification - scripts/: bidi_table, decompose-decisions, extract-claims, seed-knowledge, etc. - skill-legal-decision/: SKILL.md + references + block-schema - skill-legal-assistant/: SKILL.md - skill-legal-docx/: SKILL.md + references - .claude/commands/: bidi-table skill - .taskmaster/: task config + PRDs - .gitignore: exclude legacy/, kiryat-yearim/, node_modules/, memory/ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
718 lines
58 KiB
JSON
718 lines
58 KiB
JSON
{
|
||
"master": {
|
||
"tasks": [
|
||
{
|
||
"id": "32",
|
||
"title": "הקמת סביבת פיתוח ותשתית בסיסית",
|
||
"description": "הקמת סביבת הפיתוח הבסיסית עם Python, FastAPI, PostgreSQL ו-Infisical לניהול סודות",
|
||
"details": "יצירת פרויקט Python עם FastAPI כשרת API, PostgreSQL כמסד נתונים, ו-Infisical לניהול סודות. הגדרת Docker containers לפיתוח מקומי. יצירת מבנה תיקיות: /src, /tests, /docs, /data. הגדרת requirements.txt עם כל התלויות הנדרשות: fastapi, uvicorn, sqlalchemy, psycopg2, python-multipart, python-docx, PyPDF2, anthropic, infisical-python. הגדרת משתני סביבה דרך Infisical.",
|
||
"testStrategy": "בדיקת התחברות למסד נתונים, טעינת משתני סביבה מ-Infisical, הרצת שרת FastAPI בסיסי",
|
||
"priority": "high",
|
||
"dependencies": [],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T08:53:33.842Z"
|
||
},
|
||
{
|
||
"id": "33",
|
||
"title": "מודול קליטה ועיבוד מסמכים",
|
||
"description": "פיתוח מודול לקליטת קבצי PDF, DOCX, MD וחילוץ טקסט כולל OCR",
|
||
"details": "יצירת מחלקה DocumentProcessor שמטפלת בקבצים מסוגים שונים. עבור PDF: שימוש ב-PyPDF2 לטקסט רגיל ו-pytesseract לOCR של קבצים סרוקים. עבור DOCX: שימוש ב-python-docx. עבור MD: קריאה ישירה. הוספת זיהוי אוטומטי של קבצים סרוקים. יצירת API endpoint POST /documents/upload שמקבל קבצים ומחזיר טקסט מחולץ. שמירת מטא-דאטה של כל מסמך במסד הנתונים.",
|
||
"testStrategy": "בדיקה עם קבצי PDF רגילים וסרוקים, קבצי DOCX עם עברית RTL, קבצי MD. וידוא חילוץ טקסט נכון ושמירת מטא-דאטה",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"32"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:38:55.716Z"
|
||
},
|
||
{
|
||
"id": "34",
|
||
"title": "מודול סיווג מסמכים וזיהוי צדדים",
|
||
"description": "פיתוח מודול לסיווג מסמכים לסוגים (ערר, תשובה, פרוטוקול וכו') וזיהוי צדדים",
|
||
"details": "יצירת מחלקה DocumentClassifier שמשתמשת ב-Claude API לסיווג מסמכים. הגדרת prompt מובנה שמזהה: סוג מסמך (ערר/תשובה/תגובה/פרוטוקול/תכנית/היתר/פסק דין/החלטה), צדדים (עוררים, משיבים, ועדה, מבקשי היתר), סוג ערר לפי מספר תיק (1xxx=רישוי, 8xxx=השבחה, 9xxx=פיצויים). יצירת מבנה נתונים מובנה לשמירת המידע המסווג. הוספת ולידציה לתוצאות הסיווג.",
|
||
"testStrategy": "בדיקה עם מסמכים מכל הסוגים, וידוא זיהוי נכון של צדדים וסוג ערר, בדיקת טיפול במסמכים לא ברורים",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"33"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:43:02.411Z"
|
||
},
|
||
{
|
||
"id": "35",
|
||
"title": "מודול חילוץ טענות",
|
||
"description": "פיתוח מודול לחילוץ וסיכום טענות מכתבי טענות לפי צד",
|
||
"details": "יצירת מחלקה ClaimsExtractor שמחלצת טענות מכתבי ערר ותשובה. שימוש ב-Claude API עם prompt מיוחד שמזהה טענות לפי צד ומסכם אותן בצורה נאמנה למקור. יצירת מבנה נתונים שמקשר בין טענה למסמך המקור ולמיקום בו. הוספת מנגנון לזיהוי טענות חוזרות או דומות. שמירת הטענות במסד הנתונים עם קישור לתיק ולצד.",
|
||
"testStrategy": "בדיקה עם כתבי ערר מורכבים, וידוא נאמנות לטקסט המקור, בדיקת זיהוי טענות לפי צד",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"34"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:45:38.799Z"
|
||
},
|
||
{
|
||
"id": "36",
|
||
"title": "מודול זיהוי תכניות ופסיקה",
|
||
"description": "פיתוח מודול לזיהוי תכניות חלות על המקרקעין ופסיקה מצוטטת במסמכים",
|
||
"details": "יצירת מחלקה LegalReferencesExtractor שמזהה: תכניות (תב\"ע, תמ\"א, תכניות מקומיות), פסיקה מצוטטת (עם מספרי תיק ושנה), חקיקה רלוונטית. שימוש ב-regex patterns לזיהוי דפוסים נפוצים ו-Claude API לאימות ועידון. יצירת מאגר מקומי של תכניות ופסיקה שכבר זוהו. הוספת מנגנון לולידציה של הפניות שזוהו.",
|
||
"testStrategy": "בדיקה עם מסמכים המכילים הפניות לתכניות ופסיקה, וידוא זיהוי מדויק ואי-זיהוי של הפניות שגויות",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"34"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:48:16.636Z"
|
||
},
|
||
{
|
||
"id": "37",
|
||
"title": "ממשק הזנת תוצאה וסיעור מוחות",
|
||
"description": "פיתוח ממשק CLI להזנת תוצאה (דחייה/קבלה/חלקית) ומנגנון סיעור מוחות",
|
||
"details": "יצירת CLI interface עם typer שמאפשר לחיים להזין: סוג תוצאה (דחייה/קבלה/קבלה חלקית), נימוק (אופציונלי). אם לא הוזן נימוק - הפעלת מודול BrainstormingEngine שמציג טענות מרכזיות ומציע 2-3 כיוונים אפשריים. יצירת שיח אינטראקטיבי בין חיים למערכת עד הגעה לכיוון מוסכם. שמירת מסמך הכיוון הסופי. הוספת מנגנון מניעה מכתיבת דיון ללא כיוון מאושר.",
|
||
"testStrategy": "בדיקת תרחישים עם ובלי נימוק, וידוא איכות הצעות הכיוון, בדיקת מניעת כתיבה ללא אישור",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"35",
|
||
"36"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:55:06.069Z"
|
||
},
|
||
{
|
||
"id": "38",
|
||
"title": "מנוע כתיבת בלוק הפתיחה (בלוק ה)",
|
||
"description": "פיתוח מנוע לכתיבת בלוק הפתיחה בסגנון דפנה",
|
||
"details": "יצירת מחלקה OpeningBlockWriter שכותבת את בלוק הפתיחה. ניתוח דפוסי הפתיחה מ-7 ההחלטות הקיימות (\"לפנינו\" vs \"עניינה של החלטה זו\"). יצירת prompt מובנה שמתאים את הפתיחה לסוג הערר ולמורכבות התיק. הוספת מנגנון לבחירת נוסח הפתיחה המתאים. שמירת תבניות פתיחה במסד הנתונים.",
|
||
"testStrategy": "בדיקה עם סוגי ערר שונים, השוואה לפתיחות בהחלטות הקיימות, וידוא התאמה לסגנון דפנה",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"37"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:58:34.296Z"
|
||
},
|
||
{
|
||
"id": "39",
|
||
"title": "מנוע כתיבת בלוק הרקע (בלוק ו)",
|
||
"description": "פיתוח מנוע לכתיבת בלוק הרקע בצורה ניטרלית",
|
||
"details": "יצירת מחלקה BackgroundBlockWriter שכותבת רקע ניטרלי. הגדרת כללי ניטרליות: אין ציטוטים מצדדים, אין מילות שיפוט, הצגת עובדות בלבד. יצירת רשימת מילים אסורות ומנגנון ולידציה. שימוש במידע מהמסמכים המסווגים לבניית הרקע. הוספת מנגנון לקביעת אורך הרקע לפי מורכבות התיק (3%-18% מההחלטה).",
|
||
"testStrategy": "בדיקת ניטרליות הטקסט, וידוא היעדר מילות שיפוט, בדיקת אורך מתאים לפי מורכבות",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"38"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:58:34.300Z"
|
||
},
|
||
{
|
||
"id": "40",
|
||
"title": "מנוע כתיבת בלוק הטענות (בלוק ז)",
|
||
"description": "פיתוח מנוע לכתיבת סיכום טענות הצדדים בגוף שלישי",
|
||
"details": "יצירת מחלקה ClaimsBlockWriter שמסכמת טענות בגוף שלישי. שימוש בטענות שחולצו במודול חילוץ הטענות. הבטחת נאמנות מוחלטת למקור - אין שינוי מילים או קיצור ללא ציון. יצירת מבנה לוגי של הצגת הטענות לפי צד. הוספת מנגנון לקישור כל טענה למקור המדויק במסמך.",
|
||
"testStrategy": "השוואת הטענות המסוכמות לטקסט המקור, וידוא נאמנות מוחלטת, בדיקת מבנה לוגי",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"39"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:58:34.303Z"
|
||
},
|
||
{
|
||
"id": "41",
|
||
"title": "מנוע כתיבת בלוק ההליכים (בלוק ח)",
|
||
"description": "פיתוח מנוע לכתיבת בלוק ההליכים (רק כשהיו הליכים מעבר לדיון פשוט)",
|
||
"details": "יצירת מחלקה ProceduresBlockWriter שכותבת תיעוד כרונולוגי של הליכים. זיהוי אוטומטי מתי נדרש הבלוק (סיור, השלמות טיעון, החלטות ביניים). יצירת ציר זמן של האירועים מהמסמכים. הבטחת דיוק עובדתי ומבנה כרונולוגי. הוספת מנגנון להחלטה אוטומטית האם הבלוק נדרש.",
|
||
"testStrategy": "בדיקה עם תיקים עם ובלי הליכים מורכבים, וידוא דיוק כרונולוגי, בדיקת החלטה נכונה על נחיצות הבלוק",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"40"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:58:34.305Z"
|
||
},
|
||
{
|
||
"id": "42",
|
||
"title": "מנוע כתיבת בלוק התכניות (בלוק ט)",
|
||
"description": "פיתוח מנוע לכתיבת בלוק התכניות והמסגרת הנורמטיבית",
|
||
"details": "יצירת מחלקה PlansBlockWriter שמטפלת ברישום תכניות. הגדרת כללי החלטה מתי נדרש פרק נפרד (מורכבות תכנונית, שאלה משפטית כמו ס' 152). שימוש במידע התכניות שזוהו במודול זיהוי התכניות. יצירת מבנה הירכי של התכניות (ארציות, מחוזיות, מקומיות). הוספת מנגנון לקביעת עומק הפירוט הנדרש.",
|
||
"testStrategy": "בדיקה עם תיקים בעלי מורכבות תכנונית שונה, וידוא החלטה נכונה על צורת ההצגה, בדיקת דיוק המידע",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"41"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:58:34.308Z"
|
||
},
|
||
{
|
||
"id": "43",
|
||
"title": "מנוע כתיבת בלוק הדיון (בלוק י) - ליבת המערכת",
|
||
"description": "פיתוח מנוע הכתיבה המרכזי לבלוק הדיון בשיטת CREAC",
|
||
"details": "יצירת מחלקה DiscussionBlockWriter - הליבה של המערכת. יישום שיטת CREAC: מסקנה בפתיחה, כלל משפטי, הסבר, יישום על המקרה, מסקנה. הבטחת מענה לכל טענה מבלוק ז. שימוש בכיוון שנקבע בשלב סיעור המוחות. הוספת מנגנון למניעת כפילויות והפניות לבלוקים קודמים. יצירת מבנה לוגי של הנימוקים לפי סדר חשיבות.",
|
||
"testStrategy": "בדיקת כיסוי כל הטענות, וידוא מבנה CREAC, בדיקת התאמה לכיוון שנקבע, בדיקת היעדר כפילויות",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"42"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:58:34.311Z"
|
||
},
|
||
{
|
||
"id": "44",
|
||
"title": "מנוע כתיבת בלוק הסיכום (בלוק יא)",
|
||
"description": "פיתוח מנוע לכתיבת בלוק הסיכום עם הוראות אופרטיביות",
|
||
"details": "יצירת מחלקה SummaryBlockWriter שכותבת הוראות אופרטיביות. גזירת ההוראות מהדיון שנכתב בבלוק י. הבטחת התאמה מדויקת להכרעה שנקבעה. יצירת מבנה ברור של ההוראות (מה מתקבל, מה נדחה, מה התנאים). הוספת מנגנון לולידציה של עקביות בין הדיון לסיכום.",
|
||
"testStrategy": "בדיקת התאמה בין הדיון לסיכום, וידוא בהירות ההוראות, בדיקת עקביות עם ההכרעה",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"43"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:58:34.313Z"
|
||
},
|
||
{
|
||
"id": "45",
|
||
"title": "מנוע ייצוא DOCX מעוצב",
|
||
"description": "פיתוח מנוע לייצוא ההחלטה לקובץ DOCX מעוצב בעברית RTL",
|
||
"details": "יצירת מחלקה DocxExporter שמייצרת DOCX מעוצב. הגדרת גופן David, כיוון RTL, כותרות מעוצבות, מספור סעיפים רציף. יצירת תבנית DOCX בסיסית עם הגדרות העיצוב. הוספת מנגנון לסימון מקומות תמונה (GIS, תשריט, סיור). הבטחת תמיכה מלאה בעברית ובכיוון RTL. יצירת מבנה היררכי של כותרות וסעיפים.",
|
||
"testStrategy": "בדיקת פתיחה נכונה של הקובץ ב-Word, וידוא עיצוב RTL, בדיקת גופנים וכותרות, בדיקת מספור",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"44"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:12:36.842Z"
|
||
},
|
||
{
|
||
"id": "46",
|
||
"title": "מנגנון בקרת איכות ווולידציה",
|
||
"description": "פיתוח מנגנון בקרת איכות לוולידציה של ההחלטה לפני הפלט",
|
||
"details": "יצירת מחלקה QualityController שבודקת: אפס הזיות (כל הפניה מול מסמכים שסופקו), מענה לכל טענה, רקע ניטרלי (ללא מילות שיפוט), משקלות בלוקים בטווח יחסי הזהב ±10%, ציטוטים נאמנים למקור. יצירת דוח ולידציה מפורט. הוספת מנגנון למניעת פלט במקרה של כשלון ולידציה קריטי.",
|
||
"testStrategy": "בדיקה עם החלטות תקינות ופגומות, וידוא זיהוי בעיות, בדיקת דיוק הולידציה",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"45"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:14:00.311Z"
|
||
},
|
||
{
|
||
"id": "47",
|
||
"title": "מודול לולאת למידה",
|
||
"description": "פיתוח מודול לקליטת גרסה סופית והשוואה לטיוטה ללמידה",
|
||
"details": "יצירת מחלקה LearningLoop שמקבלת את הגרסה הסופית שדפנה חתמה. השוואת הטיוטה לגרסה הסופית וזיהוי הבדלים. חילוץ לקחים: ביטויים חדשים, דפוסים שהשתנו, שגיאות חוזרות. עדכון מודל הסגנון על בסיס הלקחים. יצירת דוח למידה לחיים. שמירת הלקחים במסד הנתונים לשיפור עתידי.",
|
||
"testStrategy": "בדיקה עם גרסאות סופיות שונות, וידוא זיהוי נכון של הבדלים, בדיקת איכות הלקחים שחולצו",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"46"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:15:14.639Z"
|
||
},
|
||
{
|
||
"id": "48",
|
||
"title": "מודול מדדי הצלחה ודשבורד",
|
||
"description": "פיתוח מודול למדידת KPIs ויצירת דשבורד מעקב",
|
||
"details": "יצירת מחלקה MetricsTracker שמודדת: אחוז שינוי (השוואת טיוטה לגרסה סופית), זמן לטיוטה (מקצה לקצה), אפס הזיות (ספירת הפניות לא תקינות), מענה לכל טענה, משקלות בלוקים, רקע ניטרלי. יצירת דשבורד פשוט עם הצגת המדדים לאורך זמן. הוספת התראות כשמדד יורד מתחת לסף המינימום.",
|
||
"testStrategy": "בדיקת דיוק המדידות, וידוא עבודת הדשבורד, בדיקת התראות",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"47"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:16:10.708Z"
|
||
},
|
||
{
|
||
"id": "49",
|
||
"title": "מנגנון ניהול סודות ואבטחה",
|
||
"description": "יישום מנגנון אבטחה מלא עם Infisical וניהול סודות",
|
||
"details": "הגדרת Infisical לניהול כל הסודות: Anthropic API key, מחרוזות חיבור למסד נתונים, מפתחות הצפנה. יצירת מנגנון הצפנה לחומרי התיקים במסד הנתונים. הגדרת מדיניות גישה והרשאות. יצירת מנגנון audit log לכל הפעולות. הבטחת שחומרי התיקים לא נשלחים לשירותים חיצוניים מלבד Anthropic API.",
|
||
"testStrategy": "בדיקת טעינת סודות מ-Infisical, וידוא הצפנה של נתונים רגישים, בדיקת audit log",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"32"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:17:43.954Z"
|
||
},
|
||
{
|
||
"id": "50",
|
||
"title": "מנגנון גיבוי ושחזור",
|
||
"description": "יישום מנגנון גיבוי יומי אוטומטי ושחזור מסד הנתונים",
|
||
"details": "יצירת סקריפט גיבוי יומי אוטומטי למסד הנתונים PostgreSQL. הגדרת cron job לביצוע הגיבוי בשעות הלילה. יצירת מנגנון שחזור מגיבוי. שמירת הגיבויים במיקום מאובטח. הוספת מנגנון לבדיקת תקינות הגיבויים. יצירת תיעוד לתהליכי גיבוי ושחזור.",
|
||
"testStrategy": "בדיקת ביצוע גיבוי אוטומטי, בדיקת שחזור מגיבוי, וידוא תקינות הנתונים לאחר שחזור",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"49"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:18:18.247Z"
|
||
},
|
||
{
|
||
"id": "51",
|
||
"title": "ממשק CLI מלא ותיעוד",
|
||
"description": "פיתוח ממשק CLI מלא עם כל הפקודות הנדרשות ותיעוד מקיף",
|
||
"details": "יצירת CLI מקיף עם typer שכולל: העלאת מסמכים, הזנת תוצאה, סיעור מוחות, יצירת טיוטה, הזנת גרסה סופית, הצגת מדדים. הוספת help מפורט לכל פקודה. יצירת תיעוד מקיף למשתמש עם דוגמאות שימוש. הוספת מנגנון לולידציה של קלטים. יצירת מנגנון לטיפול בשגיאות ומסרי שגיאה ברורים בעברית.",
|
||
"testStrategy": "בדיקת כל הפקודות, וידוא הודעות עזרה ברורות, בדיקת טיפול בשגיאות, בדיקת תיעוד",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"48",
|
||
"50"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:19:20.241Z"
|
||
},
|
||
{
|
||
"id": "52",
|
||
"title": "בדיקות אינטגרציה ומבחן הסמכה",
|
||
"description": "יצירת חבילת בדיקות מקיפה ומבחן הסמכה על תיק אמיתי",
|
||
"details": "יצירת בדיקות אינטגרציה לכל התהליך מקצה לקצה. בדיקה עם תיק הכט (תיק שכבר יש לו החלטה סופית) - השוואת הטיוטה שהמערכת מייצרת להחלטה הסופית. מדידת פער ווידוא שהוא קטן מ-10%. יצירת מבחן הסמכה מובנה לפני שימוש מבצעי. הוספת בדיקות ביצועים - וידוא שהמערכת מייצרת טיוטה תוך יום עבודה.",
|
||
"testStrategy": "הרצת מבחן הסמכה על תיק הכט, מדידת זמן ביצוע, השוואה להחלטה הסופית, וידוא עמידה בכל הדרישות",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"51"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-04T07:50:59.998Z"
|
||
},
|
||
{
|
||
"id": "53",
|
||
"title": "הוספת שלב 6 - הגהת דפנה לדרישות הפונקציונליות",
|
||
"description": "הגדרת שלב הגהת דפנה החסר מהדרישות הפונקציונליות, כולל זרימת העבודה והממשקים",
|
||
"details": "יש להגדיר בדרישות הפונקציונליות: (1) איך דפנה מקבלת את הטיוטה בפורמט DOCX, (2) איך מחזירה הערות ותיקונים (ממשק או פורמט מובנה), (3) מי מעלה את הגרסה הסופית ללולאת הלמידה. כולל הגדרת API endpoints לקבלת הטיוטה ולהחזרת הערות, ומנגנון עדכון המודל על בסיס הפידבק.",
|
||
"testStrategy": "בדיקת זרימת העבודה המלאה מהעברת טיוטה לדפנה ועד עדכון המודל. וולידציה של פורמטים ותקינות הממשקים.",
|
||
"priority": "high",
|
||
"dependencies": [],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T20:58:19.827Z"
|
||
},
|
||
{
|
||
"id": "54",
|
||
"title": "החלפת דרישת 'אפס הזיות' במנגנון grounding ווולידציה",
|
||
"description": "החלפת הדרישה הלא ריאלית של אפס הזיות במנגנון grounding מתקדם ומערכת וולידציה אוטומטית",
|
||
"details": "יישום מנגנון grounding שמקשר כל הפניה למסמך מקור ספציפי עם citation tracking. פיתוח מערכת וולידציה אוטומטית שבודקת כל ציטוט/הפניה מול המסמכים שסופקו. הגדרת מדד: שיעור הפניות שלא עוברות וולידציה = 0. כולל מנגנון flagging של הפניות חשודות ודרישה לאישור ידני.",
|
||
"testStrategy": "בדיקת דיוק הקישור בין הפניות למסמכי מקור. טסטים על מקרי קצה של הפניות שגויות וולידציה שהמערכת תופסת אותן.",
|
||
"priority": "high",
|
||
"dependencies": [],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T20:58:55.741Z"
|
||
},
|
||
{
|
||
"id": "55",
|
||
"title": "הוספת ניהול context window overflow",
|
||
"description": "פיתוח מנגנון לטיפול בתיקים מורכבים שחורגים מ-context window של המודל",
|
||
"details": "יישום מדידת גודל חומרים בטוקנים, אסטרטגיית chunking חכמה ו/או summarization של מסמכים ארוכים. הגדרת סף התראה כשמתקרבים לגבול context window. פיתוח אלגוריתם לסדר עדיפויות של מסמכים והחלטה איזה חלקים לכלול בהקשר הנוכחי.",
|
||
"testStrategy": "בדיקה עם תיקים של 50+ מסמכים. וולידציה שהמערכת מזהה overflow ומפעילה אסטרטגיות הפחתה מתאימות.",
|
||
"priority": "high",
|
||
"dependencies": [],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T20:59:34.704Z"
|
||
},
|
||
{
|
||
"id": "56",
|
||
"title": "הגדרה מתמטית מדויקת של 'אחוז שינוי'",
|
||
"description": "הגדרה ברורה ומתמטית של מדד אחוז השינוי עם דוגמאות קונקרטיות",
|
||
"details": "הגדרת מדד אחוז שינוי מבוסס edit distance על מילים (לא תווים). ספירת שינויים: הוספה, מחיקה, החלפה של מילים. נוסחה: (מספר שינויים / סך מילים בטקסט המקורי) * 100. כולל דוגמאות מפורטות ומקרי קצה כמו שינוי סדר מילים, שינויי פיסוק, וטיפול בסעיפים חדשים.",
|
||
"testStrategy": "בדיקת חישוב המדד על דוגמאות ידועות. השוואה עם מדדי edit distance סטנדרטיים כמו Levenshtein.",
|
||
"priority": "high",
|
||
"dependencies": [],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:00:03.477Z"
|
||
},
|
||
{
|
||
"id": "57",
|
||
"title": "הוספת דרישות לבלוקים א-ד ויב",
|
||
"description": "הגדרת דרישות פונקציונליות לבלוקים החסרים: כותרת, הרכב, צדדים וחתימות",
|
||
"details": "הגדרת דרישות מפורטות לבלוק א (כותרת התיק), בלוק ב (הרכב בית הדין), בלוק ג (זיהוי הצדדים), בלוק ד (פרטים נוספים על הצדדים), ובלוק יב (חתימות). כולל פורמט הפלט, מקורות המידע, וכללי עיבוד לכל בלוק. התאמה לתבנית הפסיקה הסטנדרטית.",
|
||
"testStrategy": "וולידציה של פורמט הפלט לכל בלוק מול תבניות פסיקה קיימות. בדיקת שלמות המידע והתאמה לדרישות משפטיות.",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"53"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T20:58:19.831Z"
|
||
},
|
||
{
|
||
"id": "58",
|
||
"title": "יישום מנגנון שמירת מצב ביניים (persistence)",
|
||
"description": "פיתוח מערכת לשמירת מצב העבודה ו-recovery מנפילות מערכת",
|
||
"details": "יישום מנגנון auto-save שמשמר את מצב העבודה כל כמה דקות. שמירת גרסאות ביניים של כל בלוק, מעקב אחר השלב הנוכחי בתהליך, ומנגנון recovery שמאפשר המשך עבודה מהנקודה האחרונה שנשמרה. כולל ממשק למשתמש לבחירת נקודת שחזור.",
|
||
"testStrategy": "סימולציה של נפילות מערכת בשלבים שונים ובדיקת יכולת השחזור. וולידציה של שלמות הנתונים לאחר recovery.",
|
||
"priority": "high",
|
||
"dependencies": [],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:01:07.799Z"
|
||
},
|
||
{
|
||
"id": "59",
|
||
"title": "תיקון ספירת שלבים בטבלת מעקב",
|
||
"description": "עדכון טבלת המעקב להתאמה למספר השלבים בפועל",
|
||
"details": "עדכון הטבלה לציון 7 שלבים במקום 6, כולל השלב החדש של הגהת דפנה. עדכון כל הרפרנסים למספר השלבים במסמכי הדרישות והתיעוד. וידוא עקביות בין כל המסמכים.",
|
||
"testStrategy": "סקירה מקיפה של כל המסמכים לוידוא עקביות במספר השלבים. בדיקת התאמה בין הטבלה לדרישות הפונקציונליות.",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"53"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:01:45.876Z"
|
||
},
|
||
{
|
||
"id": "60",
|
||
"title": "הכרה ב-MVP לרישוי והשבחה בלבד",
|
||
"description": "הגדרת גרסה ראשונה שמכסה רק רישוי והשבחה בשל חוסר נתוני אימון לפיצויים",
|
||
"details": "הגדרת MVP שמתמקד ברישוי והשבחה בלבד. תיעוד המגבלות הנוכחיות בנוגע לפיצויים ותכנית לאיסוף נתוני אימון עתידיים. הגדרת קריטריונים להרחבה לפיצויים בגרסאות עתידיות. עדכון מטריקות הצלחה בהתאם למגבלות הגרסה הראשונה.",
|
||
"testStrategy": "וולידציה שהמערכת מטפלת נכון רק בתיקי רישוי והשבחה. בדיקת התנהגות נכונה כשמתקבל תיק פיצויים.",
|
||
"priority": "high",
|
||
"dependencies": [],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:01:45.879Z"
|
||
},
|
||
{
|
||
"id": "61",
|
||
"title": "בחינה מחדש של יעד 98% שיעור שינוי",
|
||
"description": "הערכה מחדש של ריאליות יעד 98% בהתבסס על מחקר Endsley על התנהגות מומחים",
|
||
"details": "ניתוח מחקרי על התנהגות מומחים ונטייתם לבצע שינויים. הגדרת יעד ריאלי יותר המתחשב בגורמים פסיכולוגיים. הצעת מדדי הצלחה חלופיים כמו שיעור שינויים משמעותיים או שביעות רצון המומחים. כולל הגדרת baseline מתוך נתונים היסטוריים אם קיימים.",
|
||
"testStrategy": "ניתוח סטטיסטי של נתוני שינויים מהמערכת הנוכחית (אם קיימת). השוואה ליעדים דומים במערכות אחרות.",
|
||
"priority": "medium",
|
||
"dependencies": [],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:02:13.446Z"
|
||
},
|
||
{
|
||
"id": "62",
|
||
"title": "הגדרת מנגנון לולאת למידה",
|
||
"description": "פיתוח מנגנון עדכון המודל על בסיס פידבק מדפנה ומשתמשים",
|
||
"details": "הגדרת אסטרטגיית עדכון המודל: fine-tuning מול prompt engineering מול עדכון RAG. יישום מנגנון איסוף פידבק מובנה, עיבוד הנתונים לפורמט מתאים לאימון, ותהליך עדכון אוטומטי או חצי-אוטומטי. כולל מנגנון A/B testing לבדיקת שיפורים.",
|
||
"testStrategy": "בדיקת יעילות מנגנון העדכון על דוגמאות ידועות. מדידת שיפור ביצועים לאחר עדכונים.",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"53",
|
||
"58"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:02:32.651Z"
|
||
},
|
||
{
|
||
"id": "63",
|
||
"title": "הוספת הגנה מפני prompt injection",
|
||
"description": "יישום מנגנון הגנה מפני prompt injection ממסמכי מקור חיצוניים",
|
||
"details": "פיתוח מנגנון סינון וסניטיזציה של מסמכי קלט לזיהוי ניסיונות prompt injection. יישום validation של תוכן המסמכים, הפרדה בין הוראות המערכת לתוכן המסמכים, ומנגנון flagging של מסמכים חשודים. כולל רשימה שחורה של דפוסים מסוכנים.",
|
||
"testStrategy": "בדיקות חדירה עם מסמכים המכילים ניסיונות prompt injection ידועים. וולידציה שהמערכת מזהה ומנטרלת איומים.",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"54"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:02:49.768Z"
|
||
},
|
||
{
|
||
"id": "64",
|
||
"title": "הוספת מנגנון back-flows בתהליך",
|
||
"description": "יישום יכולת חזרה אחורה בתהליך לעריכת בלוקים קודמים או שינוי כיוון",
|
||
"details": "פיתוח ממשק לחזרה לשלבים קודמים בתהליך. מנגנון לעריכת בלוקים שכבר הושלמו, עדכון אוטומטי של בלוקים תלויים, ומעקב אחר שינויים. כולל אזהרות למשתמש על השפעת שינויים על בלוקים אחרים ואפשרות לביטול פעולות.",
|
||
"testStrategy": "בדיקת זרימת עבודה עם חזרות אחורה. וולידציה של עקביות הנתונים לאחר שינויים בבלוקים קודמים.",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"58"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:01:07.801Z"
|
||
},
|
||
{
|
||
"id": "65",
|
||
"title": "הוספת שלב QA/ולידציה לפני שליחה לדפנה",
|
||
"description": "יישום checklist אוטומטי ומנגנון QA לפני הפלט הסופי",
|
||
"details": "פיתוח checklist אוטומטי שבודק שלמות כל הבלוקים, תקינות הפורמט, נוכחות כל הרכיבים הנדרשים, ועקביות פנימית. מנגנון וולידציה של ציטוטים והפניות, בדיקת איכות השפה, ואזהרות על בעיות פוטנציאליות. כולל דוח QA מפורט למשתמש.",
|
||
"testStrategy": "בדיקת יעילות ה-checklist על פסיקות עם בעיות ידועות. וולידציה שהמערכת תופסת שגיאות נפוצות.",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"54",
|
||
"57"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:03:09.658Z"
|
||
},
|
||
{
|
||
"id": "66",
|
||
"title": "יישום ניהול גרסאות של בלוקים",
|
||
"description": "פיתוח מערכת ניהול גרסאות לכל בלוק בנפרד",
|
||
"details": "יישום version control לכל בלוק בנפרד, שמירת היסטוריית שינויים, יכולת השוואה בין גרסאות, ואפשרות לחזרה לגרסה קודמת של בלוק ספציפי. כולל ממשק גרפי להצגת ההבדלים בין גרסאות ומטא-דאטה על כל שינוי (זמן, משתמש, סיבה).",
|
||
"testStrategy": "בדיקת שמירה ושחזור של גרסאות שונות. וולידציה של דיוק ההשוואות בין גרסאות.",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"58"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:04:33.961Z"
|
||
},
|
||
{
|
||
"id": "67",
|
||
"title": "טיפול באיחוד תיקים",
|
||
"description": "פיתוח מנגנון לטיפול באיחוד תיקים כמו במקרה אריאלי 1078+1083",
|
||
"details": "יישום לוגיקה לזיהוי תיקים הקשורים זה לזה ומנגנון איחוד אוטומטי או חצי-אוטומטי. טיפול בחפיפות מידע, פתרון קונפליקטים, ושמירת קישוריות בין התיקים המאוחדים. כולל ממשק למשתמש לאישור ועריכת האיחוד המוצע.",
|
||
"testStrategy": "בדיקה על מקרי איחוד ידועים. וולידציה של שלמות המידע לאחר איחוד ותקינות הקישורים.",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"57",
|
||
"66"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:04:33.964Z"
|
||
},
|
||
{
|
||
"id": "68",
|
||
"title": "תיקון LOA של סיעור מוחות",
|
||
"description": "תיקון רמת האוטומציה של סיעור מוחות מרמה ג' לרמה ב'",
|
||
"details": "עדכון הגדרת רמת האוטומציה (LOA) של תהליך סיעור המוחות מרמה ג' (אוטומציה מלאה) לרמה ב' (אוטומציה עם פיקוח אנושי). עדכון כל המסמכים והממשקים הרלוונטיים. הבטחת התאמה לרמת הביקורת הנדרשת.",
|
||
"testStrategy": "סקירת כל המסמכים לוידוא עדכון עקבי של רמת האוטומציה. בדיקת התאמה לדרישות הביקורת.",
|
||
"priority": "low",
|
||
"dependencies": [],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:04:33.967Z"
|
||
},
|
||
{
|
||
"id": "69",
|
||
"title": "הגדרת סיעור מוחות כאופציונלי",
|
||
"description": "שינוי הגדרת סיעור המוחות לאופציונלי גם במקרים שיש נימוק קיים",
|
||
"details": "עדכון הלוגיקה כך שסיעור מוחות יהיה אופציונלי בכל המקרים, כולל כאשר קיים נימוק בסיסי. הוספת אפשרות למשתמש לבחור האם להפעיל סיעור מוחות או לדלג עליו. עדכון ממשק המשתמש והדרישות בהתאם.",
|
||
"testStrategy": "בדיקת התנהגות המערכת במקרים שונים של נוכחות או היעדר נימוק. וולידציה של חופש הבחירה של המשתמש.",
|
||
"priority": "low",
|
||
"dependencies": [
|
||
"68"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:04:33.969Z"
|
||
},
|
||
{
|
||
"id": "70",
|
||
"title": "הוספת ניטרליות מבנית",
|
||
"description": "הרחבת דרישות הניטרליות מלקסיקלית למבנית",
|
||
"details": "הגדרת כללים לניטרליות מבנית בנוסף ללקסיקלית: סדר הצגת הטיעונים, אורך היחסי של סעיפים, מיקום המידע, ומבנה הפסיקה. פיתוח מנגנון בדיקה אוטומטית לזיהוי הטיה מבנית ואזהרות למשתמש. כולל הנחיות לכתיבה מאוזנת.",
|
||
"testStrategy": "ניתוח פסיקות לזיהוי דפוסי הטיה מבנית. בדיקת יעילות המנגנון בזיהוי וטיפול בהטיות.",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"57"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:04:33.973Z"
|
||
},
|
||
{
|
||
"id": "71",
|
||
"title": "מיפוי פרסורמן 4 stages",
|
||
"description": "הרחבת המיפוי מ-LOA בלבד לכלל 4 השלבים של מודל פרסורמן",
|
||
"details": "מיפוי מלא של התהליך לפי 4 השלבים של פרסורמן: Information acquisition, Information analysis, Decision selection, Action implementation. הגדרת רמת האוטומציה לכל שלב בנפרד ולא רק LOA כללי. עדכון התיעוד והדרישות בהתאם.",
|
||
"testStrategy": "וולידציה של המיפוי מול מודל פרסורמן המקורי. בדיקת עקביות ההגדרות בין השלבים השונים.",
|
||
"priority": "low",
|
||
"dependencies": [
|
||
"68"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:04:33.976Z"
|
||
},
|
||
{
|
||
"id": "72",
|
||
"title": "הגדרת דרישות ביצועים per-block וסינכרוני/אסינכרוני",
|
||
"description": "הגדרת דרישות ביצועים מפורטות לכל בלוק ובחירה בין עיבוד סינכרוני לאסינכרוני",
|
||
"details": "הגדרת SLA ספציפי לכל בלוק: זמני תגובה מקסימליים, throughput נדרש, ושיעור זמינות. החלטה על ארכיטקטורת עיבוד: סינכרונית לבלוקים קריטיים, אסינכרונית לבלוקים כבדים. יישום מנגנון ניטור ביצועים ואזהרות על חריגה מהסטנדרטים.",
|
||
"testStrategy": "בדיקות עומס לכל בלוק בנפרד. מדידת זמני תגובה ותפוקה בתנאים שונים. וולידציה של עמידה ב-SLA.",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"57"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-02T21:04:33.980Z"
|
||
},
|
||
{
|
||
"id": "73",
|
||
"title": "הרחבת DB schema לתהליך מלא",
|
||
"description": "הוספת שדות וטבלאות חסרים לתמיכה בתהליך המלא של כתיבת החלטות משפטיות",
|
||
"details": "בקובץ db.py:\n1. הוספת שדות לטבלת decisions:\n - direction_doc JSONB - לשמירת מסמך הכיוון\n - outcome_reasoning TEXT - לנימוק התוצאה\n2. הרחבת enum של status בטבלת cases ל-13 ערכים:\n ['new', 'uploading', 'processing', 'documents_ready', 'outcome_set', 'brainstorming', 'direction_approved', 'drafting', 'qa_review', 'drafted', 'exported', 'reviewed', 'final']\n3. יצירת טבלת qa_results חדשה:\n - id SERIAL PRIMARY KEY\n - case_number VARCHAR REFERENCES cases\n - validation_type VARCHAR\n - passed BOOLEAN\n - errors JSONB\n - created_at TIMESTAMP\n4. יישום כ-migration עם Alembic",
|
||
"testStrategy": "1. בדיקת migration up/down\n2. וידוא שכל השדות החדשים נוצרו\n3. בדיקת constraints ו-foreign keys\n4. בדיקת ערכי enum החדשים\n5. בדיקת insert/update על השדות החדשים",
|
||
"priority": "high",
|
||
"dependencies": [],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T08:54:55.256Z"
|
||
},
|
||
{
|
||
"id": "74",
|
||
"title": "הוספת 5 API endpoints חדשים ב-MCP server",
|
||
"description": "יצירת endpoints חדשים לתמיכה בתהליך כתיבת ההחלטות",
|
||
"details": "בקובץ server.py או בקבצי API:\n1. POST /api/cases/{case_number}/outcome\n - קבלת: {outcome: string, reasoning: string}\n - שמירה ב-DB\n - עדכון סטטוס ל-outcome_set\n2. GET /api/cases/{case_number}/claims\n - החזרת טענות מחולצות מה-JSONB\n3. POST /api/cases/{case_number}/direction\n - קבלת מסמך כיוון כ-JSON\n - שמירה בשדה direction_doc\n - עדכון סטטוס ל-direction_approved\n4. POST /api/cases/{case_number}/qa\n - הרצת בדיקות QA\n - שמירה בטבלת qa_results\n - החזרת תוצאות\n5. POST /api/cases/{case_number}/learn\n - הפעלת לולאת למידה\n - עדכון מודלים/פרמטרים",
|
||
"testStrategy": "1. בדיקת כל endpoint עם Postman/pytest\n2. בדיקת validations על הקלט\n3. בדיקת error handling\n4. בדיקת עדכוני סטטוס\n5. בדיקת permissions/auth",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"73"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T08:55:56.839Z"
|
||
},
|
||
{
|
||
"id": "75",
|
||
"title": "הוספת 8 tools חדשים לפלאגין Paperclip",
|
||
"description": "הרחבת הפלאגין עם כלים חדשים לאינטראקציה עם המערכת המשפטית",
|
||
"details": "1. בקובץ src/worker.ts - הוספת 8 tools:\n - legal_document_upload: העלאת מסמך\n - legal_document_list: רשימת מסמכים\n - legal_document_text: קריאת טקסט ממסמך\n - legal_search_case: חיפוש תיק\n - legal_find_similar: מציאת תקדימים\n - legal_set_outcome: הגדרת תוצאה\n - legal_get_claims: קבלת טענות\n - legal_style_guide: קבלת הנחיות סגנון\n\n2. בקובץ src/legal-api.ts - יישום 8 methods:\n ```typescript\n async uploadDocument(caseNumber: string, file: File) {...}\n async listDocuments(caseNumber: string) {...}\n async getDocumentText(docId: string) {...}\n async searchCase(query: string) {...}\n async findSimilar(caseNumber: string) {...}\n async setOutcome(caseNumber: string, outcome: string, reasoning: string) {...}\n async getClaims(caseNumber: string) {...}\n async getStyleGuide() {...}\n ```\n\n3. בקובץ plugin.json - עדכון manifest",
|
||
"testStrategy": "1. בדיקת כל tool בנפרד\n2. בדיקת error handling\n3. בדיקת response format\n4. בדיקת אינטגרציה עם Claude\n5. בדיקת performance",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"74"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T08:59:27.838Z"
|
||
},
|
||
{
|
||
"id": "76",
|
||
"title": "שיפור status sync ב-Paperclip",
|
||
"description": "מיפוי מלא של 13 סטטוסים והוספת comments מפורטים",
|
||
"details": "1. עדכון מיפוי סטטוסים:\n ```javascript\n const statusMapping = {\n 'new': 'תיק חדש',\n 'uploading': 'העלאת מסמכים',\n 'processing': 'עיבוד מסמכים',\n 'documents_ready': 'מסמכים מוכנים',\n 'outcome_set': 'תוצאה הוגדרה',\n 'brainstorming': 'גיבוש כיוון',\n 'direction_approved': 'כיוון אושר',\n 'drafting': 'כתיבת החלטה',\n 'qa_review': 'בדיקת איכות',\n 'drafted': 'טיוטה מוכנה',\n 'exported': 'יוצאה ל-DOCX',\n 'reviewed': 'נבדקה ע\"י עו\"ד',\n 'final': 'סופית'\n }\n ```\n\n2. הוספת comments אוטומטיים ב-Paperclip:\n - בכל מעבר סטטוס\n - עם timestamp\n - עם פירוט הפעולה\n\n3. עדכון job sync-case-status",
|
||
"testStrategy": "1. בדיקת כל מעבר סטטוס\n2. וידוא comments נוצרים\n3. בדיקת sync דו-כיווני\n4. בדיקת edge cases\n5. בדיקת performance עם הרבה עדכונים",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"73"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T09:00:19.243Z"
|
||
},
|
||
{
|
||
"id": "77",
|
||
"title": "כתיבת SOUL.md לסוכנים",
|
||
"description": "יצירת קבצי הנחיות לסוכני AI בעברית",
|
||
"details": "1. CEO Agent SOUL.md:\n ```markdown\n # CEO Agent - סוכן מנהל\n \n ## תפקיד\n ניהול תהליך כתיבת החלטה משפטית מקצה לקצה\n \n ## הנחיות\n - עבוד בעברית תמיד\n - נהל את התהליך לפי 13 הסטטוסים\n - התרע לחיים במקרים: תקלה טכנית, החלטה מורכבת, חריגה מזמנים\n - וודא שכל שלב הושלם לפני מעבר לבא\n \n ## מיפוי סטטוסים\n [רשימת 13 סטטוסים עם הסבר לכל אחד]\n ```\n\n2. Case Analyst Agent SOUL.md:\n ```markdown\n # Case Analyst - סוכן מנתח\n \n ## תפקיד\n ניתוח מסמכים משפטיים וחילוץ מידע\n \n ## הנחיות\n - נתח מסמכים בעברית\n - חלץ טענות מרכזיות\n - זהה תקדימים רלוונטיים\n - סכם עובדות מהותיות\n ```",
|
||
"testStrategy": "1. בדיקת קריאות והבנה\n2. בדיקת שהסוכנים פועלים לפי ההנחיות\n3. בדיקת תגובות בעברית\n4. בדיקת זיהוי מצבי התראה\n5. בדיקת מעברי סטטוס",
|
||
"priority": "medium",
|
||
"dependencies": [],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T08:57:14.984Z"
|
||
},
|
||
{
|
||
"id": "78",
|
||
"title": "יישום skill /brainstorm",
|
||
"description": "יצירת skill לגיבוש כיוון ההחלטה בשיתוף עם המשתמש",
|
||
"details": "בקובץ skills/brainstorm.ts:\n```typescript\nexport async function brainstorm(caseNumber: string) {\n // שלב 1: הצגת טענות מרכזיות\n const claims = await api.getClaims(caseNumber);\n displayClaims(claims);\n \n // שלב 2: הצעת 2-3 כיוונים\n const directions = generateDirections(claims);\n displayDirections(directions);\n \n // שלב 3: דיון אינטראקטיבי\n let approved = false;\n while (!approved) {\n const feedback = await getUserFeedback();\n if (feedback.type === 'approve') {\n approved = true;\n } else {\n directions = refineDirections(directions, feedback);\n }\n }\n \n // שלב 4: יצירת מסמך כיוון\n const directionDoc = {\n mainDirection: directions.selected,\n keyPoints: directions.keyPoints,\n precedents: directions.precedents,\n approvedBy: 'user',\n timestamp: new Date()\n };\n \n // שלב 5: שמירה ועדכון סטטוס\n await api.saveDirection(caseNumber, directionDoc);\n}\n```",
|
||
"testStrategy": "1. בדיקת תצוגת טענות\n2. בדיקת יצירת כיוונים\n3. בדיקת אינטראקציה\n4. בדיקת שמירת מסמך כיוון\n5. בדיקת חסימה - אין התקדמות בלי אישור",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"74"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:16:24.667Z"
|
||
},
|
||
{
|
||
"id": "79",
|
||
"title": "שיפור skill /draft-decision לכתיבה בלוק-אחרי-בלוק",
|
||
"description": "שדרוג מ-stub לכתיבה מלאה עם 12 בלוקים",
|
||
"details": "בקובץ skills/draft-decision.ts:\n```typescript\nconst BLOCKS = [\n {id: 'ה', name: 'כותרת', temperature: 0.3},\n {id: 'ו', name: 'פתיח', temperature: 0.5},\n {id: 'ז', name: 'רקע', temperature: 0.4},\n {id: 'ח', name: 'טענות הצדדים', temperature: 0.3},\n {id: 'ט', name: 'תמצית', temperature: 0.6},\n {id: 'י', name: 'דיון והכרעה', temperature: 0.7, model: 'opus'},\n {id: 'יא', name: 'סוף דבר', temperature: 0.5}\n];\n\nexport async function draftDecision(caseNumber: string) {\n const direction = await api.getDirection(caseNumber);\n const lastBlock = await getLastCompletedBlock(caseNumber);\n \n for (let i = getBlockIndex(lastBlock) + 1; i < BLOCKS.length; i++) {\n const block = BLOCKS[i];\n \n // כתיבת בלוק\n const content = await writeBlock(block, {\n direction,\n previousBlocks: await getPreviousBlocks(caseNumber, i),\n temperature: block.temperature,\n model: block.model || 'default'\n });\n \n // שמירה מיידית\n await saveBlock(caseNumber, block.id, content);\n \n // בלוק י - CREAC + thinking\n if (block.id === 'י') {\n await applyCREAC(content);\n await addThinkingTags(content);\n }\n }\n}\n\n// Recovery function\nexport async function recoverDraft(caseNumber: string) {\n const lastBlock = await getLastCompletedBlock(caseNumber);\n return draftDecision(caseNumber); // ממשיך מאיפה שנפל\n}\n```",
|
||
"testStrategy": "1. בדיקת כתיבה רציפה של כל הבלוקים\n2. בדיקת recovery אחרי נפילה\n3. בדיקת CREAC בבלוק י\n4. בדיקת שמירה אחרי כל בלוק\n5. בדיקת פרמטרים שונים לכל בלוק",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"78",
|
||
"73"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:16:24.670Z"
|
||
},
|
||
{
|
||
"id": "80",
|
||
"title": "יישום skill /qa-validate",
|
||
"description": "בדיקות איכות אוטומטיות על ההחלטה",
|
||
"details": "בקובץ skills/qa-validate.ts:\n```typescript\nexport async function qaValidate(caseNumber: string) {\n const decision = await api.getDecision(caseNumber);\n const documents = await api.getDocuments(caseNumber);\n const claims = await api.getClaims(caseNumber);\n \n const checks = [\n {\n name: 'grounding_check',\n fn: () => validateGrounding(decision, documents),\n critical: true\n },\n {\n name: 'claims_coverage',\n fn: () => validateClaimsCoverage(decision, claims),\n critical: true\n },\n {\n name: 'neutral_background',\n fn: () => validateNeutrality(decision.background),\n critical: false\n },\n {\n name: 'weights_range',\n fn: () => validateWeightsInRange(decision),\n critical: true\n },\n {\n name: 'sequential_numbering',\n fn: () => validateNumbering(decision),\n critical: false\n },\n {\n name: 'definitions',\n fn: () => validateDefinitions(decision),\n critical: false\n }\n ];\n \n const results = [];\n let hasErrors = false;\n \n for (const check of checks) {\n const result = await check.fn();\n results.push({...result, name: check.name});\n if (!result.passed && check.critical) {\n hasErrors = true;\n }\n }\n \n // שמירת תוצאות\n await api.saveQAResults(caseNumber, results);\n \n // חסימת ייצוא אם יש שגיאות קריטיות\n if (hasErrors) {\n await api.blockExport(caseNumber);\n throw new Error('QA failed - export blocked');\n }\n \n return results;\n}\n```",
|
||
"testStrategy": "1. בדיקת כל validation בנפרד\n2. בדיקת חסימת ייצוא\n3. בדיקת דוח שגיאות מפורט\n4. בדיקת false positives\n5. בדיקת performance",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"79"
|
||
],
|
||
"status": "done",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:16:24.673Z"
|
||
},
|
||
{
|
||
"id": "81",
|
||
"title": "אינטגרציה E2E וחיבור Paperclip events",
|
||
"description": "חיבור מלא בין Paperclip ל-Claude Code עם trigger אוטומטי",
|
||
"details": "1. חיבור Paperclip events:\n```javascript\n// בקובץ paperclip-integration.js\npaperclip.on('issue.comment.created', async (event) => {\n if (event.comment.includes('/draft')) {\n await claudeCode.trigger('draft-decision', {\n caseNumber: event.issue.number\n });\n }\n});\n```\n\n2. E2E test על תיק הכט:\n```javascript\ntest('full flow - Hecht case', async () => {\n // העלאת חומרים\n await uploadDocuments('hecht', ['doc1.pdf', 'doc2.pdf']);\n \n // הזנת תוצאה\n await setOutcome('hecht', 'rejected', 'אין עילה');\n \n // כתיבה\n await triggerDraft('hecht');\n await waitForStatus('drafted');\n \n // QA\n const qaResults = await runQA('hecht');\n expect(qaResults.passed).toBe(true);\n \n // ייצוא\n const docx = await exportToDocx('hecht');\n \n // השוואה\n const similarity = await compareToFinal(docx, 'hecht-final.docx');\n expect(similarity).toBeGreaterThan(0.9);\n});\n```",
|
||
"testStrategy": "1. בדיקת trigger מ-Paperclip\n2. בדיקת flow מלא על תיק אמיתי\n3. בדיקת error handling\n4. בדיקת recovery\n5. השוואה להחלטה סופית",
|
||
"priority": "medium",
|
||
"dependencies": [
|
||
"75",
|
||
"76",
|
||
"77",
|
||
"78",
|
||
"79",
|
||
"80"
|
||
],
|
||
"status": "deferred",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:19:26.776Z"
|
||
},
|
||
{
|
||
"id": "82",
|
||
"title": "מבחן הסמכה",
|
||
"description": "בדיקת המערכת על תיק עם החלטה קיימת והשוואת איכות",
|
||
"details": "שלב ב - בדיקה על תיק עם החלטה:\n```javascript\nexport async function certificationTest() {\n // בחירת תיק עם החלטה סופית\n const testCase = await selectTestCase();\n \n // הסתרת ההחלטה המקורית\n await hideOriginalDecision(testCase.number);\n \n // הרצת המערכת\n await runFullFlow(testCase.number);\n \n // השוואה\n const draft = await getDecision(testCase.number);\n const original = testCase.originalDecision;\n \n const comparison = {\n structure: compareStructure(draft, original),\n content: compareContent(draft, original),\n reasoning: compareReasoning(draft, original),\n outcome: compareOutcome(draft, original)\n };\n \n // חישוב ציון כולל\n const score = calculateScore(comparison);\n \n // בדיקת סף - 90%\n if (score < 0.9) {\n throw new Error(`Score ${score} is below threshold`);\n }\n \n return {score, comparison};\n}\n\n// שלב ג - תיק חי\nexport async function liveTest() {\n const liveCase = await getLiveCase();\n await runFullFlow(liveCase.number);\n \n // שליחה לדפנה לבדיקה\n await sendForReview('dafna@law.firm', liveCase.number);\n}\n```",
|
||
"testStrategy": "1. בדיקת בחירת תיק מתאים\n2. בדיקת הסתרת החלטה מקורית\n3. בדיקת אלגוריתם השוואה\n4. בדיקת חישוב ציון\n5. בדיקת תהליך review עם דפנה",
|
||
"priority": "high",
|
||
"dependencies": [
|
||
"81"
|
||
],
|
||
"status": "deferred",
|
||
"subtasks": [],
|
||
"updatedAt": "2026-04-03T10:19:26.779Z"
|
||
}
|
||
],
|
||
"metadata": {
|
||
"version": "1.0.0",
|
||
"lastModified": "2026-04-04T07:50:59.999Z",
|
||
"taskCount": 51,
|
||
"completedCount": 49,
|
||
"tags": [
|
||
"master"
|
||
]
|
||
}
|
||
}
|
||
} |