CH5-001 · מיפוי As-Is, מקורות אמת ו-Data Inventory

גרסה 0.1 · 8.8.2026 · המפרט הראשון של CH5 — ללא שינוי קוד במערכת

Approved v0.1

✅ Approved for Implementation — Version 0.1

מפרט CH5-001 אושר לביצוע. הוא המפרט הראשון מתוך ששת מפרטי CH5. מטרתו: יצירת תמונת מצב מאושרת של הנתונים והזרימות הקיימות — ללא כל שינוי קוד במערכת. המפרט כולל מיפוי מלא של Entities, מקורות נתונים, נתיבי קריאה/כתיבה, Source of Truth, Retention ו-Gap Analysis מול תנאי הקבלה של פרק 5. לאחר ביצוע והפקת דוח ביצוע, ניתן יהיה לעבור ל-CH5-002 (Asset Master).

עיקרון מחייב: אין שינוי קוד

מפרט זה אינו משנה קוד, Schema, Functions, Workflows או Cron. כל העבודה היא תיעוד ומיפוי בלבד. התוצר הוא Data Inventory מאושר שמפרטי CH5 הבאים (002–006) יישענו עליו.

1 · בעיה ויעד

פרק 5 נעול כ-Version 1.0 ומגדיר דרישות ארכיטקטוניות מחייבות לנתונים, זיכרון וידע. אולם, אין כיום תמונת מצב מאושרת של הנתונים והזרימות הקיימות בפועל. ללא מיפוי As-Is מלא — Entities, שדות, מקורות נתונים, נתיבי קריאה/כתיבה, Source of Truth ו-Retention — אין בסיס בטוח לשינוי Schema, ליצירת Asset Master או לקביעה מהו Source of Truth בפועל לכל תחום. כל שינוי מבני ללא מיפוי זה מסתמך על הנחות ולא על ראיה.

ליצור Data Inventory גרסאי ומאושר הכולל: מפת כל ה-Entities והשדות, מפת מקורות הנתונים הפעילים (ספקים, תדירויות, Cron, Adapters, Fallback), מפת נתיבי קריאה/כתיבה לכל תחום (Candidate, Analysis, Trade, Order, Fill, Position, Message), מטריצת Source of Truth ובעלות, ו-Gap Analysis מול 18 תנאי הקבלה של פרק 5. כל זאת ללא כל שינוי קוד, Schema, Rename או Cron. התוצאה היא נקודת ייחוס מאושרת שכל מפרטי CH5 הבאים יישענו עליה.

2 · תכולת המימוש

מיפוי כל ה-Entities במערכת: שמות, שדות, סוגים, Enums, ברירות מחדל, Required ו-RLS (אם קיים).

מיפוי כל מקורות הנתונים הפעילים: ספקים (Yahoo Finance, LLM, Internal), תדירויות, Cron, Adapters ונתיבי Fallback.

מיפוי כל נתיבי הקריאה והכתיבה עבור: Candidate/Trade, Analysis/AnalysisOutput, Order/Execution, Fill, Position/Portfolio, Message, Alert, AgentConfig, AgentSnapshot, SystemSettings.

זיהוי Source of Truth בפועל לכל תחום נתונים: מחיר נכס, פוזיציה, מזומן זמין, החלטה, הגדרות מערכת, תצורת סוכן, היסטוריית פעילות.

זיהוי כפילויות, חפיפות או בעלות לא ברורה בין ישויות (למשל: Trade vs. Portfolio, AgentConfig vs. AgentProfile vs. AgentSnapshot).

מיפוי Retention פעיל: אילו נתונים נשמרים, לכמה זמן, מה נמחק (למשל: cleanupOldMessages — 30 יום), ומה נשמר ללא הגבלה.

מיפוי הרשאות בפועל: מי יכול לקרוא/כתוב/מחוק כל Entity (RLS והרשאות מובנות).

מיפוי ייצוא, גיבוי ו-Restore: מה ניתן לייצא, איך מגבים, איך משחזרים.

Gap Analysis מול 18 תנאי הקבלה של פרק 5 (5.23): דירוג קריטיות, סיכון, והפניה למפרט CH5 המטפל.

Baseline בדיקות רגרסיה: הפעלת בדיקות קבלה קיימות (CH3, CH4) ותיעוד התוצאות כ-Baseline לפני כל שינוי.

