When running banner-style sweeps (e.g., updating “Session 1 of 2 hardening pass” → “Sessions 1+2 + project-level CLAUDE.md complete”), the same banner phrase often repeats further down in subsections. A single-pass sweep on the top-of-file occurrence will miss the buried ones.
Why: Real incident 2026-04-28T18:30 on code-inheritv2-test-suite second /review-plan verification. The original doc-reconciliation pass (commit 22fe87d) updated:
- README.md top-of-file banner (“Current status — Phase 0 scaffolding … Session 1 of 2”) ✓
- but missed the same framing in §“Build plan” subsection at line 92 (“BUILD-PLAN.md v1.0 … Session 2 of 2 will land BUILD-PLAN.md v1.1”) ✗
- and missed THIRD-PARTY-DEPENDENCIES.md line 14 (“Phase-0 scaffolding commit; Session 1 of 2 hardening pass”) ✗
The second /review-plan pass caught both as NEW-A + NEW-B; cleared in commit 501440c. Without the second pass, both would have shipped to Sprint S1 with stale framing.
How to apply:
When updating any recurring banner phrase or version stamp:
- Grep for ALL occurrences first:
grep -n "phrase" path/to/fileorgrep -rn "phrase" repo/— get the full list of hits - Update every hit in the same commit, not just the first one
- Specifically watch for:
- Status banners (“Session 1 of 2”, “Phase 0 scaffolding”)
- Version stamps in version-pin lines AND in body-text references
- File-renamed references (when a file is
git mv-ed, grep all occurrences of the OLD filename across the repo) - “Last updated” / “as of” lines that often appear in multiple files
- After commit, re-grep to verify zero stragglers
- The 2-pass
/review-planpattern is the safety net — but the discipline should catch it on first pass