feat(analysis): סיכום-מנהלים מזוקק של טענות הצדדים — מסמך הכנה לדיון (#202, WS3) #358

Merged
chaim merged 2 commits from worktree-agent-abc25c98bc1092fa3 into main 2026-06-30 12:18:09 +00:00
Owner

מה ולמה

WS3 / TaskMaster #202 (יוזמת workflow-redesign). כלי חדש שמפיק סיכום-מנהלים מזוקק של טענות הצדדים — מסמך פרוזה קצר ומוקפד (טענות + תשובות), שמטרתו להכין את היו"ר לדיון בעל-פה. זהו מסמך נפרד ומובחן מטיוטת-הביניים ומההחלטה (אושר ע"י חיים — לא ממוזג לטיוטת-הביניים). מזקק — לא משכפל את כתבי-הטענות.

מה נוסף

  • כלי-MCP summarize_party_claims(case_number, instructions="") (tools/drafting.py + רישום ב-server.py).
  • שירות services/party_claims_summary.py: בחירת-מקור legal_argumentsclaims (אותו מקור-אמת, ללא חילוץ-מחדש), פרומפט מעוגן-מקור, שמירה ל-data/cases/{n}/documents/research/party-claims-summary.md (git + S3, אותו מסלול של analysis-and-research.md).
  • ייצור דרך claude_sessionclaude -p נעוץ ל-Opus 4.8 + effort=high (משימת זיקוק/סינתזה; Opus דוחה temperature → effort היא הידית). local-only — לקונטיינר אין claude CLI.
  • ייצוא DOCX בסגנון-תבנית דפנה (build_party_claims_summary_docx ב-analysis_docx_exporter.py) + endpoints read/download/export-docx ב-web/app.py — מגישים/מייצאים את הקובץ השמור בלבד, לא מייצרים.
  • _next_version הוכלל ל-prefix-scoped (תאימות-לאחור) למניעת התנגשות-גרסאות בין הניתוח לסיכום.
  • ספ 04-analysis-writing.md §1.3 (חדש) + 8 בדיקות אופליין.

Invariants — הצהרה (חובה)

  • נוגע / מקיים:
    • G2 (מקור-אמת יחיד) — הסיכום נגזר מ-legal_arguments/claims הקיימים; אין מסלול-נתונים מקביל ואין חילוץ-מחדש. נשמר במסלול-האחסון הקנוני הקיים (storage/git, כמו analysis-and-research.md).
    • X9 INV-TOOL1 (envelope) + INV-TOOL4 (extract↔serve) — הכלי מחזיר ok/err דרך envelope ה-SSoT; הפלט נשמר durably ונחשף לקריאה/ייצוא דרך endpoints נפרדים.
    • INV-AH (anti-hallucination) — הפרומפט מתוחם לטענות-התיק שבקלט בלבד; אסור להמציא טענה/הלכה/פסק-דין/עובדה; טענה לא-ברורה מצוינת במפורש (abstention).
    • claude_session local-only — הייצור הוא כלי-MCP מקומי; ה-endpoints בקונטיינר רק מגישים. אפס import anthropic.
    • G9 (provenance/durability) — המסמך נשמר ל-DATA_DIR + מראה ל-S3 + commit ל-Gitea.
    • G11 (תוכן-משפטי) — ניטרליות (הצגת עמדות בלי הכרעה); באחריות היו"ר.

צ'קליסט — פרוטוקול כתיבת-קוד

  • קראתי את 00-constitution.md + 04-analysis-writing.md + X9 + הפלאן/memory לפני הכתיבה
  • השינוי לא יוצר מסלול מקביל (G2) ולא מתקן תסמין בקריאה (G1)
  • לא הוספתי מגע-Paperclip מחוץ ל-Platform Port (G12) — mcp-server/src נקי
  • אין בליעה שקטה — מצב "אין טענות" מחזיר err מפורש; מראה-S3 best-effort מתועד
  • בדקתי מול gap-audit.md — אין FU/GAP ממופה באזור הזה (יכולת חדשה, לא תיקון)
  • בדיקות עוברות — 8 חדשות + רגרסיה (export-qa-gate, docx-bookmarks) ירוקות

אימות

  • python -m py_compile על כל הקבצים שנגעתי בהם — OK.
  • pytest tests/test_party_claims_summary.py — 8/8 עוברות (בחירת-מקור arguments↔claims, סינון block-zayin, נעיצת model=claude-opus-4-8+effort=high+tools="", עיגון-הפרומפט, markdown→DOCX, prefix-scoped versioning).
  • רגרסיה: test_export_qa_gate + test_docx_exporter_bookmarks + test_claude_session — 28/28 עוברות.

⚠️ npm run api:types נדרש — אך רק לאחר deploy. נוספו 3 endpoints (GET .../research/party-claims-summary[/download][/export-docx]). הסקריפט מושך מ-OpenAPI של הייצור (legal-ai.nautilus.../openapi.json), כך שיש להריץ אותו ב-web-ui/ רק אחרי שה-PR מוזג ונפרס (אחרת ייווצרו טייפים מהסכמה הישנה). אין במשימה זו קוד-UI שצורך את ה-endpoints.

🤖 Generated with Claude Code

## מה ולמה WS3 / TaskMaster #202 (יוזמת workflow-redesign). כלי חדש שמפיק **סיכום-מנהלים מזוקק של טענות הצדדים** — מסמך פרוזה קצר ומוקפד (טענות + תשובות), שמטרתו **להכין את היו"ר לדיון בעל-פה**. זהו מסמך **נפרד ומובחן מטיוטת-הביניים ומההחלטה** (אושר ע"י חיים — לא ממוזג לטיוטת-הביניים). מזקק — לא משכפל את כתבי-הטענות. ### מה נוסף - **כלי-MCP `summarize_party_claims(case_number, instructions="")`** (`tools/drafting.py` + רישום ב-`server.py`). - **שירות `services/party_claims_summary.py`:** בחירת-מקור `legal_arguments`→`claims` (אותו מקור-אמת, **ללא חילוץ-מחדש**), פרומפט מעוגן-מקור, שמירה ל-`data/cases/{n}/documents/research/party-claims-summary.md` (git + S3, אותו מסלול של `analysis-and-research.md`). - **ייצור דרך `claude_session` → `claude -p` נעוץ ל-Opus 4.8 + `effort=high`** (משימת זיקוק/סינתזה; Opus דוחה temperature → effort היא הידית). **local-only** — לקונטיינר אין claude CLI. - **ייצוא DOCX** בסגנון-תבנית דפנה (`build_party_claims_summary_docx` ב-`analysis_docx_exporter.py`) + endpoints **read/download/export-docx** ב-`web/app.py` — מגישים/מייצאים את הקובץ השמור בלבד, **לא מייצרים**. - `_next_version` הוכלל ל-prefix-scoped (תאימות-לאחור) למניעת התנגשות-גרסאות בין הניתוח לסיכום. - ספ `04-analysis-writing.md` §1.3 (חדש) + 8 בדיקות אופליין. ## Invariants — הצהרה (חובה) - **נוגע / מקיים:** - **G2 (מקור-אמת יחיד)** — הסיכום נגזר מ-`legal_arguments`/`claims` הקיימים; **אין מסלול-נתונים מקביל** ואין חילוץ-מחדש. נשמר במסלול-האחסון הקנוני הקיים (`storage`/git, כמו analysis-and-research.md). - **X9 INV-TOOL1 (envelope) + INV-TOOL4 (extract↔serve)** — הכלי מחזיר `ok`/`err` דרך envelope ה-SSoT; הפלט נשמר durably ונחשף לקריאה/ייצוא דרך endpoints נפרדים. - **INV-AH (anti-hallucination)** — הפרומפט מתוחם לטענות-התיק שבקלט בלבד; אסור להמציא טענה/הלכה/פסק-דין/עובדה; טענה לא-ברורה מצוינת במפורש (abstention). - **claude_session local-only** — הייצור הוא כלי-MCP מקומי; ה-endpoints בקונטיינר רק מגישים. אפס `import anthropic`. - **G9 (provenance/durability)** — המסמך נשמר ל-DATA_DIR + מראה ל-S3 + commit ל-Gitea. - **G11 (תוכן-משפטי)** — ניטרליות (הצגת עמדות בלי הכרעה); באחריות היו"ר. ## צ'קליסט — פרוטוקול כתיבת-קוד - [x] קראתי את `00-constitution.md` + `04-analysis-writing.md` + `X9` + הפלאן/memory לפני הכתיבה - [x] השינוי **לא** יוצר מסלול מקביל (G2) ולא מתקן תסמין בקריאה (G1) - [x] **לא** הוספתי מגע-Paperclip מחוץ ל-Platform Port (G12) — `mcp-server/src` נקי - [x] אין בליעה שקטה — מצב "אין טענות" מחזיר `err` מפורש; מראה-S3 best-effort מתועד - [x] בדקתי מול `gap-audit.md` — אין FU/GAP ממופה באזור הזה (יכולת חדשה, לא תיקון) - [x] בדיקות עוברות — 8 חדשות + רגרסיה (export-qa-gate, docx-bookmarks) ירוקות ## אימות - `python -m py_compile` על כל הקבצים שנגעתי בהם — OK. - `pytest tests/test_party_claims_summary.py` — 8/8 עוברות (בחירת-מקור arguments↔claims, סינון block-zayin, נעיצת `model=claude-opus-4-8`+`effort=high`+`tools=""`, עיגון-הפרומפט, markdown→DOCX, prefix-scoped versioning). - רגרסיה: `test_export_qa_gate` + `test_docx_exporter_bookmarks` + `test_claude_session` — 28/28 עוברות. > **⚠️ `npm run api:types` נדרש — אך רק לאחר deploy.** נוספו 3 endpoints (`GET .../research/party-claims-summary[/download][/export-docx]`). הסקריפט מושך מ-OpenAPI של **הייצור** (`legal-ai.nautilus.../openapi.json`), כך שיש להריץ אותו ב-`web-ui/` **רק אחרי שה-PR מוזג ונפרס** (אחרת ייווצרו טייפים מהסכמה הישנה). אין במשימה זו קוד-UI שצורך את ה-endpoints. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-30 11:23:26 +00:00
feat(analysis): סיכום-מנהלים מזוקק של טענות הצדדים — מסמך הכנה לדיון (#202, WS3)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 4s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
aa2548ff5d
מסמך פרוזה נפרד מטיוטת-הביניים (החלטת-יו"ר): תמצית מוקפדת של טענות+תשובות
להכנת היו"ר לדיון. נגזר מ-legal_arguments/claims הקיימים — אותו מקור-אמת,
ללא חילוץ-מחדש (G2). מתוחם לטענות-התיק בלבד (INV-AH).

- כלי-MCP חדש summarize_party_claims (drafting.py + server.py); ייצור עובר
  claude_session נעוץ Opus 4.8 + effort=high (זיקוק/סינתזה); local-only.
- שירות party_claims_summary.py: בחירת-מקור arguments→claims, פרומפט מעוגן-מקור,
  שמירה ל-data/cases/{n}/documents/research/ (git + S3).
- ייצוא DOCX בסגנון-תבנית דפנה (build_party_claims_summary_docx) + endpoints
  read/download/export-docx ב-web/app.py (מגישים בלבד — אין claude CLI בקונטיינר).
- _next_version הוכלל ל-prefix-scoped (תאימות-לאחור) למניעת התנגשות-גרסאות.
- ספ 04-analysis-writing.md §1.3 + 8 בדיקות אופליין (מקור/נעיצת-מודל/markdown→docx).

Invariants: G2 (מקור-אמת יחיד, בלי מסלול מקביל) · X9 TOOL1/TOOL4 (envelope +
extract↔serve) · INV-AH (עיגון-מקור, abstention על טענה לא-ברורה) ·
claude_session local-only · G9 (provenance — נשמר durably + git/S3).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim added 1 commit 2026-06-30 12:17:26 +00:00
Merge remote-tracking branch 'origin/main' into rebase-358
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 3s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
9e6a441076
# Conflicts:
#	docs/spec/04-analysis-writing.md
chaim merged commit 085de937da into main 2026-06-30 12:18:09 +00:00
chaim deleted branch worktree-agent-abc25c98bc1092fa3 2026-06-30 12:18:09 +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#358