3 · תוצרים מחייבים
Data Inventory גרסאי ומאושר — מסמך המכיל את כל ה-Entities, השדות והקשרים.תרשים זרימת נתונים As-Is — ויזואלי של נתיבי קריאה/כתיבה.מטריצת Source of Truth ובעלות — לכל תחום נתונים, מיהו Source of Truth בפועל.מטריצת קריאה/כתיבה לפי רכיב — איזה רכיב (Function, Workflow, Agent) קורא/כותב לאיזה Entity.רשימת פערים וסיכונים עם הפניה למפרט המטפל (CH5-002 עד CH5-006).Baseline בדיקות רגרסיה — תוצאות CH3/CH4 לפני כל שינוי CH5.
4 · מגבלות והגנות

אין שינוי Schema — לא מוסיפים, לא משנים ולא מוחקים שדות ב-Entities קיימים.

אין Rename — לא משנים שמות שדות, Entities או Functions.

אין שינוי Cron — לא משנים תדירויות או תזמונים של Workflows קיימים.

אין להסיק שקוד שאינו מתועד אינו בשימוש; כל נתיב נבדק בראיה מלאה.

אין למחוק שדה או Entity שנראים מיותרים לפני בדיקת צרכנים והיסטוריה.

אין לבצע שינוי עסקי, בחירת ספק חדש או הקמת Asset Master במסגרת מפרט זה.

הנתונים להלן הם Baseline ראשוני המבוסס על המידע הקיים ודורשים אימות מול ייצוא Schema, קוד פעיל וראיות ביצוע. אין לראות בהם Data Inventory מאושר לפני השלמת CH5-001.

