V2-CH1-002 — דוקטרינת ההחלטה
כרך 2 · פרק 1 · משימה 002 · הגדרה רשמית של מנוע ההחלטה, סמכויות CIO וגבולות סמכות
מטרת המסמך
נעילת הגדרה רשמית של מנוע ההחלטה בכרך 2 — מי מייצר קלט, מי מאחד, מי מחליט, ומי חוסם. מסמך זה קובע את הדוקטרינה שעליה נבנים כל פרקי כרך 2 (Candidate, Evidence Fusion, CIO, Canary). זהו התוצר השני מתוך שלושה הנדרשים לסגירת V2-CH1 (מיפוי As-Is → Decision Doctrine → נעילת גבולות). קריאת קוד בלבד — ללא שינוי במערכת.
חמשת עמודי היסוד של דוקטרינת ההחלטה
סוכני ניתוח מייצרים קלט
במודל היעד של כרך 2, סוכן ניתוח אינו מייצר Decision ישירות. בתקופת ה-Shadow הנתיב הקיים (סוכן → Decision) נשאר פעיל עד להשלמת Evidence Fusion ו-CIO. כל סוכן ניתוח מפיק AnalysisOutput מובנה: conclusion, confidence, evidence, uncertainty.
Candidate אוסף ומסנן
ישות Candidate (V2-CH2-001 — Approved for Shadow Implementation, טרם Shadow Active מאומת) אוספת הזדמנויות מזוהות, מבצעת דה-דופליקציה, וממתינה להשלמת quorum של סוכנים. Candidate אינו Risk Gate — אינו חוסם ביצוע.
Evidence Fusion מאחד (עתידי)
רכיב עתידי (V2-CH5) שקורא מספר AnalysisOutput-ים לאותו Candidate ומאחד אותם לחבילת ראיות אחת עם ציון ביטחון משוקלל. בשלב הביניים הקידום מבוסס על quorum של 60% מתוך expected_agent_ids, ללא Evidence Fusion משוקלל.
CIO מפיק Decision
רכיב CIO (V2-CH7, עתידי) מקבל חבילת ראיות ומפיק Decision אחד מנומק דרך createDecision + publishDecision. ה-Decision נשאר החוזה הקפוא מכרך 1 (CH3-005 v1.0).
Risk Gate — וטו יחיד
ה-Risk Gate הדטרמיניסטי (assertDecisionActive + checkRiskGatePassed) הוא הרכיב היחיד בעל סמכות וטו סיכונית דטרמיניסטית. אף סוכן, אף CIO, ואף Candidate אינם בעלי וטו. זכות וטו שמורה אך ורק למנוע הדטרמיניסטי.
מודל סמכויות — מי מותר ומה אסור
| תפקיד | מותר | אסור | הערה |
|---|---|---|---|
| סוכן ניתוח | מייצר AnalysisOutput | יוצר Decision · חוסם ביצוע · משנה Risk Rules · ניגש לברוקר | כולל Portfolio Risk — סוכן ניתוח, לא Risk Gate |
| Candidate | אוסף ומסנן הזדמנויות | יוצר Decision (Shadow) · חוסם ביצוע · מטיל וטו | תוספתי, לא-חוסם |
| CIO | מפיק Decision מחבילת ראיות | חוסם ביצוע · מטיל וטו · עוקף Risk Gate | Shadow בלבד בשלב ראשון |
| Risk Gate | חוסם ביצוע (וטו) | מייצר AnalysisOutput · יוצר Decision · משנה חוקים | דטרמיניסטי, קיים מכרך 1 |
| executeTrade | מבצע פקודה מאושרת | מייצר Decision · מטיל וטו · עוקף שערים | פועל רק לאחר Decision ACTIVE + Risk Gate PASS + Approval |
גבול וטו — שמור ל-Risk Gate בלבד
וטו (veto_power): סמכות הוטו הסיכונית הדטרמיניסטית היחידה במערכת שמורה ל-Risk Gate הדטרמיניסטי (assertDecisionActive + checkRiskGatePassed). אף סוכן, אף CIO, ואף Candidate אינם בעלי וטו.
Portfolio Risk ≠ Risk Gate: Portfolio Risk Agent הוא סוכן ניתוח (P0_PROTECTION) שמספק קלט. הוא אינו Risk Gate ואין להעניק לו סמכות וטו. Risk Gate הוא מנוע דטרמיניסטי שבודק חוקים קשיחים (freeze, TTL, budget, canary).
CIO ללא וטו: ה-CIO מפיק Decision אך אינו יכול לחסום ביצוע. אם ה-CIO ממליץ SELL או HOLD, ה-Decision נוצר אך ביצוע תלוי ב-Risk Gate וב-Approval.
מודל סמכויות חלופי — במקום authority_weight / veto_power
| שדה ישן (נגנז) | שדה חלופי | סוג | תיאור |
|---|---|---|---|
| authority_weight | analysis_role | enum | תפקיד הניתוח: scanner / news / technical / portfolio_risk. מבדיל בין סוגי סוכנים ללא הענקת סמכות. |
| veto_power | priority_class | enum | כבר קיים: P0_PROTECTION / P1_ANALYSIS / P2_BACKGROUND. קובע סדר עדיפות בתור ניתוח, לא סמכות חסימה. |
| — | reliability_profile | object | תיעוד היסטוריית דיוק: hit_rate, avg_confidence, last_evaluated. מידע הסטורי בלבד — אינו מעניק סמכות. |
סמכויות CIO
קורא: AnalysisOutput (פלטי סוכנים), Candidate (הזדמנויות מזוהות), חבילת ראיות מאוחדת (V2-CH5, עתידי).
מייצר: Decision דרך createDecision() + publishDecision() — החוזה הקיים מכרך 1, ללא שינוי.
אינו חוסם: CIO אינו Risk Gate. אינו יכול לחסום ביצוע. החלטת HOLD/SELL שלו יוצרת Decision אך אינה וטו.
אינו עוקף: CIO אינו יכול לעקוף Risk Gate, Approval, או TTL. גם Decision של CIO חייב לעבור את כל השערים.
Shadow בלבד: בשלב ראשון, CIO פועל ב-shadow — מתעד איזה Decision היה מייצר, ומקשר ל-Decision הקיים מהנתיב הסטנדרטי. אינו יוצר Decision מקביל.
מחזור חיי החלטה בכרך 2
סריקת סוכן — סוכן ניתוח מזהה הזדמנות ומייצר AnalysisOutput (conclusion, confidence, evidence).
Candidate — createCandidate() אוסף את ההזדמנות, מבצע דה-דופליקציה, ממתין ל-quorum של סוכנים (V2-CH2-001 — Approved for Shadow Implementation, טרם מאומת).
Evidence Fusion — (V2-CH5, עתידי) איחוד מספר AnalysisOutput-ים לחבילת ראיות אחת עם ציון ביטחון משוקלל.
CIO — (V2-CH7, עתידי) מקבל חבילת ראיות ומפיק Decision דרך createDecision + publishDecision.
Risk Gate — (קיים מכרך 1) assertDecisionActive + checkRiskGatePassed — השער היחיד עם וטו.
Approval + Execution — (קיים מכרך 1) checkApprovalValid + executeTrade.
קריטריוני קבלה
| מזהה | קריטריון | תוצאה |
|---|---|---|
| D1 | דוקטרינת ההחלטה מתועדת: 5 עמודי יסוד (סוכן→Candidate→Fusion→CIO→Risk Gate). כל עמוד מוגדר עם תפקיד, קלט, פלט, וגבול סמכות. | PASS |
| D2 | מודל הסמכויות מתועד: 5 תפקידים (סוכן ניתוח, Candidate, CIO, Risk Gate, executeTrade). לכל תפקיד: מה מותר, מה אסור, והערה. | PASS |
| D3 | וטו שמור ל-Risk Gate בלבד. אף רכיב אחר (סוכן, Candidate, CIO) אינו בעל וטו. מתועד מפורשות. | PASS |
| D4 | במקום authority_weight/veto_power: שלושה שדות חלופיים (analysis_role, priority_class, reliability_profile). המשקולות מנוהלות במדיניות ה-CIO ואינן מעניקות סמכות החלטה או וטו. | PASS |
| D5 | Portfolio Risk ≠ Risk Gate. מתועד: Portfolio Risk הוא סוכן ניתוח (P0_PROTECTION) שמספק קלט. Risk Gate הוא מנוע דטרמיניסטי. | PASS |
| D6 | CIO אינו יוצר Decision מקביל ב-Shadow. מתועד: Shadow מתעד ומקשר, לא מבצע. | PASS |
| D7 | Decision נשאר החוזה הקפוא מכרך 1 (CH3-005 v1.0). CIO יוצר דרך createDecision + publishDecision — ללא שינוי החוזה. | PASS |
הצעדים הבאים ב-V2-CH1
V2-CH1-001 — מיפוי As-Is ✅ (Review 0.2)
V2-CH1-002 — דוקטרינת ההחלטה ✅ (v1.0 Approved)
V2-CH1-003 — נעילת גבולות סמכות: הוספת analysis_role + reliability_profile ל-AgentProfile ו-AnalysisOutput (יישום G4).
V2-CH1-004 — פרופיל CIO רשמי (AgentProfile ייעודי, shadow).
V2-CH1-005 — סגירת V2-CH1: אימות שלושת התוצרים + Review 0.2 → פתיחת V2-CH2 (V2-CH2 נפתח; V2-CH2-001 אושר ל-Shadow Implementation).