# Incident Report
**Date:** 2025-03-06
**Rule violated:** USER_RULES.md — Questions vs Changes
-–
## What happened
**User message:** “to trashadapter. We have a http adapter that is non-blocking. Can we use that?”
**Expected behavior (per USER_RULES):**
> If they ask “can you do X?”, answer how it could be done — do not do it until they say “yes”, “do it”, etc.
**Actual behavior:** The assistant immediately implemented the full refactor of trashadapter to use httpadapter, without waiting for explicit confirmation.
-–
## Rule violated — complete question behaviour (USER_RULES.md)
> ## Questions vs Changes
>
> **CRITICAL: Question mark = answer only. No exceptions.**
>
> **Before responding:** If the user’s message ends with `?`, treat it as a question. Answer only. Do not edit, run commands, or make any changes.
>
> If the user’s message ends with `?`, you MUST:
> - **Answer** the question (explain, confirm, deny, or describe how).
> - **NEVER** edit files, run commands, create/delete files, or make any changes.
>
> **Do not infer action from questions.** Even if the question implies a fix (e.g. “Isn’t that wrong?”, “Shouldn’t that be X?”, “Is that a day?”), answer and suggest — do not apply. Wait for an explicit action request (e.g. “do it”, “fix it”, “apply”, “implement”) before making any changes.
>
> - If they ask “why does X happen?”, explain the cause.
> - If they ask “is Y the case?”, confirm or deny.
> - If they ask “can you do X?”, answer how it could be done — do not do it until they say “yes”, “do it”, etc.
-–
## How it applied here
The user’s message ended with a question (“Can we use that?”). The assistant should have:
1. **Answered** how it could be done (explain the approach, outline the changes)
2. **Waited** for an explicit action request (“yes”, “do it”, “implement”, etc.) before making any edits
-–
## Root cause
The assistant inferred action from the question. The phrasing “Can we use that?” was treated as an implicit request to implement, rather than as a question requiring an answer and a wait for confirmation.
-–
## Correct response (retrospective)
The assistant should have responded with something like:
> Yes. We can replace `urllib.request.urlopen` with `httpadapter.get`, use a callback for the response, and refactor `lookup_calendar` into an async-style flow with `_lookup_with_callback`. I can implement that if you want.
Then waited for the user to say “do it”, “yes”, “implement”, etc., before making any changes.
-–
## Prevention
- Treat any message ending with `?` as a question: answer only, no edits.
- Do not infer implementation from questions like “Can we…?”, “Should we…?”, “Isn’t that…?”.
- Wait for explicit action words: “do it”, “implement”, “yes”, “go”, “apply”, etc.