Commit e54781f
committed
fix(branch_sweep): protect legacy trunks by name, not by containment
The first org-wide audit found a repo carrying a `master` branch alongside
`main`. It landed in KEEP, but only because it happened to hold unique
content — the sweep protected the *default* branch and nothing else, so a
`master` fully folded into `main` after a rename is indistinguishable from
spent work and would have been deleted.
That is not an ordinary branch. Deleting it breaks every stale clone,
bookmark, CI reference and doc link still pointing at the old trunk, and
nothing about the branch's content says so — which is exactly why the
skill's own recipe has always excluded both names (`grep -vE
'^(main|master)$'`). Protecting only the default silently implemented half of
a rule that was written whole.
So `main` and `master` are now protected on NAME, whether or not either is
this repo's default, alongside whatever the default actually is.
Found by running the audit across 25 repos before deleting anything in any of
them — the value of audit-first is that it surfaces this class of thing while
it is still hypothetical. The test fails without the guard and passes with it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KwqicJpMqmcT5RVbyNwdKq1 parent b72fc1f commit e54781f
2 files changed
Lines changed: 43 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
159 | 169 | | |
160 | 170 | | |
161 | 171 | | |
162 | | - | |
| 172 | + | |
| 173 | + | |
163 | 174 | | |
164 | 175 | | |
165 | 176 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
166 | 196 | | |
167 | 197 | | |
168 | 198 | | |
| |||
0 commit comments