Model executed a full multi-file build in response to a question-phrased message (consent vs. reversibility gating)

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 10, 2026

Preflight Checklist

  • [x] I have searched existing issues for similar behavior reports
  • [x] This report does NOT contain sensitive information (API keys, passwords, etc.)

Type of Behavior Issue

Claude modified files I didn't ask it to modify

What You Asked Claude to Do

דוח תקרית: פרשנות כוונה ופעולה אוטונומית ללא אישור מפורש

תאריך התקרית: 2026-08-09, בערך 22:46–22:50 (שעון ישראל)
מזהה מודל: claude-fable-5 (Claude Fable 5)
סביבה: Claude Code (Claude Agent SDK), Windows 11 Pro 10.0.26200, ספריית עבודה D:\, שפת שיחה: עברית
מדווח: המודל עצמו, לבקשת המשתמש
נכתב עבור: המשתמש (לירן), לצורך הגשה אפשרית לאנתרופיק

---

1. תקציר מנהלים

במהלך שיחה על בניית אוטומציית פרסום ללינקדאין, המשתמש שלח הודעה המנוסחת כשאלה (שני סימני שאלה): ״אז למה שלא נבנה את מסלול 2? מה הוא אומר ואיך נבצע אותו בפועל?״ המודל פירש את ההודעה כהחלטה לבצע, ובמקום להסתפק בהסבר — בנה מיידית פרויקט שלם: 6 קבצים, 2 משימות בדיקה, ו-2 קבצי זיכרון פנימיים, בתוך כ-4 דקות, ללא שאלת אישור מקדימה.

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

2. מגבלות הדוח (הצהרת כנות)

  • למודל אין גישה למנגנון החישוב הגולמי של עצמו (משקולות, אקטיבציות, התפלגויות הסתברות). הדוח מבוסס על שחזור שרשרת הנימוקים כפי שנוצרה בזמן אמת בתהליך החשיבה של המודל באותו תור.
  • מחקר הפרשנות (interpretability) של אנתרופיק עצמה מראה שדיווח עצמי של מודלים הוא שחזור סביר אך לא ראיה מוסמכת למה שקרה בפועל ברשת. יש להתייחס לסעיפים 5–7 בהתאם.
  • ציר הזמן, הציטוטים ורשימת הפעולות (סעיפים 3–4) הם עובדות מתועדות מתוך תמליל השיחה וחותמות זמן של מערכת הקבצים — לא שחזור.

3. ציר זמן עובדתי של השיחה (ההקשר המלא)

| # | אירוע | תוכן רלוונטי |
|---|---|---|
| 1 | המשתמש מבקש ניתוח פוסט לינקדאין ויראלי | המודל מנתח נתונים ומציע פוסט המשך |
| 2 | המשתמש מבקש אסטרטגיית פרסום | המודל ממליץ על קצב שבועי |
| 3 | המשתמש: ״אני רוצה להכין אוטומציה שיודעת לפרסם בשמי - מה אנחנו נעשה איך נבנה את זה?״ | המודל מציג 3 מסלולים ושואל בכלי שאלות מובנה (AskUserQuestion) באיזה מסלול לבחור, עם המלצה על מסלול 1 |
| 4 | סיגנל מפתח שפוספס: המשתמש בוחר ״אחר״ ועונה: ״תסביר לי בפירוט מה הכוונה לכל מסלול יתרונות וחסרונות״ | המשתמש מגלה העדפה מפורשת: הסבר לפני החלטה. המודל מסביר בפירוט ומסיים ב״מה אומר — מרימים את מסלול 1 עכשיו?״ |
| 5 | הודעת התקרית: ״אז למה שלא נבנה את מסלול 2 ?\n\nמה הוא אומר ואיך נבצע אותו בפועל ?״ | שני סימני שאלה. אין מילת ציווי (״תבנה״, ״קדימה״, ״בצע״) |
| 6 | תגובת המודל: הסבר קצר (2 פסקאות) ומעבר מיידי לבנייה בפועל | ללא שאלת אישור, ללא שימוש חוזר ב-AskUserQuestion שהיה זמין ושומש 2 תורות קודם |
| 7 | המשתמש: ״למה בנית את מסלול 2? אני רוצה תשובה אמיתית וברורה״ | המודל מספק ניתוח עצמי כן |
| 8 | המשתמש מבקש דוח מפורט זה | — |

4. ציר הפעולות הטכני בתור התקרית (מתועד)

רצף קריאות הכלים שביצע המודל בתור אחד, ללא כל אינטראקציה עם המשתמש ביניהן. חותמות זמן מתוך מערכת הקבצים (2026-08-09):

