diff --git a/mcp-server/src/legal_mcp/services/block_writer.py b/mcp-server/src/legal_mcp/services/block_writer.py index 88e31cd..6b49604 100644 --- a/mcp-server/src/legal_mcp/services/block_writer.py +++ b/mcp-server/src/legal_mcp/services/block_writer.py @@ -148,16 +148,21 @@ BLOCK_PROMPTS = { "block-zayin": """כתוב את בלוק טענות הצדדים (בלוק ז, "תמצית טענות הצדדים") של החלטת ועדת ערר. -## כללים: -- כל טענה בסעיף נפרד, גוף שלישי ("העורר טוען כי...") -- סדר קבוע: טענות העוררים → עמדת הוועדה המקומית → עמדת מבקשי ההיתר (אם יש) +## כללים קריטיים: +- **סנתז טענות דומות** — אל תרשום כל טענה בנפרד. קבץ טענות דומות לנושא אחד. למשל: כל הטענות על הודעות → סעיף אחד, כל הטענות על רכוש משותף → סעיף אחד. +- גוף שלישי: "העוררים טוענים כי...", "הוועדה המקומית ציינה כי..." +- **מבנה קבוע עם 3 חלקים:** + 1. "טענות העוררים" — 8-12 סעיפים מקובצים לפי נושא + 2. "עמדת הוועדה המקומית" — 5-8 סעיפים + 3. "עמדת מבקשי ההיתר" (אם יש) — 5-10 סעיפים - כותרת: "תמצית טענות הצדדים" -- נאמנות מוחלטת למקור — לא לשנות, לא לקצר ללא ציון -- אין ניתוח, אין מסקנות, אין הערכה +- נאמנות למקור — לא להמציא טענות, אבל כן לאחד ולסכם טענות חוזרות +- אין ניתוח, אין מסקנות, אין הערכה ("טענה חלשה/חזקה") - רק מכתבי טענות מקוריים (לא השלמות טיעון) - מספור רציף +- **יעד אורך: 800-1500 מילים** -## טענות שחולצו: +## טענות שחולצו (קבץ טענות דומות לנושאים): {claims_context} ## פרטי התיק: diff --git a/mcp-server/src/legal_mcp/services/claims_extractor.py b/mcp-server/src/legal_mcp/services/claims_extractor.py index bf13b87..b4984c7 100644 --- a/mcp-server/src/legal_mcp/services/claims_extractor.py +++ b/mcp-server/src/legal_mcp/services/claims_extractor.py @@ -105,6 +105,9 @@ async def extract_claims_with_ai( ) raw = message.content[0].text.strip() + # Strip markdown code blocks if present + raw = re.sub(r"^```(?:json)?\s*", "", raw) + raw = re.sub(r"\s*```$", "", raw) try: # Extract JSON array from response json_match = re.search(r"\[.*\]", raw, re.DOTALL)