5 · מצאי Entities — Data Inventory
EntityשדותכותביםקוראיםSource of Truthהערה
Trade42+runAgentScan, executeTrade, rejectTradeDashboard, Trades, Portfolio, TaxReportsסטטוס עסקה (לא פוזיציה)גרסאי חלקית ברמת מעברי סטטוס (status_version, CH3-002); טרם אומתה היסטוריה מלאה לכל השדות העסקיים
Portfolio24executeTrade, refreshPortfolioPricesDashboard, Portfolio, Tradesפוזיציה נוכחיתדריסת current_price בכל refresh
AgentConfig18captureAgentBaseline, SettingsrunAgentScan, refreshPortfolioPrices, Agentsתצורת סוכןמחזיק תצורה נוכחית ו-Hash; ההיסטוריה נשמרת ב-AgentSnapshot (CH4-001). יש לאמת שאין פער בין השניים
AgentSnapshot12captureAgentBaselineCh4Spec001, rollbackתצלום תצורה היסטוריAppend-Only (CH4-001)
SystemSettings30+Settings, initCH4Dashboard, runAgentScan, executeTradeהגדרות מערכת גלובליותסטטוס יחיד (ללא גרסאות)
MarketData13refreshIndices, runAgentScanMarkets, Dashboard, Chartsמחיר שוק עדכנילא גרסאי; נדרס בכל update
Message11runAgentScan, executeTrade, cleanupOldMessagesMessages, Dashboardיומן אירועיםRetention: 30 יום (cleanupOldMessages)
Alert16runAgentScan, refreshPortfolioPrices, Alerts pageAlerts, Dashboardהתרעות פעילותסטטוס: active/acknowledged/dismissed
AnalysisOutput22runAgentScanAgents, Dashboardפלט ניתוח סוכןגרסאי דרך profile_version
AgentLog10runAgentScan, refreshPortfolioPricesAgents, Dashboardיומן פעילות סוכניםלא גרסאי
AgentProfile20initCH4Agents, Ch4Reviewפרופיל סוכן (חוזה)גרסאי דרך agent_version
WatchList10runAgentScanMarketsרשימת מעקבלא גרסאי
BrokerageConnection11SettingsSettings, Tradesחיבור ברוקרסטטוס: connected/disconnected
BankConnection10SettingsSettings, Tradesחיבור בנקסטטוס: connected/disconnected
CommissionSchedule9SettingsexecuteTrade, TaxReportsמבנה עמלותלא גרסאי
TaxReport12TaxReports pageTaxReportsדוח מס שנתיסטטוס: draft/generated/submitted
MarketRegion12SettingsMarkets, runAgentScanהגדרות אזור מסחרלא גרסאי
InviteToken7manageInvite, activateTrialSettings, TrialLockהזמנות משתמשיםסטטוס: pending/activated/expired/locked
6 · מקורות נתונים
מקורסוגסטטוסנתוניםתדירותFallbackסיכון
Yahoo Finance (via fetchChartCandles/searchSymbols)חיצוני — מקור מידעפעילמחירי שוק, נרות, סמליםOn-demandאין — כשל מוביל לנתונים חסריםעיכוב בנתוני TASE
LLM (InvokeLLM — gemini_3_flash)שירות עיבוד/מודל — אינו מקור אמתפעילניתוח שוק, המלצות (פלט מודל; הרשומה המאוחסנת היא AnalysisOutput)לפי AGENT_INTERVAL_MINUTESNO_OPINIONתלות בזמינות מודל; אינו Source of Truth
Internal (Base44 DB)פנימי — מקור אמתפעילכל Entitiesזמן אמת—נקודת כשל יחידה
Stripe (via createCheckoutSession)חיצוני — מקור מידעפעילתשלומים, מנוייםOn-demandאיןתלות בזמינות Stripe
7 · מטריצת Source of Truth
תחוםSource of Truthצרכניםפערמפרט CH5
מחיר נכס עדכניMarketData.priceDashboard, Charts, runAgentScanנדרס בכל update; אין Raw/CanonicalCH5-004
מחיר קנייהPortfolio.avg_pricePortfolio, TaxReportsנדרס בכל buy; אין היסטוריית מחיריםCH5-005
פוזיציה נוכחיתPortfolio.quantityDashboard, Trades, refreshPortfolioPricesנדרס; אין יומן פוזיציה גרסאיCH5-005
מזומן זמיןSystemSettings.available_cashDashboard, executeTrade, runAgentScanסטטוס יחיד; אין היסטוריית יתרהCH5-005
סטטוס עסקהTrade.status + status_versionTrades, executeTrade, rejectTradeגרסאי חלקית (status_version, CH3-002); טרם אומתה היסטוריה מלאה—
החלטת השקעהTrade (score, reasoning, agent_name)Trades, Dashboardאין ישות Decision נפרדת (CH3-005)CH5-003
תצורת סוכןAgentConfigrunAgentScan, refreshPortfolioPricesמחזיק תצורה נוכחית ו-Hash; ההיסטוריה ב-AgentSnapshot. דורש אימות שאין פער—
תצלום תצורהAgentSnapshotrollback, Ch4Spec001Append-Only (CH4-001); דורש אימות מול AgentConfig הנוכחי—
הגדרות מערכתSystemSettingsDashboard, executeTrade, runAgentScanסטטוס יחיד; אין גרסאותCH5-005
יומן אירועיםMessageMessages, DashboardRetention 30 יום; אינו Append-Only טהורCH5-005
התרעותAlertAlerts, Dashboardסטטוס יחיד; אין היסטוריית שינוייםCH5-005
פלט ניתוחAnalysisOutputAgents, Dashboardגרסאי דרך profile_version; חלקיCH5-003
8 · מדיניות Retention
Entityמדיניותמנגנוןהערה
Message30 יוםcleanupOldMessages workflow (03:00)מחיקה פיזית — מאומת
Tradeלא זוהתה מדיניות מחיקה; תקופת השמירה אינה מוגדרת ודורשת אימות—אין מנגנון מחיקה ידוע
Portfolioלא זוהתה מדיניות מחיקה; תקופת השמירה אינה מוגדרת ודורשת אימות—אין מנגנון מחיקה ידוע
AgentSnapshotAppend-Only; לא ניתן למחיקה (CH4-001)Append-Onlyתקופת שמירה אינה מוגדרת; דורש אימות
Alertלא זוהתה מדיניות מחיקה; תקופת השמירה אינה מוגדרת ודורשת אימות—אין מנגנון מחיקה ידוע
AgentLogלא זוהתה מדיניות מחיקה; תקופת השמירה אינה מוגדרת ודורשת אימות—אין מנגנון מחיקה ידוע
AnalysisOutputלא זוהתה מדיניות מחיקה; תקופת השמירה אינה מוגדרת ודורשת אימות—אין מנגנון מחיקה ידוע
MarketDataנדרס בכל updateעדכון בכל refreshאין היסטוריית מחירים — מאומת
TaxReportלא זוהתה מדיניות מחיקה; תקופת השמירה אינה מוגדרת ודורשת אימות—אין מנגנון מחיקה ידוע
9 · הרשאות (RLS / Built-in)
EntityקריאהכתיבהמחיקהRLS
Tradeכל משתמש מאומתrunAgentScan, executeTrade, rejectTradeאדמיןלא מוגדר
Portfolioכל משתמש מאומתexecuteTrade, refreshPortfolioPricesאדמיןלא מוגדר
AgentConfigכל משתמש מאומתאדמין, captureAgentBaselineאדמיןלא מוגדר
SystemSettingsכל משתמש מאומתאדמיןאדמיןלא מוגדר
Messageכל משתמש מאומתמערכת (Functions)כל משתמש מאומתלא מוגדר
Alertכל משתמש מאומתמערכת + משתמשכל משתמש מאומתלא מוגדר
10 · Gap Analysis מול פרק 5

