diff --git a/docs/project/readable-codebase/README.md b/docs/project/readable-codebase/README.md index 97189bb..6603dc7 100644 --- a/docs/project/readable-codebase/README.md +++ b/docs/project/readable-codebase/README.md @@ -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