V2-CH4-005 — Activation Flow ו-Linkage
כרך 2 · פרק 4 · משימה 005 · זרימת הפעלת גרסה, קישור ל-AnalysisOutput, Invariants
v1.0 Review · 12.8.2026
מטרת המסמך
הגדרת זרימת הפעלת גרסה (5 שלבים: יצירה → אישור → הפעלה → VersionActivationEvent → קישור AnalysisOutput), מטריצת קישור מלאה (5 ישויות גרסה × link ב-AnalysisOutput + ישות אב), ו-6 invariants המבטיחים שרשרת גרסאות תקינה.
Activation Flow
| שלב | פעולה | תיאור | שחקן |
|---|---|---|---|
| 1 | יצירת גרסה חדשה | version = max(existing) + 1. is_active = false. supersedes_version = null. | system/admin |
| 2 | אישור | approved_by + effective_from נשמרים. גרסה עוברת מ-draft ל-approved. | admin |
| 3 | הפעלה | is_active = true לגרסה החדשה. is_active = false לקודמת. עדכון current_*_version_id בישות האב. | admin/system |
| 4 | VersionActivationEvent | רשומת audit: entity_type, version_id, activated_by, activated_at, previous_version_id. | system |
| 5 | קישור AnalysisOutput | כל AnalysisOutput חדש מקבל את הגרסאות הפעילות (prompt/model/config/profile/settings version_id). | adaptAgentOutput |
מטריצת קישור
| ישות גרסה | Link ב-AnalysisOutput | דגל פעיל | Link בישות אב |
|---|---|---|---|
| PromptVersion | AnalysisOutput.prompt_version_id | PromptVersion.is_active | N/A (prompt ב-runAgentScan) |
| ModelVersion | AnalysisOutput.model_version_id | ModelVersion.is_active | AgentProfile.model_profile |
| AgentConfigVersion | AnalysisOutput.config_version_id | AgentConfigVersion.is_active | AgentConfig.current_config_version_id |
| AgentProfileVersion | AnalysisOutput.profile_version_id | AgentProfileVersion.is_active | AgentConfig.current_profile_version_id |
| SystemSettingsVersion | AnalysisOutput.settings_version_id | SystemSettingsVersion.is_active | SystemSettings.current_settings_version_id |
Invariants
| מזהה | חומרה | כלל |
|---|---|---|
| I1 | P0 | רק גרסה אחת is_active=true לכל entity_type + agent_type. הפעלת חדשה מבטלת את הקודמת. |
| I2 | P0 | supersedes_version נשמר בכל החלפה — שרשרת גרסאות מלאה. |
| I3 | P0 | VersionActivationEvent נרשם בכל הפעלה — audit trail מלא. |
| I4 | P0 | AnalysisOutput חדש תמיד מקושר לגרסאות הפעילות בעת יצירתו — Snapshot קפוא. |
| I5 | P1 | גרסה שאינה is_active אינה נמחקת — נשמרת להיסטוריה ו-audit. |
| I6 | P0 | שינוי גרסה דורש אישור (approved_by) לפני הפעלה — אין הפעלה ללא אישור. |
קריטריוני קבלה
| מזהה | קריטריון | תוצאה |
|---|---|---|
| AC1 | 5 שלבי activation flow מוגדרים: יצירה → אישור → הפעלה → VersionActivationEvent → קישור AnalysisOutput. | PASS |
| AC2 | מטריצת קישור מלאה: 5 ישויות גרסה × (link ב-AnalysisOutput, is_active, link בישות אב). | PASS |
| AC3 | 6 invariants: גרסה יחידה פעילה, supersedes chain, audit trail, snapshot קפוא, אין מחיקה, אישור לפני הפעלה. | PASS |
| AC4 | AnalysisOutput מקבל 5 version_id ביצירה: prompt, model, config, profile, settings. | PASS |
מפרט · v1.0 Review · 12.8.2026
חזרה ל-V2-CH4-004