ה-Gap Analysis משווה את המצב הקיים (As-Is) מול 18 תנאי הקבלה של פרק 5 (סעיף 5.23). כל פער מקבל: דירוג קריטיות (P0/P1/P2), סיכון פוטנציאלי, והפניה למפרט CH5 המטפל. פערים קריטיים (P0) מונעים מעבר ל-CH5-002 עד לתיעוד ואישור תוכנית טיפול.

מזההעיקרוןסטטוסחומרהסיכוןבעלים / רכיב אחראימפרט יעד
GAP-01נכס קנוני (asset_id)חסרP0אין זהות נכס יציבה; symbol+market הם המזהה היחיד. שינוי Symbol שובר היסטוריה.Backend / DataCH5-002
GAP-02Snapshot קפוא להחלטהחסרP0אין תמונת מצב קפואה; סוכנים צורכים נתונים זמניים שעלולים להשתנות באמצע מחזור.Backend / DataCH5-003
GAP-03decision_cycle_idחסרP0אין מזהה מחזור החלטה; לא ניתן לקשר ניתוח→סיכון→אישור→ביצוע למחזור אחד.Backend / DataCH5-003
GAP-04correlation_idחסרP0אין מזהה קורלציה חוצה-מערכת; שחזור מסלול מלא דורש חיפוש ידני ב-Log.Backend / DataCH5-003
GAP-05שכבות נתוני שוק (Raw/Canonical/Adjusted)חסרP0מחיר מ-runAgentScan ומ-refreshPortfolioPrices אינם מובחנים כ-Raw/Canonical; אין Lineage.Backend / DataCH5-004
GAP-06Data Quality ברמת שדהחסרP1אין סימון VALID/STALE/MISSING/CONFLICTED; נתון ישן עלול לשמש לפעולה.Backend / DataCH5-004
GAP-07Corporate ActionsחסרP0אין טיפול ב-Split/Dividend/Symbol Change; פוזיציה וסטופים אינם מותאמים אוטומטית.Backend / DataCH5-004
GAP-08גרסאות Policy/Model/PromptחלקיP1AgentConfig מתועד חלקית באמצעות Hash ו-AgentSnapshot; Prompt ו-Model אינם ישויות גרסאיות נפרדות; אין קישור מניתוח לגרסת Prompt.Backend / AgentsCH5-005
GAP-09Audit Append-Only מלאחלקיP1Message משמש כ-Audit אך אינו Append-Only טהור; ניתן למחוק (cleanupOldMessages).Backend / AuditCH5-005
GAP-10Lineage מקצה לקצהחסרP1אין קישור מקצה לקצה מ-Source→Snapshot→Decision→Execution.Backend / AuditCH5-005
GAP-11Tiered RetentionחלקיP2Retention קיים רק ל-Message (30 יום); אין מדיניות ל-Trade, AnalysisOutput, AgentSnapshot.Backend / OpsCH5-005
GAP-12Tombstone למחיקהחסרP2מחיקה מורשית מוחקת רשומה ללא שמירת שרשרת ראיות.Backend / AuditCH5-005
GAP-13Least Privilege מפורטחלקיP1RLS אינו מוגדר לכל Entity; הרשאות אינן מופרדות לפי תפקיד (Scanner, Agent, Risk Gate, Execution).Backend / SecurityCH5-006
GAP-14RPO/RTO מוגדריםחסרP1אין הגדרת RPO/RTO ברמת האפליקציה; אין תוכנית גיבוי/Restore רשמית.DevOps / SecurityCH5-006
GAP-15Reconciliation לפני RetryחלקיP1CH3-003 מטפל ב-Reconciliation ל-Execution אך לא לנתוני שוק או Snapshot.Backend / ExecutionCH5-006
GAP-16אין זיכרון סמויחלקיP1AgentConfig.sources ו-strategy אינם מקושרים ל-Snapshot או Audit; קשה לדעת איזה מקור שימש החלטה.Backend / AgentsCH5-003/005
GAP-17אין דריסת היסטוריהחלקיP1Portfolio.update דורס מחיר קנייה; AgentSnapshot הוא Append-Only אך Trade גרסאי חלקית בלבד (status_version); טרם אומתה היסטוריה מלאה לכל השדות העסקיים.Backend / DataCH5-005
GAP-18Smoke Test משולבחסרP2אין בדיקת קבלה משולבת של כל CH5 ב-Paper/Simulation.QA / BackendCH5-006
11 · תנאי קבלה

כל Entity במערכת מופיע במיפוי עם שדותיו, סוגיו וברירות המחדל שלו.

