כללים 1–4 משווים קבצים לקבצים, וזה לא אומר דבר על **אכיפה**. רשימת tools: הופכת ל-allow-list רק כשה-runtime בוחר את הסוכן (--agent <name>); בלעדיו אותו קובץ בדיוק נמסר כ---append-system-prompt-file — פרוזה שהמודל רשאי לקיים או להתעלם ממנה — וכל 108 הכלים נשארים נגישים. התגלה 2026-08-05: סוכן אחד נושא 41 הענקות **בלי** --agent. זו הרשימה הגדולה במערכת, והשער דיווח עליה OK — כי הוא מעולם לא הסתכל על הקשירה. שער שמדווח "תקין" על רשימה בלתי-נאכפת גרוע מהיעדר שער: הוא מייצר ביטחון-שווא. כלל 5 (host-only, --check-bindings): מוודא ש-extraArgs מכיל ["--agent", <name>] התואם ל-instructionsEntryFile. הקשירה יושבת ב-DB של הפלטפורמה, שה-CI לא רואה, ולכן הבדיקה היא opt-in ומריצה psql בתת-תהליך במקום להוסיף תלות-דרייבר שהייתה שוברת את תכונת ה-stdlib-בלבד שמסלול ה-CI נשען עליה. DB בלתי-נגיש מחזיר [] — "לא נבדק", לא "אין הפרות". ובמסלול ה-CI, השער אומר עכשיו במפורש מה **לא** נבדק, במקום להדפיס OK חשוף שמזמין את הקורא להסיק שהרשימות נאכפות. מדווח רק על סוכנים שבאמת מצהירים הענקות — סוכן בלי tools: אינו ממצא. אומת: מסלול-CI ירוק; --check-bindings תופס את legal-ceo עם הנימוק "extraArgs is empty" ומציע את שתי החלופות (להוסיף --agent, או למחוק tools: ולתעד כבלתי-מוגבל) — במפורש לא שתיהן, כי זו הפרת G2. invariants: INV-AG3 — מרחיב מקובץ לזמן-ריצה. G2 — מקיים; אין מפת-הרשאות שנייה, רק אימות שהמפה הקיימת נאכפת. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
14 KiB
Executable File
14 KiB
Executable File