The last runbook entry, the rule-change procedure of spec 6.5; the entries memory-write-refused and memory-write-flagged now send the reader to it instead of to the spec. Tasks 06, 08 and 12 added the other five, because the gate needs an entry for every pointer. Checks: the edits, applied from the task's text to ref 13, give a runbook byte-identical to the reference; each before block found once; the gate passes on the reference with 1118 tests; /private/tmp unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
3.0 KiB
M5b task 14: the runbook entry sanitizer-rules
Branch: m5b (run git switch m5b; git status --short must be empty, otherwise stop)
Commit subject: docs: runbook: sanitizer-rules, how to change a sanitizer rule
Goal
The M5b spec, section 6.5, gives the procedure for changing a sanitizer rule. Tasks 06, 08 and 12
added the runbook entries that code points to; this task adds the last one, sanitizer-rules,
which no code points to, and makes the entries memory-write-refused and memory-write-flagged
send the reader to it instead of to the spec. Only docs/runbook.md changes. No code changes.
Files
- Given:
docs/plans/M5b/files/runbook-sanitizer-rules.md, appended verbatim. - Modify:
docs/runbook.md(edits R1 and R2, then the append).
The edits, exactly
R1. docs/runbook.md, in the entry memory-write-refused, under Fix.: the lines
Ordinary text refused by mistake: add it to the code-work corpus and narrow the rule, as the M5b
spec's section 6.5 says; the change reaches the agent when it is rebuilt.
become
Ordinary text refused by mistake: add it to the code-work corpus and narrow the rule, as
[`sanitizer-rules`](#sanitizer-rules) says; the change reaches the agent when it is rebuilt.
R2. docs/runbook.md, in the entry memory-write-flagged, under Fix.: the lines
stays in `notes.md`, which is append-only. If the rule catches ordinary text, narrow it as the M5b
spec's section 6.5 says.
become
stays in `notes.md`, which is append-only. If the rule catches ordinary text, narrow it as
[`sanitizer-rules`](#sanitizer-rules) says.
Steps
-
1. Edits R1 and R2. Each "before" block is in
docs/runbook.mdexactly once. Change nothing else in the file. Thengrep -c "section 6.5" docs/runbook.mdprints0. -
2. The entry. From the repository root:
{ echo; cat docs/plans/M5b/files/runbook-sanitizer-rules.md; } >> docs/runbook.mdThen
grep -c '^## sanitizer-rules$' docs/runbook.mdprints1, andgrep -c '(#sanitizer-rules)' docs/runbook.mdprints2. -
3. Run the gate.
make gate, with a shell timeout of 600000 ms. Expected last line:gate: ok, with 1118 tests, the same count as before this task: no test changes. -
4. Log and commit.
git status --shortlistsdocs/runbook.mdand your log as modified, and nothing else. Stage withgit add docs/runbook.md docs/implementer-log.md, then commit asAGENTS.mdsays.
Done when
make gateprintsgate: okwith 1118 tests.git diff HEAD~1 --statlists onlydocs/runbook.mdanddocs/implementer-log.md.
Stop and report if
- A "before" block of R1 or R2 is not in
docs/runbook.mdexactly as shown, or is there more than once. docs/runbook.mdalready has a line## sanitizer-rules.- A grep in step 1 or 2 prints another number.
- The gate fails, or passes with a count other than 1118. This task changes no code, so do not try to fix it: stop, and give the gate's last lines.