Retraction: two wrong agent-grant counts

One of them shipped to main in #3469 as a "correction" of the other. Both came from the same bad instrument.

The three numbers

ClaimSendMessageListAgentssend-onlyMethod
2026-08-08, wrong 34 of 36034 file-content grep
2026-08-13, wrong, merged in #3469 23 of 37194 grep -rln over src/agents/
measured, correct 19 of 36190 parse frontmatter tools:

What the bad instrument did

grep -rln SendMessage src/agents/ answers a different question than the one being asked. It returns every file where the string appears anywhere, which folds in two distinct errors at once:

  36  agent .md files
+  1  README.md counted as an agent            -> the "37"
   4  agents that only NAME SendMessage in prose -> the "23" vs the real 19
      code-quality-reviewer, component-curator,
      eval-runner, security-auditor
      (these grant neither tool)

The four "send-only" agents in the #3469 claim were therefore not a partial grant. They were agents whose instructions mention peer messaging while granting no messaging tools at all. The gap that claim described has never existed.

The part that stings

A CI gate already asserted the correct invariant, and had since 2026-08-09, four days before the wrong claim shipped.

tests/agents/test-agent-messaging-scope.sh, written for #3316, asserts that a non-background agent carrying SendMessage must also carry ListAgents. Its own header says it counts frontmatter matches inside the --- fence only, "so a prose mention of SendMessage never false-positives the tools check". It names the exact failure mode that produced both wrong numbers.

$ bash tests/agents/test-agent-messaging-scope.sh
  Agents checked: 36
  Passed: 36
  Failed: 0

So the repository already held the right answer in executable form. The wrong claim was not a gap in coverage; it was a grep asserted over a passing gate that nobody consulted.

What this change does

Corrects the 2.1.224 and 2.1.229 rows in doctor/references/version-compatibility.md and the 2026-08-13 paragraph in shared/cc-support.json, retracting both figures by name rather than quietly swapping the number.

Points both rows at test-agent-messaging-scope.sh as the answer of record, so the next person runs the gate instead of re-deriving it with the same broken instrument.

Adds no new test. The gate that would have caught this already exists and already passes. Writing a second one would imply the coverage was missing, and it was not.