fix(protocol): בחירת פרוטוקול ועדת-ערר לפי protocol_scope + document_id (#223) #393

Merged
chaim merged 1 commits from worktree-protocol-scope-fix into main 2026-07-05 10:00:34 +00:00
Owner

הבעיה

analyze_protocol בחר את מסמך-הפרוטוקול הראשון (doc_type='protocol') והתעלם מ-protocol_scope. בתיק 1043-02-26 יש שני פרוטוקולים — "נספח 18 — השתלשלות פרוטוקולים ודיונים" (ועדה מקומית) ו-"פרוטוקול דיון 23.6.26" (ועדת-הערר). הכלי ניתח את הלא-נכון (המקומי), אחסן 11 רשומות משוגות ב-protocol_analysis, ומעולם לא ניתח את דיון-הערר.

התיקון (Fix 1 — קוד)

  • _find_protocol מעדיף פרוטוקול ועדת-ערר (scope != 'lower'). פרוטוקול 'lower' (ועדה מקומית/מחוזית) לא נכנס להשוואת דיון↔כתבי-טענות — הוא רקע לבלוק ו בלבד.
  • כמה פרוטוקולי-ערר → האחרון (created_at) גובר; document_id מכוון במפורש לדיון הנכון.
  • _protocol_scope קורא metadata.protocol_scope (ריק=appeal, כמוסכמת ה-UI).
  • analyze_protocol (service + drafting tool + MCP tool) מקבל document_id אופציונלי.
  • הודעת no_protocol מבהירה את דרישת ה-scope.

בדיקות

20/20 עוברות (15 קיימות + 5 חדשות): דילוג-lower, all-lower→None, most-recent-wins, targeting מפורש, unknown-id→None. py_compile נקי.

טווח / המשך

  • Fix 2 (ניקוי 1043) — תיוג נספח 18 כ-lower + מחיקת 11 הרשומות השגויות + הרצה מכוונת ל-23.6.26 — דורש טעינה-מחדש של ה-MCP (הקוד רץ מקומית), אחרי מיזוג.
  • Fix 3 — פרוצדורת "נתח מסמך-נוסף לתיק" הכללית — המשך ב-#223.

Invariants

  • G1 — נרמול-במקור: קריאת scope מ-metadata, לא ניחוש-בזמן-קריאה.
  • G2 — אותו נתיב-ניתוח, בורר מדויק (אין מסלול מקביל).
  • §6no_protocol מחזיר סטטוס מפורש, בלי בליעה שקטה.

🤖 Generated with Claude Code

## הבעיה `analyze_protocol` בחר את מסמך-הפרוטוקול הראשון (`doc_type='protocol'`) והתעלם מ-`protocol_scope`. בתיק **1043-02-26** יש שני פרוטוקולים — "נספח 18 — השתלשלות פרוטוקולים ודיונים" (ועדה מקומית) ו-"פרוטוקול דיון 23.6.26" (ועדת-הערר). הכלי ניתח את **הלא-נכון** (המקומי), אחסן 11 רשומות משוגות ב-`protocol_analysis`, ומעולם לא ניתח את דיון-הערר. ## התיקון (Fix 1 — קוד) - **`_find_protocol`** מעדיף פרוטוקול **ועדת-ערר** (`scope != 'lower'`). פרוטוקול `'lower'` (ועדה מקומית/מחוזית) לא נכנס להשוואת דיון↔כתבי-טענות — הוא רקע לבלוק ו בלבד. - כמה פרוטוקולי-ערר → האחרון (`created_at`) גובר; **`document_id`** מכוון במפורש לדיון הנכון. - `_protocol_scope` קורא `metadata.protocol_scope` (ריק=appeal, כמוסכמת ה-UI). - `analyze_protocol` (service + drafting tool + MCP tool) מקבל `document_id` אופציונלי. - הודעת `no_protocol` מבהירה את דרישת ה-scope. ## בדיקות ✅ **20/20 עוברות** (15 קיימות + 5 חדשות): דילוג-`lower`, all-lower→None, most-recent-wins, targeting מפורש, unknown-id→None. `py_compile` נקי. ## טווח / המשך - **Fix 2 (ניקוי 1043)** — תיוג נספח 18 כ-`lower` + מחיקת 11 הרשומות השגויות + הרצה מכוונת ל-23.6.26 — דורש **טעינה-מחדש של ה-MCP** (הקוד רץ מקומית), אחרי מיזוג. - **Fix 3** — פרוצדורת "נתח מסמך-נוסף לתיק" הכללית — המשך ב-#223. ## Invariants - **G1** — נרמול-במקור: קריאת scope מ-`metadata`, לא ניחוש-בזמן-קריאה. - **G2** — אותו נתיב-ניתוח, בורר מדויק (אין מסלול מקביל). - **§6** — `no_protocol` מחזיר סטטוס מפורש, בלי בליעה שקטה. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-07-05 09:59:57 +00:00
fix(protocol): בחירת פרוטוקול ועדת-ערר לפי protocol_scope + document_id (#223)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 5s
Lint — undefined names / undefined-names (pull_request) Successful in 11s
f4ce8332fe
analyze_protocol בחר את מסמך-הפרוטוקול הראשון (doc_type='protocol') והתעלם
מ-protocol_scope. בתיק עם כמה פרוטוקולים — נספח ועדה-מקומית + דיון ועדת-הערר —
הוא ניתח את הלא-נכון (התגלה ב-1043-02-26: ניתח "נספח 18 השתלשלות פרוטוקולים"
במקום "פרוטוקול דיון 23.6.26").

- _find_protocol מעדיף פרוטוקול ועדת-ערר (scope שאינו 'lower'); פרוטוקול
  'lower' (ועדה מקומית/מחוזית) לא נכנס להשוואה — הוא רקע לבלוק ו בלבד.
- כמה פרוטוקולי-ערר → האחרון (created_at) גובר; document_id מכוון במפורש.
- analyze_protocol (service + drafting tool + MCP tool) מקבל document_id/
  target_document_id אופציונלי.
- _protocol_scope: קורא metadata.protocol_scope (ריק=appeal, כמו ה-UI).
- 5 בדיקות חדשות: דילוג-lower, all-lower→None, most-recent, targeting, unknown-id.

טווח: Fix1 (קוד). ניקוי 1043 (תיוג נספח 18 כ-lower + מחיקת 11 רשומות שגויות
+ הרצה מכוונת ל-23.6.26) דורש טעינה-מחדש של ה-MCP — אחרי מיזוג. פרוצדורת
ניתוח-מסמך-נוסף הכללית — המשך ב-#223.

Invariants: G1 (נרמול-במקור — קריאת scope מ-metadata, לא ניחוש-בקריאה) ·
G2 (אותו נתיב ניתוח, בורר מדויק) · §6 (no_protocol מחזיר סטטוס מפורש, לא בליעה).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 6414e5f94a into main 2026-07-05 10:00:34 +00:00
chaim deleted branch worktree-protocol-scope-fix 2026-07-05 10:00:34 +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#393