feat(mcp): FU-14 GAP-48 פרוסה 3 — envelope ל-drafting (סגירת GAP-48) #79

Merged
chaim merged 1 commits from fix/fu14-gap48-drafting into main 2026-06-06 17:52:21 +00:00
Owner

מה

הפרוסה האחרונה של GAP-48 (INV-TOOL1). 18 כלי drafting הומרו ל-{status,data,message} — כולל מסלול הפקת-ההחלטה הקריטי (export_docx, revise_draft, write_block, ...).

עיקרון

  • כלים עם כשל משמעותי (export_docx/revise_draft/apply_user_edit): err() ברמת-המעטפת — כך הסוכן והמשתמש רואים את הכשל; failed_gates רוכב ב-data.
  • שאר הכלים: ok(data=payload) להצלחה, err להיעדר-תיק/קלט-שגוי/חריגה, empty למצב חסר-טיוטה.

תאימות-API

6 צרכני-app.py חוּוטו (get_decision_template, apply_user_edit ×2, revise_draft, list_bookmarks, export_docx) עם envelope_unwrap + בדיקת status=="error"→4xx. חוזה-ה-HTTP נשמר (כולל 409 לשערי-QA + failed_gates).

בדיקות

  • 182/182 עוברים — כולל test_export_qa_gate (שער-QA חוסם ייצוא; עודכן לחוזה: out["data"]["failed_gates"], success=status:"ok").

GAP-48 סגור 🎉

כל ~12 משפחות-הכלים אחידות. נותר ב-FU-14: GAP-49/50 (מיזוג+rename — שובר), GAP-54, GAP-47-חלק-ב.

Invariants

משלים INV-TOOL1 + G2. מתועד ב-X9 (הפרה ידועה: נסגר) + gap-audit FU-14 פרוסה 7. בוצע ב-worktree מבודד.

🤖 Generated with Claude Code

## מה הפרוסה **האחרונה** של GAP-48 (INV-TOOL1). **18 כלי `drafting`** הומרו ל-`{status,data,message}` — כולל מסלול הפקת-ההחלטה הקריטי (`export_docx`, `revise_draft`, `write_block`, ...). ## עיקרון - כלים עם כשל משמעותי (`export_docx`/`revise_draft`/`apply_user_edit`): **`err()` ברמת-המעטפת** — כך הסוכן והמשתמש רואים את הכשל; `failed_gates` רוכב ב-`data`. - שאר הכלים: `ok(data=payload)` להצלחה, `err` להיעדר-תיק/קלט-שגוי/חריגה, `empty` למצב חסר-טיוטה. ## תאימות-API 6 צרכני-`app.py` חוּוטו (`get_decision_template`, `apply_user_edit` ×2, `revise_draft`, `list_bookmarks`, `export_docx`) עם `envelope_unwrap` + בדיקת `status=="error"`→4xx. חוזה-ה-HTTP נשמר (כולל 409 לשערי-QA + `failed_gates`). ## בדיקות - **182/182 עוברים** — כולל `test_export_qa_gate` (שער-QA חוסם ייצוא; עודכן לחוזה: `out["data"]["failed_gates"]`, success=`status:"ok"`). ## GAP-48 סגור 🎉 כל ~12 משפחות-הכלים אחידות. נותר ב-FU-14: GAP-49/50 (מיזוג+rename — שובר), GAP-54, GAP-47-חלק-ב. ## Invariants משלים **INV-TOOL1** + **G2**. מתועד ב-X9 (הפרה ידועה: נסגר) + gap-audit FU-14 פרוסה 7. בוצע ב-worktree מבודד. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-06 17:52:11 +00:00
הפרוסה האחרונה של GAP-48 (INV-TOOL1). 18 כלי drafting הומרו ל-{status,data,message}
דרך tools/envelope.py — כולל מסלול הפקת-ההחלטה הקריטי.

עיקרון לכלים עם כשל משמעותי (export_docx/revise_draft/apply_user_edit): err()
ברמת-המעטפת — כך שהסוכן והמשתמש רואים את הכשל; failed_gates רוכב ב-data.
שאר הכלים: ok(data=payload) להצלחה, err להיעדר-תיק/קלט-שגוי/חריגה.

6 צרכני-app.py חוּוטו (get_decision_template, apply_user_edit ×2, revise_draft,
list_bookmarks, export_docx) עם envelope_unwrap + בדיקת status=="error"→4xx,
לשמירת חוזה-ה-API (X6) ללא-שינוי. test_export_qa_gate עודכן לחוזה החדש.

בדיקות: 182/182 עוברים (כולל שערי-QA של הייצוא).

GAP-48 סגור: כל ~12 משפחות-הכלים אחידות. נותר ב-FU-14: GAP-49/50 (שובר), GAP-54.

Invariants: משלים INV-TOOL1 + G2. מתועד ב-X9 (נסגר) + gap-audit פרוסה 7.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit ea84a602e6 into main 2026-06-06 17:52:21 +00:00
chaim deleted branch fix/fu14-gap48-drafting 2026-06-06 17:52:21 +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#79