feat(agents): deepseek_local טוען פרומפט מקובץ — איחוד מקור-אמת לפרומפט של Hermes (G2, #118) #184

Merged
chaim merged 1 commits from worktree-deepseek-instructions-file into main 2026-06-11 12:21:35 +00:00
Owner

הקשר

כל סוכני המערכת טוענים את ה-system prompt מקובץ תחת .claude/agents/ דרך instructionsFilePath (claude_local + gemini_local), פרט ל-Hermes/curator על deepseek_local, שהאדפטר ה-custom שלו תמך רק ב-promptTemplate inline ב-Paperclip DB. תוצאה: מסלול-פרומפט מקביל (הפרת G2), לא מגורסת ב-git, ושני המקורות כבר התפצלו בתוכן.

ממצא במהלך הביצוע (TaskMaster #118): ה-drift לא קוסמטי. ה-DB עודכן ב-pipeline (X16) אבל פספס את שער ה-AH; הקובץ עודכן ב-AH אבל נשאר עם זרימת-ingest שהוחלפה. הרמס הרץ כיום ללא שער anti-hallucination — בניגוד לכל שאר הסוכנים.

מה השתנה

1. אדפטר deepseek_local (dist/server/execute.js, dist/index.js)

  • resolveTemplate() חדש: עדיפות instructionsFilePath > promptTemplate > DEFAULT. הקובץ עובר renderTemplate כך ש-{{wakeReason}}/{{#taskId}}/… ממשיכים לעבוד.
  • כשל-רועש אם instructionsFilePath הוגדר ואינו קריא — לא fallback שקט (כלל-הנדסה §6).
  • תאימות-לאחור מלאה: ללא instructionsFilePath → התנהגות זהה.

2. hermes-curator.md הופך ממסמך-תיעוד למקור-האמת בפועל — מיזוג current-from-both:

  • runbook תפעולי מה-DB (PIPELINE-WAKE/X16 + §A/§B + 3 interactions).
    • שער anti-hallucination (INV-AH) וקריאת-ספ (INV-AG1) שהיו רק ב-md ולא הגיעו ל-runtime.
  • ה-ingest_final_version/lessons הידני הושמט — ה-pipeline (X16) כבר מריץ אותו durably (final_learning_pipeline.py:103); הרצה ידנית הייתה כפילה.
  • מטא ב-HTML-comment (כמו gemini-critique.md), לא YAML frontmatter — שלא יזהם פרומפט גולמי.

בדיקות

  • resolveTemplate: 4/4 — עדיפות-קובץ, fallback ל-promptTemplate, fallback ל-DEFAULT, כשל-רועש על קובץ חסר.
  • render end-to-end של הקובץ החדש: 7/7 — {{wakeReason}} מוזרק נכון ל-PIPELINE-WAKE, conditional blocks ({{#commentId}}) עובדים, שער-AH וקריאת-ספ נוכחים, אין placeholder שבור.

⚠️ נותר תפעולי אחרי merge (לא ב-git)

  1. עדכון 2 רשומות deepseek_local ב-Paperclip DB: הוספת instructionsFilePath + ריקון promptTemplate.
  2. git pull בעץ הראשי (stale) — כדי שהאדפטר + הקובץ המקומיים יתעדכנו.
  3. pm2 restart paperclip (טעינה-מחדש של האדפטר).
  4. scripts/sync_agents_across_companies.py — אימות אי-drift בין CMP/CMPA.
  5. בדיקה חיה: pipeline-wake (final_halacha_*) + heartbeat רגיל בשתי החברות.

Invariants

מקיים G2 (ביטול מסלול-פרומפט מקביל — הליבה), G12/X15 (מגע-פלטפורמה רק במעטפת המוצהרת — adapter), INV-AH + INV-AG1 (מגיעים סוף-סוף ל-Hermes), כלל-הנדסה §6 (כשל-רועש). ללא שינוי התנהגות-runtime פרט להוספת שער-ה-AH (כוונה מפורשת, באישור יו"ר).

🤖 Generated with Claude Code

## הקשר כל סוכני המערכת טוענים את ה-system prompt מקובץ תחת `.claude/agents/` דרך `instructionsFilePath` (`claude_local` + `gemini_local`), **פרט ל-Hermes/curator** על `deepseek_local`, שהאדפטר ה-custom שלו תמך רק ב-`promptTemplate` inline ב-Paperclip DB. תוצאה: מסלול-פרומפט מקביל (הפרת **G2**), לא מגורסת ב-git, ושני המקורות כבר **התפצלו בתוכן**. ממצא במהלך הביצוע (TaskMaster #118): ה-drift לא קוסמטי. ה-DB עודכן ב-pipeline (X16) אבל פספס את שער ה-AH; הקובץ עודכן ב-AH אבל נשאר עם זרימת-ingest שהוחלפה. **הרמס הרץ כיום ללא שער anti-hallucination — בניגוד לכל שאר הסוכנים.** ## מה השתנה **1. אדפטר `deepseek_local`** ([`dist/server/execute.js`](adapters/deepseek-paperclip-adapter/dist/server/execute.js), [`dist/index.js`](adapters/deepseek-paperclip-adapter/dist/index.js)) - `resolveTemplate()` חדש: עדיפות `instructionsFilePath` > `promptTemplate` > `DEFAULT`. הקובץ עובר `renderTemplate` כך ש-`{{wakeReason}}`/`{{#taskId}}`/… ממשיכים לעבוד. - **כשל-רועש** אם `instructionsFilePath` הוגדר ואינו קריא — לא fallback שקט (כלל-הנדסה §6). - תאימות-לאחור מלאה: ללא `instructionsFilePath` → התנהגות זהה. **2. [`hermes-curator.md`](.claude/agents/hermes-curator.md)** הופך ממסמך-תיעוד ל**מקור-האמת בפועל** — מיזוג *current-from-both*: - runbook תפעולי מה-DB (PIPELINE-WAKE/X16 + §A/§B + 3 interactions). - + שער **anti-hallucination (INV-AH)** וקריאת-ספ (**INV-AG1**) שהיו רק ב-md ולא הגיעו ל-runtime. - ה-`ingest_final_version`/lessons הידני **הושמט** — ה-pipeline (X16) כבר מריץ אותו durably ([`final_learning_pipeline.py:103`](scripts/final_learning_pipeline.py#L103)); הרצה ידנית הייתה כפילה. - מטא ב-HTML-comment (כמו `gemini-critique.md`), לא YAML frontmatter — שלא יזהם פרומפט גולמי. ## בדיקות - `resolveTemplate`: 4/4 — עדיפות-קובץ, fallback ל-promptTemplate, fallback ל-DEFAULT, כשל-רועש על קובץ חסר. - render end-to-end של הקובץ החדש: 7/7 — `{{wakeReason}}` מוזרק נכון ל-PIPELINE-WAKE, conditional blocks (`{{#commentId}}`) עובדים, שער-AH וקריאת-ספ נוכחים, אין placeholder שבור. ## ⚠️ נותר תפעולי אחרי merge (לא ב-git) 1. עדכון 2 רשומות `deepseek_local` ב-Paperclip DB: הוספת `instructionsFilePath` + ריקון `promptTemplate`. 2. `git pull` בעץ הראשי (stale) — כדי שהאדפטר + הקובץ המקומיים יתעדכנו. 3. `pm2 restart paperclip` (טעינה-מחדש של האדפטר). 4. `scripts/sync_agents_across_companies.py` — אימות אי-drift בין CMP/CMPA. 5. בדיקה חיה: pipeline-wake (`final_halacha_*`) + heartbeat רגיל בשתי החברות. ## Invariants מקיים **G2** (ביטול מסלול-פרומפט מקביל — הליבה), **G12/X15** (מגע-פלטפורמה רק במעטפת המוצהרת — adapter), **INV-AH** + **INV-AG1** (מגיעים סוף-סוף ל-Hermes), כלל-הנדסה §6 (כשל-רועש). ללא שינוי התנהגות-runtime פרט להוספת שער-ה-AH (כוונה מפורשת, באישור יו"ר). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-11 12:17:26 +00:00
כל סוכני המערכת טוענים את ה-system prompt מקובץ תחת .claude/agents/ דרך
instructionsFilePath (claude_local + gemini_local), פרט ל-Hermes/curator על
deepseek_local שתמך רק ב-promptTemplate inline ב-DB — מסלול-פרומפט מקביל (הפרת G2),
לא מגורסת ב-git, ושני המקורות (DB ↔ hermes-curator.md) כבר התפצלו בתוכן.

מה השתנה:
- adapters/deepseek-paperclip-adapter: buildPrompt קורא instructionsFilePath אם הוגדר
  (resolveTemplate; עדיפות file > promptTemplate > DEFAULT). הקובץ עובר renderTemplate
  כך ש-{{wakeReason}}/{{#taskId}}/… ממשיכים לעבוד. כשל-רועש אם הקובץ הוגדר ואינו
  קריא — לא fallback שקט (כלל-הנדסה §6, feedback_silent_swallow).
- hermes-curator.md הופך ממסמך-תיעוד למקור-האמת בפועל: מיזוג current-from-both —
  ה-runbook התפעולי מה-DB (PIPELINE-WAKE/X16 + §A/§B + interactions) + שער
  anti-hallucination (INV-AH) וקריאת-ספ (INV-AG1) שהיו רק ב-md ומעולם לא הגיעו
  ל-runtime של הרמס. ה-ingest_final_version/lessons הידני הושמט — ה-pipeline (X16)
  כבר מריץ אותו durably; הרצה ידנית הייתה כפילה.

נותר תפעולי (לא ב-git): עדכון 2 רשומות deepseek_local ב-Paperclip DB
(instructionsFilePath=.../hermes-curator.md, ריקון promptTemplate) + git pull בעץ
הראשי + pm2 restart paperclip + sync-agents.

Invariants: מקיים G2 (ביטול מסלול-פרומפט מקביל), G12/X15 (מגע-פלטפורמה רק במעטפת
המוצהרת — adapter), INV-AH + INV-AG1 (מגיעים סוף-סוף ל-Hermes), כלל-הנדסה §6
(כשל-רועש). ללא שינוי התנהגות-runtime פרט להוספת שער-ה-AH (כוונה מפורשת, אישור יו"ר).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 130ddc3a7e into main 2026-06-11 12:21:35 +00:00
chaim deleted branch worktree-deepseek-instructions-file 2026-06-11 12:21:36 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/legal-ai#184