docs: record RD-23's two acceptance misses as recurrences

Both repeat a habit this README already documents, so they belong beside it
rather than as new entries.

`git grep -c` counts lines: a symbol that a file imports and then calls is two
lines, never one. And a check must not grep for a word that the ticket's own
mandated snippet contains — RD-23 required the upload controller's
`dispatch:` property and then asserted zero occurrences of `dispatch`.

The agent hit both, refused to distort the code, and corrected the ticket text.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
eho
2026-09-04 23:18:26 +02:00
co-authored by Claude Opus 5
parent 11e3191099
commit d5a7a25a78
+10 -2
View File
@@ -193,7 +193,12 @@ Three rules when you write a ticket file, because the agent reads its ticket and
`uploadCtl.onRetry` exists in `upload-controller.ts`.
- RD-08 said "no machine changes" while also requiring a repo-wide grep to come back
clean, which forced comment edits in three machines. The two instructions contradicted
each other.
each other. RD-23 repeated it exactly: its Decisions block mandated the line
`dispatch: (msg) => this.uploadMsg.emit(msg)` — the upload controller's own property name —
while its acceptance demanded zero occurrences of `dispatch` in the step files. **Grep the
text your own mandated snippet contains, and you have written a check that cannot pass.**
Anchor on what you actually forbid: here, `this.dispatch` or `store.dispatch`, not the bare
word.
- RD-09 grepped `docs/ apps/ libs/ .claude/`, which also matched this backlog's own ticket
files (they name the deleted method as the history of `done` work) and 22 gitignored
abandoned worktrees. Satisfying it literally would have corrupted completed-ticket
@@ -234,7 +239,10 @@ Three rules when you write a ticket file, because the agent reads its ticket and
live on one line of a single-line type declaration, so the honest answer is `1`. The
agent correctly refused to reformat the type across four lines to satisfy the number.
When you want occurrences, use `grep -o … | wc -l`; when a line count is what you mean,
say so.
say so. **A symbol you import and then use is two lines, never one.** RD-23 repeated the
mistake in the other direction, asserting `git grep -c "createUploadController"` would be
1 in the file that both imports and calls it. The only way to reach 1 is an import alias
that exists solely to satisfy the check.
- **Scope every acceptance command to the ticket's Files list, never to a parent
directory.** This is the habit most often broken, including by the supervisor in RD-12:
the check `git grep "ActionState" -- apps/ssp/src/app/brief` cannot pass, because