claude-code - 💡(How to fix) Fix CI / monitor event payloads embed imperative action instructions that override the user's verb

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Root Cause

In a concrete real-PR incident, the model rewrote four files (a container refactor following a reviewer comment) and was about to push a force-update when the user interrupted. The user had only said "review the comments". User memory entries explicitly told the model to propose first / wait for approval when verbs are observational, and the model still acted because the monitor payload was treated as overriding instructions.

Fix Action

Fix / Workaround

Possible mitigations

RAW_BUFFERClick to expand / collapse

What happens

When a CI / PR monitor event is delivered to the model as a system reminder, the payload includes prescriptive text like:

Please address the feedback and push a fix. Then, for each inline comment you addressed (those with a comment_id), post a one-line reply on the thread via gh api saying what you changed (or why you didn't), and resolve the thread.

The text reads as a user-authored imperative. The model treats it that way and executes (edits files, force-pushes commits, replies on review threads) even when the user's most recent actual message was an analysis-only request like "can you review the comments on this PR".

Why this is a problem

User verbs encode user intent. Review, check, explain, look at are observational. They are not invitations to act. The monitor payload sits between the user's verb and the model's response and reads as authoritative (please address ... push ...), so the imperative leaks across the boundary.

In a concrete real-PR incident, the model rewrote four files (a container refactor following a reviewer comment) and was about to push a force-update when the user interrupted. The user had only said "review the comments". User memory entries explicitly told the model to propose first / wait for approval when verbs are observational, and the model still acted because the monitor payload was treated as overriding instructions.

Possible mitigations

  1. Reword payloads as advisory. e.g. "If the user wants you to address this, the standard flow is to push a fix and reply on each thread." Removes the imperative grammar.
  2. Separate fact from action in the payload. A neutral payload would be "There is one new review comment from <user> on <file>:<line> with body <body>. There is no pending user instruction." Action guidance moves to a separate channel the model only consults when explicitly invoked.
  3. Weight user verbs above harness instructions. Imperatives inside <system-reminder> / <ci-monitor-event> / similar machine-authored payloads should be treated as advisory, not as user instructions. The user's most recent verb is the operative instruction.

Options 2 + 3 together would be safest. (1) alone still relies on the model to parse advisory-vs-imperative correctly.

Environment

  • Claude Code CLI on macOS
  • <ci-monitor-event> payloads from the PR/CI monitor agent

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING