צבירת-הטיעונים מוחקת צד שלם בשקט — 310 טענות עוררים → 0 טיעונים, status ok #458
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & Why
aggregate_claims_to_arguments שולח את כל טענות צד-העוררים בקריאת-Claude אחת. בתיק 1069-04-26 היו 310, הקריאה החזירה לא-JSON, הקוד רשם warning והחזיר [] — והפעולה דיווחה הצלחה עם 0 טיעונים לצד המרכזי בערר. הדפוס הזה כבר תועד בקוד לגבי respondent ותוקן שם, אך התיקון לא הוחל על appellant.
הקשר ופירוט
שתי תקלות מובחנות — לתקן את שתיהן
תקלה 1 — appellant לא מפוצל, והקריאה גדולה מדי
mcp-server/src/legal_mcp/services/argument_aggregator.py:37ההערה בשורות 244-250 מתעדת בדיוק את הכשל הזה אצל respondent:
התיקון ההוא לא הוחל על appellant. ב-1069-04-26 הוא ספג 310 פרופוזיציות בקריאה אחת.
הנימוק לאי-פיצול ("Appellant/committee speak with a single voice") נכון סמנטית אך לא פותר את בעיית-הגודל. פיצול לפי
party_name/source_documentאצל עוררים גם לא יעזור כשכל 310 מגיעות מאותוכתב ערר. נדרש chunking לפי גודל, לא לפי מסמך.תקלה 2 — בליעה שקטה (הפרת כלל-הנדסה §6)
argument_aggregator.py:174-179צד שלם נעלם והפעולה מחזירה
status: ok. הקורא לא יכול להבחין בין "לצד הזה אין טיעונים" ל"הקריאה נכשלה". חייב להחזיר שגיאה או לפחותpartial:true+ רשימת הצדדים שנכשלו, כמו ש-extract_claimsכבר עושה עםpartial.ראיות (2026-08-05, תיק 1069-04-26)
הצבירה הורצה פעמיים: פעם דרך MCP (נקטעה ב-timeout של 30 דק') ופעם ישירות מהמארח בלי timeout — שתיהן החזירו 0 עוררים, כלומר זה לא timeout אלא כשל-גודל.
למה זה מסוכן במיוחד
analyze_protocolדורש טיעונים מאוגדים כתשתית להשוואה. בלי צד-העוררים הוא משווה את הפרוטוקול לצד אחד בלבד — ומחזיר תוצאה שנראית תקינה. גםvalidate_decision(כיסוי-טענות) מחשב מול נתון חסר.המצב הנוכחי גרוע מלפני הניקוי: קודם היו 104 טיעונים עם תגית שגויה אחידה; עכשיו 56 עם צד-העוררים נעדר לגמרי.
מה לא הסיבה
skipשוליות.אחרי התיקון
להריץ מחדש
aggregate_claims_to_arguments("1069-04-26", force=true)ולאמת שכל ארבעת הצדדים מיוצגים, ואזvalidate_decisionלקבלת מדד-כיסוי אמיתי לטיוטה שכבר נכתבה.Acceptance Criteria
רגרסיה: לצבור תיק עם >150 טענות בצד יחיד ולאמת שכל צד מיוצג. מבחן-בליעה: להזריק כשל בקריאת-Claude ולוודא שהפעולה מחזירה שגיאה/partial ולא status ok עם 0. בדיקת-שפיות מהירה:
select party, count(*) from legal_arguments where case_id=... group by 1— כל צד שיש לו claims חייב להופיע.הועבר מ-TaskMaster (tag
legal-ai, id 233, status היהpending) ב-2026-08-05. הפניות(#233)בהודעות-commit ישנות מתייחסות למזהה ה-TaskMaster, לא למספר ה-issue הזה.