feat(agents): שטן-מליץ — שער-קבע אוטומטי אחרי הניתוח עם עצירת-אישור לידים ליו"ר (#211) #370

Merged
chaim merged 1 commits from worktree-agent-a5ebed3e62b0c790c into main 2026-06-30 18:11:14 +00:00
Owner

מה ולמה

שינוי-מדיניות יו"ר (TaskMaster legal-ai #211): סוכן שטן-מליץ (Gemini red-team, gemini_local) עובר מ-on-demand בלבד ל-שער-קבע (standing gate) שרץ אוטומטית אחרי שלב-הניתוח ולפני הכותב — אבל הלידים שלו נעצרים לאישור-יו"ר ולעולם אינם מוזנים לכותב/להחלטה אוטומטית.

הזרימה החדשה: מנתח סיים (analysis-and-research.md) → CEO מפעיל אוטומטית את שטן-מליץ (issue + parentId + plugin_state + wakeup) → red-team מפיק critique-gemini.md (לידים) → CEO מציג ליו"ר כעצירת-אישור קשיחה (issue ראשי ל-in_review + notify.py) → היו"ר מכריע per-ליד → רק לידים מאושרים מומרים ל-chair_directions דרך המנגנון הקיים → רק אז הכותב מופעל, וצורך רק את פלט-המנתח המעוגן + ההנחיות-המאושרות.

שינוי docs/prompt בלבד — אין קוד-אפליקציה, אין migrations. .taskmaster/tasks/tasks.json לא נכלל.

נקודת-ההזרקה לזרימה (analyst → red-team → chair → writer)

ב-legal-ceo.md, מיד אחרי שלב A (אימות-הניתוח) ולפני שלב B:

  • לפני: **עיקרון מנחה:** עדיף לעכב את התהליך… ### שלב B
  • אחרי: נוסף בלוק סדר-זרימה מחייב + שלב A2 (שער שטן-מליץ אוטומטי) + שלב A3 (עצירת-אישור הלידים, in_review, המרת מאושרים בלבד ל-chair_directions) → ואז שלב B.

מפת-הסטטוסים (documents_ready/analyst_verified/research_complete) מנתבת דרך השער.

המרת לידים מאושרים → chair_directions (מנגנון קיים)

