You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/superpowers/plans/2026-05-25-dependabot-security-remediation.md
+37-35Lines changed: 37 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,7 @@ The implementation must account for these open alerts:
44
44
- Read: `.github/dependabot.yml`
45
45
- Read: `yarn.lock`
46
46
47
-
-[]**Step 1: Confirm the branch is clean except planned docs**
47
+
-[x]**Step 1: Confirm the branch is clean except planned docs**
48
48
49
49
Run:
50
50
@@ -54,7 +54,7 @@ git status --short --branch
54
54
55
55
Expected: branch `codex/dependabot-security-remediation`; no uncommitted dependency files before implementation starts.
56
56
57
-
-[]**Step 2: Capture the open GitHub alerts**
57
+
-[x]**Step 2: Capture the open GitHub alerts**
58
58
59
59
Run:
60
60
@@ -64,7 +64,7 @@ gh api -H 'Accept: application/vnd.github+json' '/repos/OpenAPI-Qraft/openapi-qr
64
64
65
65
Expected: the command prints the alerts listed in the Alert Checklist. If GitHub reports additional alerts, append them to the local working checklist before editing dependencies.
66
66
67
-
-[]**Step 3: Capture parent packages for every alert**
67
+
-[x]**Step 3: Capture parent packages for every alert**
68
68
69
69
Run:
70
70
@@ -77,7 +77,7 @@ done
77
77
78
78
Expected: output shows the current parents. Use this output to decide whether the next task can remove the alert through top-level package updates or needs `resolutions`.
@@ -94,17 +94,17 @@ Expected: output includes the currently resolved entries that GitHub flags. Save
94
94
- Modify: `website/package.json`
95
95
- Modify: `yarn.lock`
96
96
97
-
-[]**Step 1: Update direct and nearby parents with Yarn**
97
+
-[x]**Step 1: Update direct and nearby parents with Yarn**
98
98
99
99
Run:
100
100
101
101
```bash
102
-
yarn up -R turbo@^2.9.14 @docusaurus/core@3.10.1 @docusaurus/preset-classic@3.10.1 @docusaurus/remark-plugin-npm2yarn@^3.10.1 @docusaurus/module-type-aliases@3.10.1 @docusaurus/types@3.10.1
102
+
yarn up turbo @docusaurus/core @docusaurus/preset-classic @docusaurus/remark-plugin-npm2yarn @docusaurus/module-type-aliases @docusaurus/types
103
103
```
104
104
105
-
Expected: Yarn updates `package.json`, `website/package.json`, and `yarn.lock`. If Yarn refuses because a package descriptor is not present, remove only that absent descriptor from the command and rerun the reduced command.
105
+
Expected: Yarn updates `package.json`, `website/package.json`, and `yarn.lock`. Do not use `-R` with explicit ranges because Yarn 4 rejects ranges in recursive mode.
106
106
107
-
-[]**Step 2: Check which alerts remain after the top-level pass**
107
+
-[x]**Step 2: Check which alerts remain after the top-level pass**
108
108
109
109
Run:
110
110
@@ -117,7 +117,7 @@ done
117
117
118
118
Expected: `turbo` resolves to `2.9.14` or newer. `webpack-dev-server` should resolve to `5.2.4` if the Docusaurus update was enough. Other transitive packages may still need root `resolutions`.
119
119
120
-
-[]**Step 3: Inspect the dependency diff**
120
+
-[x]**Step 3: Inspect the dependency diff**
121
121
122
122
Run:
123
123
@@ -133,28 +133,30 @@ Expected: dependency changes are limited to manifest version bumps and lockfile
133
133
- Modify: `package.json`
134
134
- Modify: `yarn.lock`
135
135
136
-
-[]**Step 1: Add root `resolutions` for still-vulnerable transitive packages**
136
+
-[x]**Step 1: Add root `resolutions` for still-vulnerable transitive packages**
137
137
138
138
Edit the root `package.json``resolutions` object. Keep existing entries and add the following entries only for packages that still resolve to vulnerable versions after Task 2:
Expected: Yarn completes successfully and updates `yarn.lock`. If Yarn reports an incompatible peer or resolution warning, keep the output and continue to Task 4; warnings are acceptable only if build/test verification passes.
166
168
167
-
-[]**Step 3: Verify immutable install**
169
+
-[x]**Step 3: Verify immutable install**
168
170
169
171
Run:
170
172
@@ -181,7 +183,7 @@ Expected: success with no lockfile changes. If it wants to modify `yarn.lock`, i
181
183
- Read: `website/package.json`
182
184
- Read: `yarn.lock`
183
185
184
-
-[]**Step 1: Re-run `yarn why` for every alert package**
186
+
-[x]**Step 1: Re-run `yarn why` for every alert package**
Expected: no lockfile header resolves an alerted package to the vulnerable ranges from the Alert Checklist.
220
222
221
-
-[]**Step 3: Recheck GitHub alert state for this repository**
223
+
-[x]**Step 3: Recheck GitHub alert state for this repository**
222
224
223
225
Run:
224
226
@@ -235,7 +237,7 @@ Expected: GitHub may still show alerts until the branch is pushed and scanned. U
235
237
- Read: `turbo.json`
236
238
- Read: the failing workspace's `package.json` when a verification command names a specific workspace.
237
239
238
-
-[]**Step 1: Run typecheck**
240
+
-[x]**Step 1: Run typecheck**
239
241
240
242
Run:
241
243
@@ -245,7 +247,7 @@ yarn typecheck
245
247
246
248
Expected: success. If it fails, identify the first workspace and error. Fix only failures caused by dependency changes.
247
249
248
-
-[]**Step 2: Run lint**
250
+
-[x]**Step 2: Run lint**
249
251
250
252
Run:
251
253
@@ -255,7 +257,7 @@ yarn lint
255
257
256
258
Expected: success. If it fails, identify whether the failure is dependency-induced or pre-existing. Fix dependency-induced failures.
257
259
258
-
-[]**Step 3: Run tests**
260
+
-[x]**Step 3: Run tests**
259
261
260
262
Run:
261
263
@@ -265,7 +267,7 @@ yarn test
265
267
266
268
Expected: success. If a test fails due to a dependency behavior change, fix the implementation or adjust the dependency strategy rather than weakening assertions.
267
269
268
-
-[]**Step 4: Run publishable build**
270
+
-[x]**Step 4: Run publishable build**
269
271
270
272
Run:
271
273
@@ -275,7 +277,7 @@ yarn build:publishable
275
277
276
278
Expected: success. This is required because `turbo`, Docusaurus/Babel/Webpack, and lockfile overrides can affect build tooling.
277
279
278
-
-[]**Step 5: Run website verification if Docusaurus changed**
280
+
-[x]**Step 5: Run website verification if Docusaurus changed**
279
281
280
282
Run this when `website/package.json` or Docusaurus-related lockfile entries changed:
Expected: success. If the website build fails because Docusaurus 3.10.1 changed behavior, either fix the website issue or revert the Docusaurus bump and rely on narrower `resolutions`.
287
289
288
-
-[]**Step 6: Run relevant e2e if build tooling changed**
290
+
-[x]**Step 6: Run relevant e2e if build tooling changed**
289
291
290
-
Run:
292
+
Run the checkout's available CI-like e2e script:
291
293
292
294
```bash
293
-
cd e2e && yarn e2e:tree-shaking-bundlers-local
295
+
cd e2e &&NPM_PUBLISH_REGISTRY=http://localhost:4873 UNSAFE_HTTP_WHITELIST=localhost yarn e2e:test
294
296
```
295
297
296
-
Expected: success if the command is available and the local e2e environment is configured. If it is unavailable because the external fixture is not present, record the exact missing prerequisite and do not mark e2e as passed.
298
+
Expected: success if the local e2e environment is configured. If it leaves local fixture install/build artifacts behind, clean those artifacts before committing.
297
299
298
300
### Task 6: Commit Dependency Remediation
299
301
@@ -302,7 +304,7 @@ Expected: success if the command is available and the local e2e environment is c
0 commit comments