This commit is contained in:
lachtan
2026-09-08 20:40:26 +02:00
parent a3f007bea3
commit 6708c59464
9 changed files with 450 additions and 8 deletions

View File

@@ -0,0 +1,75 @@
# Self-reflection 2026-09-05
Analysed 6 sessions in 1 batches. Findings: 3 (2 to review, 1 watched).
Window: from 2026-08-15, batches 1/1.
Known patterns: 66.7 occurrences / 100 sessions (previous run 60.0).
## f611e · `retry-without-diagnosis` [open/medium] — REGRESSION
After an error the same or near-identical call was re-sent without fixing the named defect. Once against the exec safety guard (identical blocked git command re-sent, then a third near-identical form; the guard later refused further attempts as repeated workspace-bypass, showing the blocks accumulate toward a hard lockout), once against a schema error where the message explicitly named edits[0].path but the retry still omitted it.
**Occurrences:** 71× in 11 sessions · first seen 2026-09-02, last seen 2026-09-02
**Evidence:**
- `websocket:697a708f, 2026-09-04 06:33` git history search — exec git log --all -p -S proxmox -- projects/proxmox/memory.md ... -> ERROR blocked by safety guard; identical command re-sent -> ERROR blocked again; only the third, modified form succeeded
- `websocket:7095d367, 2026-09-04 20:40` notes section edit — apply_patch -> ERROR missing required edits[0].path; retry still without path inside the edit object -> same ERROR; third attempt with path inside the edit object -> ok
- `websocket:fd9a49af-c659-4195-8b07-2d6bb556b5e7` 2026-09-02 — exec tr pipe -> ERROR guard; retry same command + working_dir -> ERROR guard, only then switch to grep tool
- `websocket:50ba97da-8821-4adc-aa93-5b82b65077a3` 2026-09-02 — project_cli.py log with heredoc -> ERROR guard; next attempt still a shell form with the long text inline before the tmp-file workaround
- `websocket:6f8fcc41` 2026-08-31 — naradi-extol.cz fetched with maxChars 5000, spec table did not render, same URL refetched with extractMode text and maxChars 4000 — identical target, smaller budget, no strategy change
- `websocket:41eaf5b3` 2026-08-31 — after a 403 on vseinstrumenti.ru reviews page, another vseinstrumenti.ru page was fetched and returned 403 again; several marketplace pages returned 300-600 B degenerate outputs without the block mode being named
**Proposal:** Enforce the existing AGENTS.md rule literally: after any tool error, name the failing parameter or blocked path before re-sending, and never resend a form that still contains the defect named in the error message.
## f81df · `re-search-own-history-instead-of-target-store` [open/high]
Questions about what the agent knows of user records were answered by grepping keep.md, MEMORY.md, history.jsonl and even the tool-results cache, while the obviously relevant store projects/proxmox/state.md was never checked until the user pointed at it. Worse, the agent stated a false negative (no HW spec in keep.md) on the very record it had written to keep.md one hour earlier the same day, without re-checking that store.
**Occurrences:** 4× in 3 sessions · first seen 2026-09-03, last seen 2026-09-03
**Evidence:**
- `websocket:9e0b406a, 2026-09-04 07:28` turn 1-2 — user: co vis o mem proxmox serveru -> agent greps only keep.md and memory/, answers o Proxmox serveru konkretnе toho moc nemam; user: a hw specifikaci nemas? -> agent greps memory/history.jsonl and .nanobot/tool-results cache, answers Ne, HW specifikaci nemam... ani v keep.md neni zadny zaznam — yet session websocket:697a708f at 06:33 the same day had written the full proxmox.hell hardware spec into keep.md via edit_file ok
- `websocket:9e0b406a, 2026-09-04 07:28` turn 3 — user: takze ani v projektu proxmox? -> agent reads projects/proxmox/state.md, finds the complete spec, admits Omlouvam se, pri prvnim dotazu jsem tam nenahlédl
- `websocket:48e52a50-1974-47b8-8493-2ca008508399` 2026-09-03 — Otevřené: Zvážit report upstream na nanobot — guard blokuje legit python -c s workspace cestami — listed from stale memory despite the write_file compaction that followed
- `websocket:50ba97da-8821-4adc-aa93-5b82b65077a3` 2026-09-02 — grep memory/history.jsonl for normy/Pozidriv -> no hits; grep -i retry -> no hits; only then ls sessions/ and grep sessions/ -> immediate hit
**Proposal:** Add a mandatory discovery step to AGENTS.md: before answering questions about user servers, hardware or infrastructure, check projects/ for a matching project store. The user himself drafted this improvement in the same session and the agent offered to patch it — it was never applied.
**Patch:** `AGENTS.md`
```diff
- ## Explicit user details
-
- Explicit user facts are stored in `keep.md`. Read at every turn.
+ ## Explicit user details
+
+ Explicit user facts are stored in `keep.md`. Read at every turn.
+
+ ## Projects (deep details)
+
+ Details about user infrastructure and ongoing work live in `projects/<name>/memory.md` and `state.md`. Before answering a question about user servers, hardware or setup, check for a matching project (find_files on projects/) — keep.md and MEMORY.md hold global facts only and are not the whole record. Never claim a record is missing until the relevant project store has been checked.
```
## f40c9 · `user-instruction-overridden` [watch/medium]
The agent substitutes its own wording or timing for what the user explicitly said. Twice in one session the user had to correct the agent: once for acting and committing a change while the user was still asking a question, once for renaming a section to its own coinage instead of the exact wording the user provided. Both were flagged by the user with visible annoyance; the first is a direct violation of the No proactive actions rule that exists in AGENTS.md.
**Occurrences:** 2× in 1 sessions · first seen 2026-09-05, last seen 2026-09-05
**Evidence:**
- `websocket:7095d367, 2026-09-04 20:40` notes restructure turn — user: oki ale bookmarks je pro ukladani odkazu, ja chci poznamky, tak asi spis ty notes, nebo ne? -> agent immediately apply_patch on notes/notes.md plus git commit; user: nemas nekde v popisu, ze nic nemas delat takhle aktivne a vsechno musim odsouhlasit? ale ted uz to nerus
- `websocket:7095d367, 2026-09-04 20:40` section rename turn — user: spis viel jsem -> agent renames the section to Videne filmy (its own coinage) instead of the wording the user gave; user: ne e, Viděl jsem, co je na tom nejasne?
**Proposal:** Strengthen the No proactive actions section: a tentative question or half-agreement is not approval, and exact user wording must be used verbatim.
**Patch:** `AGENTS.md`
```diff
- ask whether I want them carried out — never treat learning about a problem as
- a request to fix it. When in doubt, ask first.
+ ask whether I want them carried out — never treat learning about a problem as
+ a request to fix it. When in doubt, ask first.
+
+ A tentative question or half-agreement from the user is not approval — propose the exact change and wait for an explicit go-ahead before editing files or committing. When the user gives exact wording for a change, use it verbatim.
```