לכל ליד שהיו"ר אישר: record_chair_feedback(block_id="block-yod", …) + רישום ל-"עמדת ועדת הערר" ב-analysis-and-research.mdget_chair_directions יחזירו לכותב → approve_direction יקפל ל-direction_doc. לידים שנדחו — נמחקים. אין מסלול חדש.

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

  • נוגע / מקיים:
    • G10 (שער אנושי לא-עקיף) — השער הוא עצירה קשיחה; אסור להמשיך לכותב בלי אישור-יו"ר מפורש ללידים.
    • INV-AH / INV-LRN5 — הלידים נשארים לא-סמכותיים, מתויגי-ודאות, ולעולם לא מוזנים אוטומטית לכותב/לקול/למהות. הגבול-הקריטי נשמר verbatim ("אסור להזין את הלידים שלו לכותב כמהות מאומתת… ה-writer ממשיך לצרוך רק את פלט-המנתח המעוגן").
    • G12 (שער-הפלטפורמה) — השינוי מוגבל למשטח agent-prompt (.claude/agents/*.md) + ספ; אין מגע-Paperclip ב-mcp-server/src.
    • INV-AG4 חדש ב-X4-agents.md + §1.6 ב-04-analysis-writing.md.

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

  • קראתי 00-constitution.md (G10/G12) + X4-agents.md + 04-analysis-writing.md + anti-hallucination-gate.md לפני הכתיבה
  • השינוי לא יוצר מסלול מקביל (G2) — chair_directions דרך המנגנון הקיים; הכותב צורך מקור-מעוגן בלבד
  • לא הוספתי מגע-Paperclip מחוץ למשטח agent-prompt (G12) — mcp-server/src נקי
  • אין בליעת-שגיאות (שינוי prompt בלבד)
  • אין data-migration

אימות

  • git status — 5 קבצים בלבד (HEARTBEAT.md, legal-analyst-gemini-critique.md, legal-ceo.md, docs/spec/04-analysis-writing.md, docs/spec/X4-agents.md); tasks.json לא נגוע.
  • אומת שהגבול-הקריטי ("לידים לבדיקת היו"ר בלבד" + "ה-writer ממשיך לצרוך רק את פלט-המנתח המעוגן") נשמר.
  • עוגני-הצלבה (INV-AG4) יושרו לקונבנציית-העוגנים של ה-repo (אישור-יור).

הערת-פריסה (אחרי merge)

הסוכנים רצים host-side דרך אדפטרי claude_local/gemini_local שקוראים .claude/agents/*.md מעץ-העבודה — לכן אחרי merge דרוש git pull בעץ-העבודה הראשי כדי שה-CEO ייקח את ההוראות החדשות. סוכן ה-Gemini על gemini_local (ש-sync_agents מדלג עליו), אך הפרומפט חי ב-.md המשותף (instructionsFilePath) — לכן שני ה-CEOs (CMP+CMPA) מקבלים אותו מקובץ אחד.

🤖 Generated with Claude Code

## מה ולמה שינוי-מדיניות יו"ר (TaskMaster `legal-ai` #211): סוכן **שטן-מליץ** (Gemini red-team, `gemini_local`) עובר מ-**on-demand בלבד** ל-**שער-קבע (standing gate)** שרץ **אוטומטית אחרי שלב-הניתוח ולפני הכותב** — אבל הלידים שלו **נעצרים לאישור-יו"ר** ולעולם אינם מוזנים לכותב/להחלטה אוטומטית. **הזרימה החדשה:** מנתח סיים (`analysis-and-research.md`) → CEO מפעיל אוטומטית את שטן-מליץ (issue + parentId + plugin_state + wakeup) → red-team מפיק `critique-gemini.md` (לידים) → CEO **מציג ליו"ר כעצירת-אישור קשיחה** (issue ראשי ל-`in_review` + `notify.py`) → היו"ר מכריע per-ליד → **רק לידים מאושרים** מומרים ל-`chair_directions` דרך המנגנון הקיים → **רק אז** הכותב מופעל, וצורך **רק** את פלט-המנתח המעוגן + ההנחיות-המאושרות. **שינוי docs/prompt בלבד — אין קוד-אפליקציה, אין migrations.** `.taskmaster/tasks/tasks.json` לא נכלל. ### נקודת-ההזרקה לזרימה (analyst → red-team → chair → writer) ב-`legal-ceo.md`, מיד אחרי **שלב A** (אימות-הניתוח) ולפני **שלב B**: - לפני: `**עיקרון מנחה:** עדיף לעכב את התהליך… ### שלב B` - אחרי: נוסף בלוק סדר-זרימה מחייב + **שלב A2** (שער שטן-מליץ אוטומטי) + **שלב A3** (עצירת-אישור הלידים, `in_review`, המרת מאושרים בלבד ל-chair_directions) → ואז **שלב B**. מפת-הסטטוסים (`documents_ready`/`analyst_verified`/`research_complete`) מנתבת דרך השער. ### המרת לידים מאושרים → chair_directions (מנגנון קיים) לכל ליד שהיו"ר אישר: `record_chair_feedback(block_id="block-yod", …)` + רישום ל-"עמדת ועדת הערר" ב-`analysis-and-research.md` → `get_chair_directions` יחזירו לכותב → `approve_direction` יקפל ל-direction_doc. לידים שנדחו — נמחקים. אין מסלול חדש. ## Invariants — הצהרה (חובה) - **נוגע / מקיים:** - **G10** (שער אנושי לא-עקיף) — השער הוא עצירה קשיחה; אסור להמשיך לכותב בלי אישור-יו"ר מפורש ללידים. - **INV-AH / INV-LRN5** — הלידים נשארים לא-סמכותיים, מתויגי-ודאות, ולעולם לא מוזנים אוטומטית לכותב/לקול/למהות. הגבול-הקריטי נשמר verbatim ("**אסור** להזין את הלידים שלו לכותב כמהות מאומתת… ה-writer ממשיך לצרוך **רק** את פלט-המנתח המעוגן"). - **G12** (שער-הפלטפורמה) — השינוי מוגבל למשטח agent-prompt (`.claude/agents/*.md`) + ספ; אין מגע-Paperclip ב-`mcp-server/src`. - **INV-AG4** חדש ב-`X4-agents.md` + **§1.6** ב-`04-analysis-writing.md`. ## צ'קליסט — פרוטוקול כתיבת-קוד - [x] קראתי `00-constitution.md` (G10/G12) + `X4-agents.md` + `04-analysis-writing.md` + `anti-hallucination-gate.md` לפני הכתיבה - [x] השינוי **לא** יוצר מסלול מקביל (G2) — chair_directions דרך המנגנון הקיים; הכותב צורך מקור-מעוגן בלבד - [x] **לא** הוספתי מגע-Paperclip מחוץ למשטח agent-prompt (G12) — `mcp-server/src` נקי - [x] אין בליעת-שגיאות (שינוי prompt בלבד) - [x] אין data-migration ## אימות - `git status` — 5 קבצים בלבד (HEARTBEAT.md, legal-analyst-gemini-critique.md, legal-ceo.md, docs/spec/04-analysis-writing.md, docs/spec/X4-agents.md); `tasks.json` לא נגוע. - אומת שהגבול-הקריטי ("לידים לבדיקת היו\"ר בלבד" + "ה-writer ממשיך לצרוך **רק** את פלט-המנתח המעוגן") נשמר. - עוגני-הצלבה (INV-AG4) יושרו לקונבנציית-העוגנים של ה-repo (`אישור-יור`). ## הערת-פריסה (אחרי merge) הסוכנים רצים host-side דרך אדפטרי `claude_local`/`gemini_local` שקוראים `.claude/agents/*.md` מעץ-העבודה — לכן **אחרי merge דרוש `git pull` בעץ-העבודה הראשי** כדי שה-CEO ייקח את ההוראות החדשות. סוכן ה-Gemini על `gemini_local` (ש-`sync_agents` מדלג עליו), אך הפרומפט חי ב-`.md` המשותף (instructionsFilePath) — לכן **שני** ה-CEOs (CMP+CMPA) מקבלים אותו מקובץ אחד. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-30 18:09:47 +00:00
feat(agents): שטן-מליץ — שער-קבע אוטומטי אחרי הניתוח עם עצירת-אישור לידים ליו"ר (#211)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 4s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
9836957848
שינוי-מדיניות יו"ר: ה-red-team (gemini_local) עובר מ-on-demand ל-standing gate
שרץ אוטומטית אחרי שלב-הניתוח ולפני הכותב — אבל הלידים נעצרים לאישור-יו"ר ולעולם
אינם מוזנים לכותב אוטומטית. רק לידים שהיו"ר מאשר → chair_directions (דרך
record_chair_feedback → get_chair_directions → approve_direction). הכותב צורך רק
פלט-מנתח מעוגן + הנחיות-מאושרות.

- legal-ceo.md: שורת-הטבלה + סעיף שטן-מליץ (on-demand→שער-קבע) + שלב A2 (red-team
  אוטומטי) + שלב A3 (עצירת-אישור לידים, in_review + notify) מוזרקים אחרי שלב A
  ולפני שלב B; מפת-הסטטוסים (documents_ready/analyst_verified/research_complete)
  מנתבת דרך השער.
- legal-analyst-gemini-critique.md: trigger=standing gate (לא on-demand); הפלט
  נשאר לידים לא-סמכותיים תחת אישור-יו"ר.
- HEARTBEAT.md §7: שער שטן-מליץ בזרימת-הסטטוס.
- docs/spec/X4-agents.md: INV-AG4 + הערה במפת-הסוכנים.
- docs/spec/04-analysis-writing.md §1.6: שער ה-red-team בין ניתוח לכתיבה.

Invariants: G10 (שער אנושי קשיח), INV-AH/INV-LRN5 (לידים לא-סמכותיים, לא
מוזנים אוטומטית), G12 (שינוי מוגבל למשטח agent-prompt).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 5987d50ebf into main 2026-06-30 18:11:14 +00:00
chaim deleted branch worktree-agent-a5ebed3e62b0c790c 2026-06-30 18:11:14 +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#370