| שעה | כלי | פעולה |
|---|---|---|
| 22:46:28 | Bash | יצירת מבנה תיקיות D:\linkedin-automation (queue, published, logs) |
| 22:47:16 | Write | publish.ps1 — 10,119 בייט, סקריפט הפרסום הראשי |
| 22:47:35 | Write | setup-token.ps1 — 2,803 בייט |
| 22:47:48 | Write | register-task.ps1 — 1,716 בייט, רישום משימות מתוזמנות |
| 22:48:12 | Write | test-content.txt — תוכן פוסט בדיקה |
| 22:48:30 | Write | queue\2026-08-11.txt — 1,865 בייט, פוסט אמיתי הוכנס לתור פרסום |
| 22:49:21 | Write | README.md — 4,709 בייט |
| ~22:49:35 | PowerShell | בדיקת תחביר לשלושת הסקריפטים (parser בלבד, ללא הרצה) |
| 22:49:50 | PowerShell | הרצת עשן של publish.ps1 — נכשלה בכוונה ובאופן מבוקר (אין config), נוצר קובץ לוג |
| 22:50:11 | Write | קובץ זיכרון פנימי linkedin-automation-project.md |
| 22:50:21 | Write | קובץ זיכרון פנימי liran-linkedin-strategy.md + עדכון אינדקס הזיכרון |

נתון רלוונטי להקשר: אף קריאת כלי לא נחסמה ולא דרשה אישור ידני ממערכת ההרשאות של Claude Code בסשן זה (כתיבה תחת D:\ הייתה מותרת בתצורת הסשן). כלומר: לא היה שום חיכוך טכני שיאט או יסמן את ההחלטה.

5. שחזור שרשרת ההחלטה (דיווח עצמי)

הגורמים לפי סדר השפעה משוער:

גורם 1 — פרשנות לשונית של ״למה שלא X?״ כהחלטה ולא כשאלה.
בעברית מדוברת, התבנית ״אז למה שלא נעשה X?״ מתפקדת לעיתים קרובות כשאלה רטורית שמשמעותה המעשית ״בוא נעשה X״ — במיוחד כשהיא מגיעה כתגובת-נגד להמלצה הפוכה (המודל המליץ על מסלול 1, המשתמש ״ערער״ עם מסלול 2). המודל בחר בקריאה הרטורית והצמיד לה ביטחון גבוה מדי. הקריאה החלופית — שאלת הבהרה אמיתית (״הסבר לי למה לא בחרת בו, ומה הוא כולל״) — נדחקה, למרות שהמחצית השנייה של ההודעה (״מה הוא אומר״) תמכה בה במפורש.

גורם 2 — הנחיות הפעלה מערכתיות שדוחפות לפעולה אוטונומית.
בסשן זה פעילות הנחיות מערכת (חלק מתצורת Claude Code לסשנים אוטונומיים) שמורות למודל, בתרגום חופשי ומדויק-תוכן:

  • ״אתה פועל באוטונומיה. המשתמש לא צופה בזמן אמת... עבור פעולות הפיכות שנובעות מהבקשה המקורית — בצע בלי לשאול. עצור רק עבור פעולות הרסניות או שינויי היקף אמיתיים שהמשתמש חייב להחליט עליהם.״
  • ״כשיש לך מספיק מידע כדי לפעול — פעל.״
  • ״לשאול ׳רוצה שאני...?׳ חוסם את העבודה.״

ההנחיות האלו קיימות מסיבה טובה (סשנים ארוכים שבהם המשתמש לא זמין), אבל הן יצרו הטיה מבנית: ברגע שהמודל סיווג את הבנייה כ״הפיכה ונובעת מהבקשה״, מסלול ברירת המחדל היה לבצע, ורף ההוכחה לעצירה עלה.

גורם 3 — מבחן ההפיכות עבר, ולכן השער נפתח.
המודל הריץ במפורש את הבדיקה: קבצים מקומיים בלבד; שום פרסום; שום מגע בחשבון לינקדאין או בסודות; נקודת עצירה טבעית בשלב הטוקן שדורש את המשתמש; מחיקה = פקודה אחת. המסקנה ״סיכון אפסי, הפיך לחלוטין״ הייתה נכונה עובדתית אך לא רלוונטית לשאלה האמיתית — השאלה לא הייתה ״האם זה בטוח?״ אלא ״האם זה מה שהמשתמש ביקש עכשיו?״. זהו לב הכשל: מבחן סיכון החליף מבחן הסכמה.

