diff --git a/devlog/_fin/260904_repo_hygiene_campaign/000_plan.md b/devlog/_fin/260904_repo_hygiene_campaign/000_plan.md
index f7f030084a9..338920eed06 100644
--- a/devlog/_fin/260904_repo_hygiene_campaign/000_plan.md
+++ b/devlog/_fin/260904_repo_hygiene_campaign/000_plan.md
@@ -22,10 +22,10 @@ Every branch was scored on four independent axes rather than by name:
1. `git merge-base --is-ancestor
origin/dev` — plain ancestry.
2. `git cherry origin/dev
` — patch-equivalence, which catches rebases.
3. Content landing — the files the branch touches
- (`git diff --name-only origin/dev...
`) are compared two-dot against
- `origin/dev` restricted to exactly those paths. Zero remaining difference
- means the branch's content is already on `dev` even though a squash merge
- destroyed its commit identity.
+ (`git diff --no-renames --name-only origin/dev...
`) are compared two-dot
+ against `origin/dev` restricted to exactly those paths. Zero remaining
+ difference means the branch's content is already on `dev` even though a
+ squash merge destroyed its commit identity.
4. Exact reference matching against live GitHub state: open-PR head refs,
worktree-backing refs, and the PR number a scratch branch was cut for.
diff --git a/devlog/_fin/260904_repo_hygiene_campaign/010_method.md b/devlog/_fin/260904_repo_hygiene_campaign/010_method.md
index 773b6db6494..c8e98858bc5 100644
--- a/devlog/_fin/260904_repo_hygiene_campaign/010_method.md
+++ b/devlog/_fin/260904_repo_hygiene_campaign/010_method.md
@@ -7,8 +7,8 @@ A local branch is deletable when at least one holds, and no guard fires.
```
T1 ancestry git merge-base --is-ancestor
origin/dev
T2 patch-equiv git cherry origin/dev
-> no '+' lines
-T3 content paths = git diff --name-only origin/dev...
- git diff --name-only origin/dev
-- -> empty
+T3 content paths = git diff --no-renames --name-only origin/dev...
+ git diff --no-renames --name-only origin/dev
-- -> empty
T4 scratch branch name encodes a PR number whose state is MERGED or CLOSED
AND the name matches the scratch prefix set
AND the number is a WHOLE numeric token of the branch name
@@ -22,6 +22,17 @@ report "unmerged" for work that is fully shipped. T3 asks the only question that
is actually load-bearing — is there any difference left in the files this branch
claims to change.
+Correction, 2026-09-21: the 71 deletions recorded below ran the listing command
+without `--no-renames`. Rename detection must be disabled while collecting that
+path set, and any rerun after this date should use the form shown above.
+Otherwise a rename contributes only its destination: if `dev` independently
+contains the same destination but retains the source, the restricted second
+diff is empty even though the complete tip trees differ. `--no-renames` emits
+both the deleted source and added destination, so the source-side difference
+prevents a false LANDED verdict. No wrongly-LANDED branch has been identified
+from the earlier run; this is a preventive correction for the next sweep, not a
+measured incident.
+
T4 is deliberately narrow. It fires only for throwaway prefixes
(`pr*`, `rb-`, `jrb-`, `mtp/`, `big-`, `cf-`, `ocx-`, `wip/`, `backup/`,
`candidate`, `cursor-`, `midstream`) created by earlier review and rebase runs,
diff --git a/devlog/_fin/260904_repo_hygiene_campaign/100_pr_verdicts.md b/devlog/_fin/260904_repo_hygiene_campaign/100_pr_verdicts.md
index bf8e5d701c0..8990abe5a3e 100644
--- a/devlog/_fin/260904_repo_hygiene_campaign/100_pr_verdicts.md
+++ b/devlog/_fin/260904_repo_hygiene_campaign/100_pr_verdicts.md
@@ -2,9 +2,10 @@
Full classification of the 53 pull requests open when the campaign started.
Method: fetch each PR head, take the files it touches
-(`git diff --name-only origin/dev...`), then compare those exact paths
-two-dot against `origin/dev`. Remaining differences mean the work has not
-landed.
+(`git diff --no-renames --name-only origin/dev...`), then compare those
+exact paths two-dot against `origin/dev`. Remaining differences mean the work
+has not landed. (2026-09-21: `--no-renames` added so a rename cannot hide the
+deleted source side from the path set; see 010_method.md.)
## Closed