fix(block-zayin): הפרדת-משיבים בבלוק ז' (טענות הצדדים) — השלמת #224 לשכבת-הכתיבה #401

Merged
chaim merged 1 commits from worktree-block-zayin-respondent-split into main 2026-07-06 12:47:16 +00:00
Owner

הבעיה (אובחן בתיק 1043-02-26)

טיוטת-הביניים שהופקה מיזגה את המשיבים לסעיף גנרי אחד (או לא כללה אותם כצדדים מובחנים). המשיבים 2-3 ו-4-6 לא הופרדו — אף שהנתונים תקינים: ב-claims יש 129 טענות-משיבים מפוצלות לפי כתב-תשובה (34 של 2-3, 51 של 4-6, ועוד נספחים).

שני שורשים:

  1. _build_claims_context קיבץ רק לפי party_role → כל המשיבים לדלי אחד "טענות המשיבים".
  2. ה-prompt של בלוק ז' נעל "מבנה קבוע 3 חלקים: עוררים / ועדה מקומית / מבקשי-היתר"בלי "משיבים" בכלל. (בדיוק מה שנצפה: עוררים+ועדה, ומשיבים דקים ad-hoc.)

הפרדת-המשיבים של #224 יושמה בצבירה (legal_arguments) ובפאנל בלבד (PR#392) — לא בכותב-הבלוקים. זו השלמת החלק החסר.

התיקון

  • _build_claims_context מקבץ לפי (party_role, brief) כאשר brief = source_document ל-SPLIT_PARTIES (respondent/permit_applicant) — אותו כלל בדיוק כמו הצבירה (import SPLIT_PARTIES מ-argument_aggregator, G2 — בלוק ז' והפאנל מסכימים). התוצאה ל-1043: סעיפים נפרדים "טענות המשיבים — כתב תשובה משיבות 2 3", "— משיבים 4 6", "— נספח 13", "— נספח 15".
  • prompt בלוק ז' — מבנה-צדדים דינמי לפי הכותרות בקונטקסט; הוראה מפורשת לא למזג משיבים שונים ולשקף עמדות-מנוגדות; יעד-אורך גמיש.

היקף/הערות

  • משפיע גם על בלוק י' (אותו _build_claims_context) — הקשרו מופרד מעתה.
  • host-reload: ריצה ב-MCP המקומי → דורש git pull + reload, ואז הרצה-מחדש של write_interim_draft כדי לראות בפועל.
  • הצפוי ל-1043 אחרי הרצה-מחדש: טענות העוררים (71) · עמדת הוועדה המקומית (10) · משיבות 2-3 (34) · משיבים 4-6 (51) · נספח 13 (24) · נספח 15 (20) — מופרדים.
  • py_compile ירוק. Invariants: G2, G1.

🤖 Generated with Claude Code

## הבעיה (אובחן בתיק 1043-02-26) טיוטת-הביניים שהופקה מיזגה את המשיבים לסעיף גנרי אחד (או לא כללה אותם כצדדים מובחנים). המשיבים 2-3 ו-4-6 לא הופרדו — **אף שהנתונים תקינים**: ב-`claims` יש 129 טענות-משיבים מפוצלות לפי כתב-תשובה (34 של 2-3, 51 של 4-6, ועוד נספחים). **שני שורשים:** 1. `_build_claims_context` קיבץ **רק לפי `party_role`** → כל המשיבים לדלי אחד "טענות המשיבים". 2. ה-prompt של בלוק ז' נעל **"מבנה קבוע 3 חלקים: עוררים / ועדה מקומית / מבקשי-היתר"** — **בלי "משיבים" בכלל**. (בדיוק מה שנצפה: עוררים+ועדה, ומשיבים דקים ad-hoc.) הפרדת-המשיבים של **#224 יושמה בצבירה (legal_arguments) ובפאנל בלבד** (PR#392) — **לא בכותב-הבלוקים**. זו השלמת החלק החסר. ## התיקון - **`_build_claims_context`** מקבץ לפי `(party_role, brief)` כאשר `brief = source_document` ל-`SPLIT_PARTIES` (respondent/permit_applicant) — **אותו כלל בדיוק כמו הצבירה** (`import SPLIT_PARTIES` מ-`argument_aggregator`, G2 — בלוק ז' והפאנל מסכימים). התוצאה ל-1043: סעיפים נפרדים "טענות המשיבים — כתב תשובה משיבות 2 3", "— משיבים 4 6", "— נספח 13", "— נספח 15". - **prompt בלוק ז'** — מבנה-צדדים **דינמי** לפי הכותרות בקונטקסט; הוראה מפורשת לא למזג משיבים שונים ולשקף עמדות-מנוגדות; יעד-אורך גמיש. ## היקף/הערות - משפיע גם על **בלוק י'** (אותו `_build_claims_context`) — הקשרו מופרד מעתה. - **host-reload:** ריצה ב-MCP המקומי → דורש `git pull` + reload, ואז הרצה-מחדש של `write_interim_draft` כדי לראות בפועל. - **הצפוי ל-1043 אחרי הרצה-מחדש:** טענות העוררים (71) · עמדת הוועדה המקומית (10) · משיבות 2-3 (34) · משיבים 4-6 (51) · נספח 13 (24) · נספח 15 (20) — מופרדים. - py_compile ירוק. **Invariants:** G2, G1. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-07-06 12:47:05 +00:00
fix(block-zayin): הפרדת-משיבים בבלוק ז' (טענות הצדדים) — השלמת #224 לשכבת-הכתיבה
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 3s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
1da1585ca8
בלוק ז' של טיוטת-הביניים מיזג את כל המשיבים לסעיף אחד גנרי (או השמיטם) —
כי (א) _build_claims_context קיבץ רק לפי party_role, ו-(ב) ה-prompt נעל
"מבנה קבוע 3 חלקים: עוררים / ועדה מקומית / מבקשי-היתר" — בלי "משיבים" בכלל.
לכן בתיק 1043-02-26 המשיבים 2-3 ו-4-6 לא הופיעו כצדדים מובחנים, אף שהנתונים
(129 טענות-משיבים מפוצלות לפי כתב-תשובה) תקינים ב-claims. הפרדת-המשיבים של
#224 יושמה בצבירה+פאנל בלבד (PR#392) — לא בכותב-הבלוקים.

- `_build_claims_context` מקבץ לפי (party_role, brief) כאשר brief=source_document
  ל-SPLIT_PARTIES (respondent/permit_applicant) — **אותו כלל בדיוק כמו הצבירה**
  (import SPLIT_PARTIES מ-argument_aggregator, G2). התוצאה: סעיף נפרד לכל
  כתב-תשובה ("טענות המשיבים — כתב תשובה משיבות 2 3", "— משיבים 4 6"...).
- prompt בלוק ז': מבנה-צדדים דינמי לפי הכותרות בקונטקסט; הוראה מפורשת לא למזג
  משיבים שונים ולשקף עמדות-מנוגדות; יעד-אורך גמיש לכמה כתבי-תשובה.

משפיע גם על בלוק י' (אותו _build_claims_context) — הקשר מופרד. py_compile ירוק.
עבודה על MCP → דורש host reload + הרצה-מחדש כדי לראות בפועל.
Invariants: G2 (נגזרת-הפרדה יחידה משותפת עם הצבירה), G1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 9f1ad67536 into main 2026-07-06 12:47:16 +00:00
chaim deleted branch worktree-block-zayin-respondent-split 2026-07-06 12:47:16 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/legal-ai#401