feat(ceo): wire party-claims executive summary as chair-requestable stage (#202 follow-up) #381

Merged
chaim merged 1 commits from worktree-agent-a7ef79d9409c5c6ca into main 2026-06-30 19:23:59 +00:00
Owner

מה ולמה

הכלי summarize_party_claims (#202) מפיק סיכום-מנהלים מזוקק של טענות הצדדים להכנת היו"ר לדיון (נשמר ל-data/cases/{n}/documents/research/party-claims-summary.md, עם endpoints לקריאה/הורדה/ייצוא-DOCX). אבל הוא היה יתום: לא הוענק לאף סוכן ולא היה לו טריגר ב-CEO — היו"ר לא יכול היה לבקש שיופק. מנגד, טיוטת-הביניים מחווטת לגמרי (שלב H). PR זה מחווט את סיכום-המנהלים במקביל לטיוטת-הביניים, ללא קוד-אפליקציה.

שינויים (agent-prompt/docs בלבד):

  • הענקת הכלי: mcp__legal-ai__summarize_party_claims נוסף ל-tools: ב-frontmatter של legal-ceo.md.
  • שלב H2 חדש ("סיכום מנהלים של טענות הצדדים"), ממודל על שלב H: side-quest (לא משנה cases.status, לא יוצר issues לסוכני-משנה) → comment "מתחיל…" → in_progresssummarize_party_claims(case_number, instructions="") → comment "סיכום מנהלים מוכן" (קישור לקובץ + 3 ה-endpoints) → in_review + מייל notify.py.
  • טריגרים (שתי דרכים): (א) הערת-יו"ר חופשית — "סיכום מנהלים" / "סיכום טענות" / "סיכום לקראת דיון" / "executive summary"; (ב) פעולה סטרוקטורלית$PAPERCLIP_WAKE_PAYLOAD_JSON עם action == "party_claims_summary" (מסלול דטרמיניסטי לכפתור-UI עתידי).
  • שלב H (טיוטת ביניים) — נוספה גם פעולה סטרוקטורלית: action == "interim_draft" (אותו מסלול-כפתור דטרמיניסטי), בלי לשנות את שאר הלוגיקה של שלב H.
  • שלב 0 + HEARTBEAT.md: ניתוב דטרמיניסטי של הפעולות הסטרוקטורליות (party_claims_summary / interim_draft).
  • ספ: הערה ב-docs/spec/04-analysis-writing.md §1.4 — סיכום-המנהלים הוא side-quest מבוקש-יו"ר (תגובה או פעולה סטרוקטורלית), נפרד מטיוטת-הביניים.

אחרי merge — git pull בעץ הראשי: ה-CEO prompt משותף ל-CMP+CMPA דרך instructionsFilePath (קובץ יחיד), והסוכנים רצים host-side וקוראים .claude/agents/*.md. כדי שהשינוי ייכנס לתוקף יש להריץ git pull בעץ-העבודה הראשי ~/legal-ai.

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

  • נוגע / מקיים:
    • G2 (מקור-אמת יחיד) — שימוש-חוזר ב-summarize_party_claims הקיים ובמסלול-הנתונים שלו (legal_arguments/claims, בלי חילוץ-מחדש); לא נוצר מסלול מקביל.
    • G10 (שער-יו"ר) — סיכום-המנהלים מופק כ-side-quest מבוקש-יו"ר בלבד (תגובה או פעולה סטרוקטורלית), לא אוטומטית בזרימה.

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

  • קראתי את docs/spec/00-constitution.md (G2/G10) + docs/spec/04-analysis-writing.md §1.4 לפני הכתיבה
  • השינוי לא יוצר מסלול מקביל ליכולת קיימת (G2) ולא מת��ן תסמין בקריאה (G1)
  • לא הוספתי מגע-Paperclip מחוץ ל-Platform Port (G12) — שינוי ב-skills/prompts בלבד, mcp-server/src נקי
  • אין בליעה שקטה של שגיאות — שלב H2 מורה לדווח אם אין טענות/claims ולא להמציא תוכן
  • בדקתי מול docs/spec/gap-audit.md — אין FU ממופה שנגעתי בו
  • בדיקות לא נדרשות (agent-prompt/docs בלבד, אין קוד)
  • לא data-migration

אימות

  • אימות שם-הכלי: grep summarize_party_claims mcp-server/src/legal_mcp/server.py → רשום כ-@mcp.tool() (שורה 851), כלומר שם-MCP מלא mcp__legal-ai__summarize_party_claims — נוסף ל-frontmatter של ה-CEO.
  • אימות ה-endpoints שמצוטטים בשלב H2 קיימים ב-web/app.py (3073/3083/3097): read / download / export-docx.
  • שלב H2 נקרא ומראה את אותו דפוס של שלב H (side-quest, in_progress→tool→in_review+notify).

🤖 Generated with Claude Code

## מה ולמה הכלי `summarize_party_claims` (#202) מפיק **סיכום-מנהלים מזוקק** של טענות הצדדים להכנת היו"ר לדיון (נשמר ל-`data/cases/{n}/documents/research/party-claims-summary.md`, עם endpoints לקריאה/הורדה/ייצוא-DOCX). אבל הוא היה **יתום**: לא הוענק לאף סוכן ולא היה לו טריגר ב-CEO — היו"ר לא יכול היה לבקש שיופק. מנגד, טיוטת-הביניים מחווטת לגמרי (שלב H). PR זה מחווט את סיכום-המנהלים **במקביל** לטיוטת-הביניים, ללא קוד-אפליקציה. **שינויים (agent-prompt/docs בלבד):** - **הענקת הכלי:** `mcp__legal-ai__summarize_party_claims` נוסף ל-`tools:` ב-frontmatter של `legal-ceo.md`. - **שלב H2 חדש** ("סיכום מנהלים של טענות הצדדים"), ממודל על שלב H: side-quest (לא משנה `cases.status`, לא יוצר issues לסוכני-משנה) → comment "מתחיל…" → `in_progress` → `summarize_party_claims(case_number, instructions="")` → comment "סיכום מנהלים מוכן" (קישור לקובץ + 3 ה-endpoints) → `in_review` + מייל `notify.py`. - **טריגרים (שתי דרכים):** (א) הערת-יו"ר חופשית — "סיכום מנהלים" / "סיכום טענות" / "סיכום לקראת דיון" / "executive summary"; (ב) **פעולה סטרוקטורלית** — `$PAPERCLIP_WAKE_PAYLOAD_JSON` עם `action == "party_claims_summary"` (מסלול דטרמיניסטי לכפתור-UI עתידי). - **שלב H (טיוטת ביניים) — נוספה גם פעולה סטרוקטורלית:** `action == "interim_draft"` (אותו מסלול-כפתור דטרמיניסטי), בלי לשנות את שאר הלוגיקה של שלב H. - **שלב 0 + `HEARTBEAT.md`:** ניתוב דטרמיניסטי של הפעולות הסטרוקטורליות (`party_claims_summary` / `interim_draft`). - **ספ:** הערה ב-`docs/spec/04-analysis-writing.md` §1.4 — סיכום-המנהלים הוא side-quest מבוקש-יו"ר (תגובה או פעולה סטרוקטורלית), נפרד מטיוטת-הביניים. > **אחרי merge — `git pull` בעץ הראשי:** ה-CEO prompt משותף ל-CMP+CMPA דרך `instructionsFilePath` (קובץ יחיד), והסוכנים רצים host-side וקוראים `.claude/agents/*.md`. כדי שהשינוי ייכנס לתוקף יש להריץ `git pull` בעץ-העבודה הראשי `~/legal-ai`. ## Invariants — הצהרה (חובה) - **נוגע / מקיים:** - **G2 (מקור-אמת יחיד)** — שימוש-חוזר ב-`summarize_party_claims` הקיים ובמסלול-הנתונים שלו (`legal_arguments`/`claims`, בלי חילוץ-מחדש); לא נוצר מסלול מקביל. - **G10 (שער-יו"ר)** — סיכום-המנהלים מופק כ-side-quest מבוקש-יו"ר בלבד (תגובה או פעולה סטרוקטורלית), לא אוטומטית בזרימה. ## צ'קליסט — פרוטוקול כתיבת-קוד - [x] קראתי את `docs/spec/00-constitution.md` (G2/G10) + `docs/spec/04-analysis-writing.md` §1.4 לפני הכתיבה - [x] השינוי **לא** יוצר מסלול מקביל ליכולת קיימת (G2) ולא מת��ן תסמין בקריאה (G1) - [x] **לא** הוספתי מגע-Paperclip מחוץ ל-Platform Port (G12) — שינוי ב-skills/prompts בלבד, `mcp-server/src` נקי - [x] אין בליעה שקטה של שגיאות — שלב H2 מורה לדווח אם אין טענות/claims ולא להמציא תוכן - [x] בדקתי מול `docs/spec/gap-audit.md` — אין FU ממופה שנגעתי בו - [x] בדיקות לא נדרשות (agent-prompt/docs בלבד, אין קוד) - [x] לא data-migration ## אימות - אימות שם-הכלי: `grep summarize_party_claims mcp-server/src/legal_mcp/server.py` → רשום כ-`@mcp.tool()` (שורה 851), כלומר שם-MCP מלא `mcp__legal-ai__summarize_party_claims` — נוסף ל-frontmatter של ה-CEO. - אימות ה-endpoints שמצוטטים בשלב H2 קיימים ב-`web/app.py` (3073/3083/3097): read / download / export-docx. - שלב H2 נקרא ומראה את אותו דפוס של שלב H (side-quest, in_progress→tool→in_review+notify). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-30 19:23:24 +00:00
feat(ceo): wire party-claims executive summary as chair-requestable stage (#202 follow-up)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 4s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
b560417dd7
The summarize_party_claims tool (#202) generated a distilled executive
summary of party claims but was orphaned: not granted to any agent and
no CEO trigger. Wire it parallel to the interim-draft (שלב H).

- Grant mcp__legal-ai__summarize_party_claims in legal-ceo.md frontmatter.
- Add שלב H2 (סיכום מנהלים) mirroring שלב H: side-quest (no cases.status
  change, no sub-agent issues), in_progress → run tool → in_review + notify.
  Two triggers: chair comment ("סיכום מנהלים"/"סיכום טענות"/"סיכום לקראת
  דיון"/"executive summary") OR structured action
  $PAPERCLIP_WAKE_PAYLOAD_JSON action == "party_claims_summary".
- Add structured-action trigger to שלב H (interim draft):
  action == "interim_draft" — same deterministic UI-button path.
- שלב 0 + HEARTBEAT.md: route structured actions deterministically.
- Spec note in docs/spec/04-analysis-writing.md §1.4.

Invariants: G2 (reuse existing summarize_party_claims tool/path, no parallel
route), G10 (chair-requested side-quest). Agent-prompt/docs only — no app code.

Note: CEO prompt is shared across CMP+CMPA via instructionsFilePath; after
merge the host tree needs `git pull` (agents run host-side reading
.claude/agents/*.md).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 3b0d3e3b2e into main 2026-06-30 19:23:59 +00:00
chaim deleted branch worktree-agent-a7ef79d9409c5c6ca 2026-06-30 19:23:59 +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#381