diff --git a/docs/spec/X3-integration-deploy.md b/docs/spec/X3-integration-deploy.md index 3c8cdea..3fa35c6 100644 --- a/docs/spec/X3-integration-deploy.md +++ b/docs/spec/X3-integration-deploy.md @@ -9,7 +9,7 @@ > ונפרסת** — לא תאוריה הנדסית כללית ולא תוכן משפטי. אין סמכות חיצונית ל"איך מעירים סוכן > Paperclip" או "איך פורסים את legal-ai"; לכן הם נושאים שדה `מקור-סמכות` = הראנבוקים והקוד > של הפרויקט עצמו ([root CLAUDE.md](../../../CLAUDE.md), [legal-ai/CLAUDE.md](../../CLAUDE.md), -> [HEARTBEAT.md](../../.claude/agents/HEARTBEAT.md), [MEMORY reference_paperclip_wakeup](../../../.claude/projects/-home-chaim-legal-ai/memory/reference_paperclip_wakeup.md), +> [HEARTBEAT.md](../../.claude/agents/HEARTBEAT.md), זיכרון `reference_paperclip_wakeup`, > ו-[web/paperclip_api.py](../../web/paperclip_api.py)) — **לא** ≥3 מקורות חיצוניים ו**ללא** > סטטוס verified/UNVERIFIED. אבל כל invariant **נקשר לעיקרון הגלובלי שהוא משרת**: כלל > ה-wakeup-דרך-API-בלבד הוא מופע של [G2](00-constitution.md#inv-g2-מקור-אמת-יחיד--אין-מסלולים-מקבילים-מתפצלים) @@ -39,7 +39,7 @@ נכון) ([HEARTBEAT.md שורה 156](../../.claude/agents/HEARTBEAT.md)). - **אסור `INSERT INTO agent_wakeup_requests` ישיר** — insert ל-DB יוצר רשומת-בקשה בלבד **בלי `heartbeat_run`**, והסוכן **לא יתעורר לעולם** ([HEARTBEAT.md שורה 158](../../.claude/agents/HEARTBEAT.md); - [reference_paperclip_wakeup](../../../.claude/projects/-home-chaim-legal-ai/memory/reference_paperclip_wakeup.md)). + זיכרון `reference_paperclip_wakeup`). זהו בדיוק "מסלול מקביל מתפצל" שאסור לפי [G2](00-constitution.md#inv-g2-מקור-אמת-יחיד--אין-מסלולים-מקבילים-מתפצלים). - **CEO לכל חברה** — מזהה-ה-CEO ל-wakeup נגזר מ-`$PAPERCLIP_COMPANY_ID`, לעולם לא UUID hardcoded; wakeup לחברה אחרת נדחה (`Agent key cannot access another company`) @@ -132,7 +132,7 @@ legal-chat-service (`127.0.0.1:8770`, pm2) הוא גשר host-side שעוטף א Definition של legal-ai ב-Coolify **חייב** לכלול `extra_hosts: host.docker.internal:host-gateway`, אחרת ה-proxy יקבל `ConnectError` ([root CLAUDE.md](../../../CLAUDE.md); [legal-ai/CLAUDE.md](../../CLAUDE.md) "legal-chat-service"). הנחת-היסוד של "קריאות LLM רק ממקומי" נשמרת — ראה -[reference: claude_session local only](../../../.claude/projects/-home-chaim-legal-ai/memory/feedback_claude_session_local_only.md). +זיכרון `feedback_claude_session_local_only`. --- @@ -145,14 +145,14 @@ Definition של legal-ai ב-Coolify **חייב** לכלול `extra_hosts: host.d מסלול-מקביל-מתפצל אסור (מופע של [G2](00-constitution.md#inv-g2-מקור-אמת-יחיד--אין-מסלולים-מקבילים-מתפצלים) — מקור-אמת/מסלול קנוני יחיד; וכלל-ההנדסה "סימטריה", [חוקה §6](00-constitution.md#6-כללי-הנדסה-מונעים-הישנות)). **מקור-סמכות:** "Wakeup API" ב-[root CLAUDE.md](../../../CLAUDE.md) + ב-[legal-ai/CLAUDE.md](../../CLAUDE.md) + -[reference_paperclip_wakeup](../../../.claude/projects/-home-chaim-legal-ai/memory/reference_paperclip_wakeup.md) + +זיכרון `reference_paperclip_wakeup` + [HEARTBEAT.md §4ד, שורות 152–158](../../.claude/agents/HEARTBEAT.md). (invariant פרויקטלי-תפעולי — ללא פרוטוקול ≥3-המקורות; משרת את העיקרון הגלובלי G2.) **אכיפה:** קריאות-wakeup דרך `pc.sh`/`pc_request` בלבד; `payload.issueId` חובה; בדיקה ש-`heartbeat_run` נוצר. **אין אכיפה סכמתית** שתחסום insert ישיר ל-`agent_wakeup_requests` — המניעה היא נוהל (ראה §4). **הפרה ידועה:** insert ישיר ל-`agent_wakeup_requests` (fallback ישן) → רשומה בלי `heartbeat_run`, -הסוכן נשאר רדום ([reference_paperclip_wakeup](../../../.claude/projects/-home-chaim-legal-ai/memory/reference_paperclip_wakeup.md)). +הסוכן נשאר רדום (זיכרון `reference_paperclip_wakeup`). ### INV-INT2: שינוי-קוד legal-ai נכנס לתוקף רק דרך commit→push→Coolify deploy **כלל:** שינוי קוד ב-`web/` או `web-ui/` **לא נכנס לתוקף** עד `git commit` + `git push origin main` @@ -161,13 +161,13 @@ Definition של legal-ai ב-Coolify **חייב** לכלול `extra_hosts: host.d `npm run api:types` ב-`web-ui/` כדי להיחשף ל-UI. **מקור-סמכות:** "Deploy architecture" ב-[root CLAUDE.md](../../../CLAUDE.md) (UUID, dockerimage, no local uvicorn, api:types) + "ארכיטקטורת Deploy" ב-[legal-ai/CLAUDE.md](../../CLAUDE.md) + -[reference: deployment](../../../.claude/projects/-home-chaim-legal-ai/memory/reference_deployment.md). +זיכרון `reference_deployment`. (invariant פרויקטלי-תפעולי — ללא פרוטוקול ≥3-המקורות.) **אכיפה:** pipeline Gitea Actions → Coolify (אוטומטי בדחיפה ל-main); בדיקה ידנית `curl .../api/health` אחרי deploy. **אין** מסלול-פריסה חלופי. **הפרה ידועה:** בדיקת שינוי מול הרצה מקומית שלא קיימת — הקוד בפרוד נשאר ישן עד deploy; וכן drift אפשרי Infisical↔Coolify env (env לא מתעדכן אוטומטית מ-Infisical, ראה -[reference: infisical/coolify drift](../../../.claude/projects/-home-chaim-legal-ai/memory/feedback_infisical_coolify_drift.md)). +זיכרון `feedback_infisical_coolify_drift`). ### INV-INT3: כל קריאת-Paperclip דרך helper — לא curl/httpx ישיר **כלל:** קריאות ל-Paperclip API עוברות **תמיד** דרך helper — `pc.sh` (bash/סוכנים) או