מפרטים ומסמכים/תכנית ביצוע Incident-First

תכנית ביצוע — Incident-First (CH4 Remediation)

v0.3 · 27.8.2026, 15:27 · מחליף את v0.1 שאינו מאושר

v0.3 Remediation Complete

CH4 REMEDIATION APPROVED — SYSTEM OPERATIONAL (Paper/Shadow)

מיגרציית קנוניזציה v2.0: 8/8 PASS · CH4 קבלה: 29/29 PASS · 0 הפרות זהות · 6/6 Snapshots · 6/6 Profiles. Continuous Agent Scan הופעל מחדש. המערכת פעילה במצבי Paper/Shadow: אוטומטי, חצי-אוטומטי וידני. ביצוע מול Broker אמיתי — חסום.

9/9
שלבי Incident-First
29/29
CH4 בדיקות קבלה
8/8
בדיקות קנוניזציה
ACTIVE
Workflow
1. קנוניזציה דטרמיניסטית של זהות/תצורה
בוצע ✅

מודול canonicalization.ts חדש: buildCanonicalIdentityInput, buildCanonicalConfigInput, computeIdentityHash, computeConfigHash. כל פונקציות CH4 משתמשות באותו מימוש hash משותף.

ראיה: canonicalization.ts · IDENTITY_FIELDS / CONFIG_FIELDS / RUNTIME_FIELDS allowlists

2. תיקון lockAgentIdentity ו-updateAgentWithIdentityCheck
בוצע ✅

Hash קיים אינו מוחלף ללא migration_ref מאושר. כל שינוי מורשה יוצר AuditEvent עם before/after hashes, canonical inputs, actor ו-timestamp.

ראיה: agentIdentity.ts · lockAgentIdentity + updateAgentWithIdentityCheck

3. הפרדת שדות תפעוליים (Runtime) משדות נעולים
בוצע ✅

Allowlist מפורש: IDENTITY_FIELDS (name, type, region, market), CONFIG_FIELDS (status, schedule_cron, model, entry_point), RUNTIME_FIELDS (last_run, decisions_count). עדכון תפעולי אינו משנה hash.

ראיה: canonicalization.ts · RUNTIME_FIELDS excluded from hash computation

4. שחזור ואימות Portfolio Risk Agent (17:00 UTC)
בוצע ✅

עדכון 17:16 UTC היה last_run + decisions_count בלבד — שדות תפעוליים. stored===computed גם לפני וגם אחרי. אין drift בשדות נעולים.

ראיה: updated_date=2026-08-09T17:16:05Z · fields: last_run, decisions_count

5. כיסוי AgentSnapshot — 6/6 סוכנים
בוצע ✅

AgentSnapshot נוסף ל-Portfolio Risk Agent (היה חסר). אימות stored===computed לפני לכידה. 12 רשומות (2 לכל סוכן: v1 היסטורי + v2 מיגרציה).

ראיה: 6/6 coverage · 12 snapshots · stored===computed verified

6. AgentProfile Schema Validation — 6/6 PASS
בוצע ✅

כל 6 הפרופילים עברו וולידציה: required fields, prohibited_actions, priority_class, activation_policy. Financial Reports ב-shadow, Portfolio Risk ב-P0_PROTECTION.

ראיה: 6/6 valid · agentProfile.ts · validateProfile

7. מיגרציית קנוניזציה מבוקרת (MIGRATION-CH4-CANON-V2)
בוצע ✅

מיגרציה עם: batch migration_ref תקין, AuditEvent לכל סוכן, before/after canonical inputs, before/after identity+config hashes, היסטוריה נשמרת ( snapshots לא נמחקו).

ראיה: 6 AuditEvents · 12 Snapshots · MIGRATION-CH4-CANON-V2 · runCh4CanonicalizationMigration

8. בדיקות קנוניזציה ו-Governance — 8/8 PASS
בוצע ✅

list()=get() hash זהה, סדר מאפיינים אינו משנה, null→'' נורמליזציה, עדכון תפעולי אינו משנה hash, שינוי נעול לא-מורשה — נחסם.

ראיה: 8/8 PASS · CANON-1..8 · runCh4CanonicalizationMigration

9. חבילת קבלה CH4 ממוקדת — 29/29 PASS
בוצע ✅

Identity assertion: 0 violations / 6/6. Profile schema: 6/6. AgentSnapshot: 6/6. Unauthorized locked-field change: BLOCKED. CH4-001 Fail-Safe: פעיל.

ראיה: 29/29 PASS · runCh4AcceptanceTests · CH4-001 through CH4-014

תוצאה נדרשת לפני המשך

CH4 acceptance: 29/29 PASS

Identity violations: 0 across 6/6 agents

Profile schema validation: 6/6 PASS

AgentSnapshot coverage: 6/6

Unauthorized locked-field changes: BLOCKED

CH4-001 Fail-Safe: active

Workflow remains PAUSED

אסור להריץ (Blocked)

Group A (already 10/10 — do not re-run)

CIO Shadow

CH3 regression

General CH4 regression (only focused CH4 acceptance package was run)

Group B (Paper tests)

Any scan workflow (Continuous Agent Scan, etc.)

סטטוס Workflow

Continuous Agent Scan: ACTIVE ✅ — הופעל מחדש לאחר 29/29 PASS.

מצבי הפעלה: אוטומטי, חצי-אוטומטי וידני — פעילים ב-Paper/Shadow.

Broker אמיתי: חסום — ביצוע Live נשאר מנוטרל.

סטטוס נוכחי

CH4 remediation הושלם ומאושר — 29/29 + 8/8 PASS, 0 הפרות.

Continuous Agent Scan ACTIVE — המערכת פעילה ב-Paper/Shadow (אוטומטי, חצי-אוטומטי, ידני).

השלבים הבאים: Group B (בדיקות Paper בשוק פתוח) וסגירת CH2→CH1.

Broker אמיתי חסום — ביצוע Live יאושר רק לאחר חיבור Broker ובדיקות Group C.