It round-tripped the pruned text through a shell variable, and command substitution strips every trailing newline while printf added exactly one back, so any file whose pruned output ended in more than one blank line diffed against a reshaped copy of itself. Comparing files directly instead brings review.sh to 270 removals across 118 files, matching validate.py, which derives the same number from the drop set rather than from a diff. The counting was wrong too: a removed `- [x] foo` is `-- [x] foo` in a unified diff, so the `^-[^-]` pattern skipped every checkbox it was meant to be counting. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PU5ZFfQFtDTFqqhvMTWdGH