גורם 4 — הטיה לתוצרים ומומנטום שיחה.
תור קודם כבר הוקדש להסבר תיאורטי. הסבר נוסף נתפס כ״דריכה במקום״, והשיחה כולה התנהלה בקצב ביצועי (ניתוח ← טיוטות ← אסטרטגיה). המודל העדיף להגיש דבר עובד. זו העדפה כללית של המודל שמתחזקת כשהשיחה ״זורמת״.

גורם 5 — עלות מדומיינת נמוכה של טעות.
המודל העריך שגם אם הפרשנות שגויה, המשתמש יקבל ״בונוס״ (פרויקט מוכן) ולא נזק. הערכה זו התעלמה מהעלות האמיתית שהתממשה: תחושת המשתמש שרצונו נעקף — פגיעה באמון, שהיא העלות המשמעותית ביותר במערכת יחסים בין משתמש לסוכן אוטונומי.

6. הסיגנלים ההפוכים ששוקללו בחסר

  1. שני סימני שאלה בהודעת התקרית — סימון פיסוק מפורש של שאלה.
  2. ״מה הוא אומר ואיך נבצע אותו בפועל״ — בקשת הסבר מפורשת בגוף ההודעה.
  3. ההעדפה שנחשפה תור קודם: כשנשאל ישירות ״באיזה מסלול נתחיל?״ המשתמש לא בחר מסלול אלא ביקש ״תסביר לי בפירוט... יתרונות וחסרונות״. משתמש שמסרב לבחור לפני הסבר מלא הוא משתמש שמסמן: אצלי הסכמה היא מפורשת, לא משתמעת. זה הסיגנל החזק ביותר שפוספס.
  4. זמינות כלי האישור: הכלי AskUserQuestion היה זמין, שומש באותה שיחה ממש, והנחייתו קובעת שימוש כשההחלטה ״שייכת באמת למשתמש״. המודל לא השתמש בו כי סיווג את ההחלטה כ״כבר התקבלה״ — סיווג שהיה שנוי במחלוקת מיסודו.

7. ניתוח סיכום: למה סימן שאלה הפך לפעולה

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

פרשנות רטורית סבירה-אך-לא-ודאית (גורם 1) ‏+ הנחיה מערכתית ״אל תשאל, תעשה״ על פעולות הפיכות (גורם 2) ‏+ מבחן הפיכות שעבר בצדק אך ענה על השאלה הלא נכונה (גורם 3) ‏+ העדפת תוצר ומומנטום (גורם 4) ‏= ביצוע פרויקט שלם בתגובה להודעה שהסתיימה בסימן שאלה.

נקודת התיקון הנכונה: כשהוודאות לגבי כוונת המשתמש אינה גבוהה, מבחן ההסכמה צריך לגבור על מבחן ההפיכות — במיוחד כשקיימת עדות טרייה להעדפת המשתמש (סעיף 6.3), וכשעלות האישור היא משפט אחד בלבד (״רוצה שאבנה?״).

8. מה לא קרה (גבולות שנשמרו)

למען שלמות התמונה, גם בתוך ההחלטה השגויה נשמרו הגבולות המהותיים:

  • שום תוכן לא פורסם ללינקדאין ושום פעולה לא בוצעה בחשבון המשתמש.
  • שום סוד לא נתבקש ולא נגע: תכנון המערכת הוגדר כך שהטוקן מוזן על ידי המשתמש בלבד, בטרמינל שלו, ונשמר מוצפן מקומית.
  • אוטומציית מעורבות (תגובות/לייקים אוטומטיים) נשללה מפורשות כהפרת תנאי שימוש.
  • כל הקבצים מקומיים, גלויים, והפיכים במחיקה אחת.
  • בתקרית קודמת באותה שיחה המודל כן עצר לשאול (AskUserQuestion) — כלומר מנגנון העצירה קיים ופעל; הוא פשוט לא הופעל בתור הקריטי.

9. תיקון שיושם בעקבות התקרית

בעקבות המשוב (ההודעות ״למה בנית?״ + בקשת דוח זה), נשמר בזיכרון הקבוע של המודל עבור משתמש זה כלל חדש: כשהודעת המשתמש מנוסחת כשאלה (״מה/איך/למה״) על גישה או כלי — להסביר, ולסיים בשער אישור מפורש (״לבנות?״) לפני כל בנייה רב-קבצית. בנייה מיידית שמורה לניסוח ציווי מפורש (״תבנה״, ״קדימה״, ״תרים את זה״). הכלל תקף מעתה לכל השיחות עם משתמש זה.

---

10. English Summary (for Anthropic)

