fix(security+agents): GAP-57 fail-loud PAPERCLIP_DB_URL + FU-13 analyst tool alignment #61
Reference in New Issue
Block a user
Delete Branch "fix/gap57-creds-fu13-analyst-tools"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
מה ולמה
שני פריטים ממחזור-2, בטוחים להרצה במקביל לחילוץ פעיל (החילוץ רץ מקומית, ה-PR נוגע בקוד הקונטיינר + spec).
Invariants — הצהרה
GAP-57 — אבטחה (fail-loud creds)
ה-default הקשיח
postgresql://paperclip:paperclip@127.0.0.1:54329/paperclipהוסר מ-3 קבציweb/:web/paperclip_api.py— נוסףrequire_paperclip_db_url()(resolver משותף, נכשל בקול; תואם את הדפוס הקיים של_build_headersעלPAPERCLIP_BOARD_API_KEY).web/paperclip_client.py+web/app.py(2 מופעים) — משתמשים בו במקום ה-default.בטיחות ייצור: אומת ש-
PAPERCLIP_DB_URLמוגדר ב-Coolify (is_runtime: true) — הקונטיינר יעלה כרגיל; misconfig עתידי ייכשל בקול במקום להתחבר ל-creds ידועים.מחוץ לסקופ GAP-57: 2 מופעים בסקריפטים מקומיים (
sync_agents_across_companies.py,sync_missing_agent_skills.py) — נשארים ל-FU-15 המלא (env/secrets + סביבה מקומית הוליסטית).FU-13 — יישור הרשאות-סוכן (הכרעת "היבריד")
התברר שהפער שמופה ב-31.5 היה רחב מדי — יוחס לפי תיאור-תפקיד, לא לפי ההוראות בפועל:
extract_references,precedent_extract_*). ה-spec היה מיושן. ✅aggregate_claims_to_arguments(frontmatter + שלב 7 ב"שלב 1") — הכלי שמקבץ את הטענות שהוא עצמו חילץ לטיעונים משפטיים. קלט לבלוק ז/י.extract_references/extract_internal_citations— מטלת-מחקר, שייכים ל-researcher, לא ל-analyst (שמאמת פסיקה דרך חיפוש). הוסרו מ"החסרים" (INV-AG3 "לא עודף").עודכנו
docs/spec/X4-agents.md(§2א, INV-AG3) ו-docs/spec/gap-audit.md(FU-13 ✅, GAP-57 חלקי ב-FU-15).צ'קליסט — פרוטוקול כתיבת-קוד
00-constitution.md+ ספ-תחום (X10 INV-ENV4, X4 INV-AG3) לפני הכתיבהאימות
⚠️ מיזוג מפעיל deploy אוטומטי (push→main, נוגע ב-web/) — restart לקונטיינר ~2-4 דק'. החילוץ המקומי לא מושפע; ה-DB חיצוני.
🤖 Generated with Claude Code