כל נתיב כתיבה מרכזי (Trade.create, Portfolio.update, Message.create, AgentSnapshot.create וכו') ממופה ל-Function/Workflow המבצע.

לכל תחום נתונים (מחיר, פוזיציה, מזומן, החלטה, תצורה) נקבע Source of Truth בפועל או מסומן פער מפורש.

כל שש רשומות AgentConfig — חמש פעילות ואחת מושהית — והנתיבים הדטרמיניסטיים הרלוונטיים ממופים.

מקורות הנתונים (Yahoo Finance, LLM, Internal) ממופים עם תדירויות, Fallback ו-Cron.

הפערים מול 18 תנאי הקבלה של פרק 5 ממופים לבעלים ול-CH5 יעד.

Baseline הרגרסיה (בדיקות CH3/CH4) עבר ללא שינוי בתוצאות המערכת.

כפילויות וחפיפות בין ישויות מזוהות ומתועדות.

Retention פעיל ממופה לכל Entity רלוונטי.

הרשאות קריאה/כתיבה/מחיקה ממופות לכל Entity.

12 · ראיות נדרשות בדוח הביצוע
ייצוא Schema/Entities — קובץ JSON עם כל הסכמות.רשימת פונקציות ו-Cron — קובץ עם כל ה-Functions וה-Workflows הפעילים.דוגמאות רשומות אנונימיות — דוגמה לכל Entity עם נתונים מציאותיים (ללא PII).תוצאות בדיקות Baseline — תוצאות runCh3AcceptanceTests, runCh3AcceptanceTests003, runCh4AcceptanceTests.חתימת Review על ה-Inventory — אישור כתוב ומתועד על דיוק המיפוי.תרשים זרימת נתונים — ויזואלי (ניתן לייצוא כתמונה או PDF).מטריצת Source of Truth — טבלה מאושרת.
13 · Definition of Done

המפרט אושר לפני תחילת ביצוע.

כל נתיב כתיבה מרכזי ממופה ל-Function/Workflow.

כל תנאי קבלה קיבל בדיקה ותוצאה.

לא נוצרה נסיגה בהגנות, ב-State Machine או ב-Idempotency של CH3.

חוזי הסוכנים וה-CIO Shadow של CH4 נשמרו.

הופק דוח ביצוע הכולל ראיות, חריגות והמלצת סגירה.

רק לאחר אישור דוח הביצוע משתנה סטטוס המפרט ל-Version 1.0 — Closed.

14 · קבצים מושפעים

src/pages/Ch5Spec001.jsx — קובץ תיעודי קיים; במסגרת CH5-001 הוא לקריאה בלבד ואינו מיועד לעריכה.

בדיקות רגרסיה: base44/functions/runCh3AcceptanceTests, runCh3AcceptanceTests003, runCh4AcceptanceTests — הפעלה ללא שינוי.

ייצוא סכמות: קריאה ל-base44.entities.*.schema() לכל Entity — ללא שינוי ב-DB.

אין שינוי ב-Entities, Functions, Workflows או קוד עסקי.

15 · סדר ביצוע

1. ייצוא סכמות כל ה-Entities (base44.entities.*.schema()).

2. רישום כל ה-Functions וה-Workflows הפעילים עם נתיבי קריאה/כתיבה.

3. מיפוי מקורות נתונים: Yahoo Finance, LLM, Internal DB, Stripe.

4. בניית מטריצת Source of Truth לכל תחום נתונים.

5. מיפוי Retention פעיל לכל Entity.

6. מיפוי הרשאות (RLS / built-in) לכל Entity.

7. הפעלת בדיקות רגרסיה (CH3, CH4) ותיעוד Baseline.

8. ביצוע Gap Analysis מול 18 תנאי הקבלה של פרק 5.

9. דירוג פערים (P0/P1/P2) והפניה למפרט CH5 מטפל.

10. הפקת דוח ביצוע CH5-001 עם כל הראיות.

11. אישור דוח הביצוע → מעבר ל-CH5-002.

תלות

פרקים 1–5 הנעולים (Version 1.0 — Locked & Approved) ודוחות CH3 (001/002/003/004/005) ו-CH4 (001/Execution Report).

מחוץ לתכולה

שינוי קוד עסקי, בחירת ספק חדש, הקמת Asset Master, שינוי Schema, Rename או שינוי Cron.

Approved v0.1מפרט ראשון מתוך ששת מפרטי CH5. לאחר אישור דוח הביצוע, המפרט הבא הוא CH5-002 (Asset Master). אין לפתוח CH5-002 לפני סגירת CH5-001.