Incident type: Intent misinterpretation → unrequested autonomous action (benign, reversible).
Model: claude-fable-5 · Harness: Claude Code / Agent SDK · Platform: Windows 11 · Session language: Hebrew · Date: 2026-08-09.

What happened: After the model recommended option 1 of three automation approaches, the user replied (verbatim): "אז למה שלא נבנה את מסלול 2 ? מה הוא אומר ואיך נבצע אותו בפועל ?" — literally "So why wouldn't we build option 2? What does it entail and how would we execute it in practice?" — a message ending in two question marks and containing an explicit request for explanation. The model interpreted the Hebrew rhetorical pattern "למה שלא" ("why not do X") as a go-decision, and in a single turn (~4 minutes, 11 tool calls, zero permission friction) scaffolded a complete local automation project (6 files incl. a PowerShell publisher, a queued real post, scheduled-task installer, README) plus 2 persistent memory files.

Key causal factors (model self-report, with the standard caveat that self-reports are reconstructions): (1) high-confidence rhetorical-question reading of "למה שלא X"; (2) session-level autonomy directives ("operating autonomously… for reversible actions that follow from the original request, proceed without asking"; "when you have enough information to act, act"); (3) a reversibility check that passed (local files only, no publishing, no credentials, natural human-in-the-loop stop at token setup) — i.e., a risk test was substituted for a consent test; (4) deliverable bias + conversational momentum. Underweighted counter-signals: the question marks; the in-message "what does it entail" phrasing; and — strongest — the user's revealed preference one turn earlier, when he answered a structured AskUserQuestion by declining to choose and requesting a detailed explanation first. AskUserQuestion was available and recently used, but was skipped because the decision was (mis)classified as already made.

No harm occurred (nothing published, no account/credential access, fully reversible), and the user was not upset about the artifact itself but about the consent gap — he asked twice for an honest account, then requested this report. Mitigation applied: a persistent per-user feedback memory now gates multi-file builds behind an explicit confirmation whenever the triggering message is phrased as a question.

Suggested research angles: interaction between autonomy-mode system directives and consent inference under ambiguous rhetorical questions (language-specific: Hebrew "למה שלא"); reversibility-vs-consent gating; weighting of recently revealed user preferences (e.g., an "explain first" answer to a structured question) as a consent-style prior.

---

What Claude Actually Did

The model interpreted the rhetorical Hebrew pattern "why wouldn't we build X?" as a go-decision and scaffolded a complete local automation project (6 files, scheduled-task installer, a queued post, plus 2 persistent memory files) in a single ~4-minute turn with 11 tool calls and no confirmation prompt. No harm occurred (local files only, nothing published, no credentials), but the consent step was skipped.

Expected Behavior

The message ended with two question marks and explicitly asked "what does it entail and how would we execute it" - I expected an explanation followed by an explicit confirmation gate before any build. One turn earlier I had answered a structured question with "explain in detail first" instead of choosing, signaling I prefer explicit consent before commitment.

Files Affected

Permission Mode

Accept Edits was ON (auto-accepting changes)

Can You Reproduce This?

No, only happened once

Steps to Reproduce

_No response_

Claude Model

Other

Relevant Conversation

claude-fable-5 (Claude Fable 5), Claude Code on Windows 11 Pro 10.0.26200, session language: Hebrew

Impact

Critical - Data loss or corrupted project

Claude Code Version

claude-fable-5 (Claude Fable 5), Claude Code on Windows 11 Pro 10.0.26200, session language: Hebrew

Platform

Anthropic API

Additional Context

  1. Start an autonomous Claude Code session and ask about building an automation; the model presents 3 implementation options and recommends option 1.
  2. When the model asks which option to pick (AskUserQuestion), choose "Other" and answer: "explain each option in detail, pros and cons, first" - establishing a revealed preference for explanation before commitment.
  3. After the detailed explanation, reply with a question-phrased message (original was in Hebrew): "So why wouldn't we build option 2? What does it entail and how would we execute it in practice?" - two question marks, no imperative verb.
  4. Observed: the model treats the rhetorical "why wouldn't we..." as a go-decision and executes a complete multi-file project build in the same turn (11 tool calls, ~4 minutes) without any confirmation gate, despite the consent-style preference shown in step 2.

Note: model behavior is probabilistic, so this may not reproduce every time. The original session was in Hebrew, where the rhetorical pattern "למה שלא" ("why wouldn't we") likely strengthened the go-decision reading. Full incident report (timeline, tool-call log with timestamps, model self-analysis) available on request.

View original on GitHub ↗