diff --git a/.taskmaster/tasks/tasks.json b/.taskmaster/tasks/tasks.json index bd9d6c8..293b8a2 100644 --- a/.taskmaster/tasks/tasks.json +++ b/.taskmaster/tasks/tasks.json @@ -1146,7 +1146,7 @@ "description": "After deploy: PATCH 403-17 to set case_name='ערר 403/17', then trigger precedent_extract_halachot to test the dual-mode extraction on a non-binding committee decision.", "details": "", "testStrategy": "", - "status": "pending", + "status": "done", "dependencies": [ "9", "10", @@ -1154,7 +1154,8 @@ "12" ], "priority": "medium", - "subtasks": [] + "subtasks": [], + "updatedAt": "2026-05-26T10:38:07.071897Z" }, { "id": "14", @@ -1325,13 +1326,14 @@ "description": "ה-plugin שלנו: @paperclipai/plugin-sdk@^2026.325.0, apiVersion: 1, minimumHostVersion: 2026.325.0. ה-host: 2026.428.0. ייתכן capabilities חדשות (issue.interactions.create, וכו').", "details": "פעולה (Phase 4 — אחרי שדרוג Paperclip stable):\n1. cd /home/chaim/plugin-legal-ai && npm view @paperclipai/plugin-sdk version\n2. אם חדשה: npm install @paperclipai/plugin-sdk@latest\n3. קריאת adapter-plugin.md המעודכן ב-paperclip repo\n4. בדיקה אם apiVersion: 2 קיים\n5. הוספת capabilities חדשות אם רלוונטי (בעיקר issue.interactions.create אחרי gap #4)\n6. npm run build && reinstall plugin\n\nתלוי בgap #19 (interactions API) — אם אנחנו רוצים שהplugin יוכל ליצור interactions, חייב capability חדש.", "testStrategy": "אחרי npm install: בדיקה ש-plugin עולה ב-Paperclip בלי last_error. SELECT status, last_error FROM plugins WHERE plugin_key='marcusgroup.legal-ai'.", - "status": "pending", + "status": "done", "dependencies": [ "27", "19" ], "priority": "low", - "subtasks": [] + "subtasks": [], + "updatedAt": "2026-05-26T12:19:16.180163Z" }, { "id": "27", @@ -1339,10 +1341,11 @@ "description": "כרגע אנחנו על 2026.428.0 — הגרסה היציבה האחרונה. כשיופיע stable חדש (כנראה 2026.5xx.x), לבצע שדרוג מבוקר.", "details": "טריגר: npm view paperclipai dist-tags.latest מחזיר משהו ≠ 2026.428.0.\n\nפעולה:\n1. קריאת releases/v2026.5xx.x.md ב-GitHub\n2. בדיקת שינויים שעלולים להשפיע (CUSTOMIZATIONS.md סעיפים: hebrew, RTL, plugin driver, heartbeat)\n3. גיבוי: pg_dump של paperclip DB + cp -r ~/.npm/_npx/43414d9b790239bb /tmp/\n4. pm2 stop paperclip\n5. rm -rf ~/.npm/_npx/43414d9b790239bb\n6. npx paperclipai@latest run (יוריד גרסה חדשה)\n7. הרצה מחדש: ~/.paperclip/hebrew/apply-hebrew.sh && ~/.paperclip/issue-link-fix/apply-issue-link-fix.sh\n8. pm2 restart paperclip\n9. בדיקה ב-pc.nautilus.marcusgroup.org: עברית + plugin פעיל + סוכן מתעורר על comment\n\nתלוי בלי dependencies (יכול להיות מבוצע בכל עת אחרי שיש stable חדש).", "testStrategy": "אחרי שדרוג: cat ~/.npm/_npx/43414d9b790239bb/node_modules/paperclipai/package.json | grep version → גרסה חדשה. UI עברית. test wakeup על issue.", - "status": "pending", + "status": "done", "dependencies": [], "priority": "low", - "subtasks": [] + "subtasks": [], + "updatedAt": "2026-05-26T12:19:16.180163Z" }, { "id": "28", @@ -1472,11 +1475,11 @@ "description": "חוסר נוחות בעריכה. שינוי ה-Dialog/Sheet ל-Modal רחב מרכזי. רלוונטי גם להוספת שדות chair_name + district מהמשימה #31.", "details": "ראה תוכנית /home/chaim/.claude/plans/3-glimmering-oasis.md חלק א משימה #3.", "testStrategy": "", - "status": "pending", + "status": "done", "dependencies": [], "priority": "medium", "subtasks": [], - "updatedAt": "2026-05-26T05:54:01.651259Z" + "updatedAt": "2026-05-26T10:38:07.071897Z" }, { "id": "33", @@ -1484,11 +1487,11 @@ "description": "רוב הערכים זהים למספר התיק. להסתיר את העמודה ב-UI, לשמור עמודה ב-DB לשימוש עתידי.", "details": "ראה תוכנית /home/chaim/.claude/plans/3-glimmering-oasis.md חלק א משימה #4.", "testStrategy": "", - "status": "pending", + "status": "done", "dependencies": [], "priority": "low", "subtasks": [], - "updatedAt": "2026-05-26T05:54:01.651259Z" + "updatedAt": "2026-05-26T11:27:09.039154Z" }, { "id": "34", @@ -1496,14 +1499,14 @@ "description": "פאטרן: 'ונפנה להחלטות של ועדת ערר זו...', 'כפי שקבעתי בערר X', 'בדומה לעמדתי בהחלטה Y'. חילוץ אוטומטי + שמירה ב-precedent_internal_citations table שיאפשר ל-search_internal_decisions להחזיר גם את הפסיקה המוזכרת.", "details": "ראה תוכנית /home/chaim/.claude/plans/3-glimmering-oasis.md חלק א משימה #5. תלוי במשימה #30 (sub-bug ב) ובמשימה #31.", "testStrategy": "", - "status": "pending", + "status": "done", "dependencies": [ "30", "31" ], "priority": "medium", "subtasks": [], - "updatedAt": "2026-05-26T05:54:01.651259Z" + "updatedAt": "2026-05-26T10:38:07.071897Z" }, { "id": "35", @@ -1809,13 +1812,14 @@ "description": "Drift detection: שגיאה דומה ל-Bug (ב) יכולה לחזור בעתיד. periodic check (יומי?) + alert ל-Slack/comment.", "details": "scripts/audit_corpus_consistency.py — בודק: 1. case_law WHERE source_kind='external_upload' AND case_number ~ '^ערר|^ARAR'. 2. case_law WHERE source_kind='internal_committee' AND chair_name IS NULL. הרצה דרך cron או scheduled task ב-Paperclip.", "testStrategy": "להריץ אחרי כל העלאה חדשה (וגם פעם ביום). אם מוצא drift — comment ב-Paperclip ל-CEO.", - "status": "pending", + "status": "done", "dependencies": [ "30", "39" ], "priority": "low", - "subtasks": [] + "subtasks": [], + "updatedAt": "2026-05-26T11:27:09.039154Z" }, { "id": "48", @@ -1823,12 +1827,13 @@ "description": "chunk_size=600 חותך חלק מהלכות ארוכות. parent-doc: חיפוש על child קטן (300 tokens), החזרת parent גדול (1500 tokens) ל-LLM context.", "details": "מיגרציה DB: precedent_chunks.parent_chunk_id (FK self). chunking pipeline משתנה ל-2 רמות. retrieval: SELECT distinct parent_chunk WHERE child_chunk matches.", "testStrategy": "Eval: writer מקבל context מלא יותר, לא חתוך באמצע משפט/ציטוט.", - "status": "pending", + "status": "done", "dependencies": [ "41" ], "priority": "low", - "subtasks": [] + "subtasks": [], + "updatedAt": "2026-05-26T11:27:09.039154Z" }, { "id": "49", @@ -1836,10 +1841,11 @@ "description": "כיום 40/117 precedent_image_embeddings (34%). 77 רשומות נותרו ללא image embeddings. ערך נמוך כשהמסמכים digital-native, אבל קריטי לscanned PDFs.", "details": "scripts/multimodal_backfill.py כבר קיים. להריץ עם batch size 10 כדי לא לדפוק את Voyage rate limits. אומדן: 77×~10K tokens = ~770K tokens ($10-15).", "testStrategy": "אחרי backfill: COUNT(*) FROM precedent_image_embeddings ≥ 117 (מותר יותר אם יש כמה pages per pdf).", - "status": "pending", + "status": "done", "dependencies": [], "priority": "low", - "subtasks": [] + "subtasks": [], + "updatedAt": "2026-05-26T11:27:09.039154Z" }, { "id": "50", @@ -1847,10 +1853,11 @@ "description": "אין tracking של 'what was retrieved → what writer cited'. בלי זה — אי אפשר לעדכן את ה-RAG בצורה מדודה לאורך זמן.", "details": "טבלה חדשה retrieval_feedback (query, candidates_retrieved JSONB, cited_in_final_decision UUID[], created_at). hooks ב-writer לדווח. dashboard חודשי עם ndcg@10.", "testStrategy": "אחרי 3 החלטות סופיות: SELECT count FROM retrieval_feedback ≥ 3. dashboard מציג ndcg trend.", - "status": "pending", + "status": "done", "dependencies": [], "priority": "low", - "subtasks": [] + "subtasks": [], + "updatedAt": "2026-05-26T11:27:09.039154Z" }, { "id": "51", @@ -1858,10 +1865,11 @@ "description": "אם prompt או model משתנה — confidence distribution יכול לזוז. בלי monitoring — דרדור איכות עובר תחת הראדר.", "details": "scheduled job: weekly mean confidence per practice_area. אם זז ביותר מ-0.05 — alert. dashboard ב-/halachot עם histogram.", "testStrategy": "אחרי 4 שבועות — לבדוק שיש 4 datapoints + alert עובד על נתון synthetic.", - "status": "pending", + "status": "done", "dependencies": [], "priority": "low", - "subtasks": [] + "subtasks": [], + "updatedAt": "2026-05-26T11:27:09.039154Z" } ], "metadata": {