Skip to content

Commit 17622c7

Browse files
committed
docs: mark steps complete in Dependabot security remediation plan
1 parent 84b9c7b commit 17622c7

1 file changed

Lines changed: 37 additions & 35 deletions

File tree

docs/superpowers/plans/2026-05-25-dependabot-security-remediation.md

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ The implementation must account for these open alerts:
4444
- Read: `.github/dependabot.yml`
4545
- Read: `yarn.lock`
4646

47-
- [ ] **Step 1: Confirm the branch is clean except planned docs**
47+
- [x] **Step 1: Confirm the branch is clean except planned docs**
4848

4949
Run:
5050

@@ -54,7 +54,7 @@ git status --short --branch
5454

5555
Expected: branch `codex/dependabot-security-remediation`; no uncommitted dependency files before implementation starts.
5656

57-
- [ ] **Step 2: Capture the open GitHub alerts**
57+
- [x] **Step 2: Capture the open GitHub alerts**
5858

5959
Run:
6060

@@ -64,7 +64,7 @@ gh api -H 'Accept: application/vnd.github+json' '/repos/OpenAPI-Qraft/openapi-qr
6464

6565
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.
6666

67-
- [ ] **Step 3: Capture parent packages for every alert**
67+
- [x] **Step 3: Capture parent packages for every alert**
6868

6969
Run:
7070

@@ -77,7 +77,7 @@ done
7777

7878
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`.
7979

80-
- [ ] **Step 4: Capture vulnerable lockfile entries**
80+
- [x] **Step 4: Capture vulnerable lockfile entries**
8181

8282
Run:
8383

@@ -94,17 +94,17 @@ Expected: output includes the currently resolved entries that GitHub flags. Save
9494
- Modify: `website/package.json`
9595
- Modify: `yarn.lock`
9696

97-
- [ ] **Step 1: Update direct and nearby parents with Yarn**
97+
- [x] **Step 1: Update direct and nearby parents with Yarn**
9898

9999
Run:
100100

101101
```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
103103
```
104104

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.
106106

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**
108108

109109
Run:
110110

@@ -117,7 +117,7 @@ done
117117

118118
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`.
119119

120-
- [ ] **Step 3: Inspect the dependency diff**
120+
- [x] **Step 3: Inspect the dependency diff**
121121

122122
Run:
123123

@@ -133,28 +133,30 @@ Expected: dependency changes are limited to manifest version bumps and lockfile
133133
- Modify: `package.json`
134134
- Modify: `yarn.lock`
135135

136-
- [ ] **Step 1: Add root `resolutions` for still-vulnerable transitive packages**
136+
- [x] **Step 1: Add root `resolutions` for still-vulnerable transitive packages**
137137

138138
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:
139139

140140
```json
141141
{
142-
"@babel/plugin-transform-modules-systemjs": "npm:^7.29.4",
143-
"brace-expansion@npm:^5.0.5": "npm:^5.0.6",
144-
"fast-uri": "npm:^3.1.2",
145-
"follow-redirects": "npm:^1.16.0",
146-
"ip-address": "npm:^10.1.1",
142+
"@babel/plugin-transform-modules-systemjs@npm:^7.28.5": "npm:^7.29.4",
143+
"@cypress/request@npm:3.0.10/uuid": "npm:11.1.1",
144+
"fast-uri@npm:^3.0.1": "npm:^3.1.2",
145+
"follow-redirects@npm:^1.0.0": "npm:^1.16.0",
146+
"ip-address@npm:^10.0.1": "npm:^10.1.1",
147+
"minimatch@npm:10.2.5/brace-expansion": "npm:^5.0.6",
147148
"postcss": "npm:^8.5.10",
148-
"qs": "npm:^6.15.2",
149-
"uuid": "npm:^11.1.1",
150-
"webpack-dev-server": "npm:^5.2.4",
151-
"ws": "npm:^8.20.1"
149+
"qs@npm:~6.14.0": "npm:^6.15.2",
150+
"qs@npm:~6.14.1": "npm:^6.15.2",
151+
"sockjs@npm:0.3.24/uuid": "npm:11.1.1",
152+
"webpack-dev-server@npm:^5.2.2": "npm:^5.2.4",
153+
"ws@npm:^8.18.0": "npm:^8.20.1"
152154
}
153155
```
154156

155157
Expected: `package.json` remains valid JSON. Existing qraft-specific security overrides remain in place.
156158

157-
- [ ] **Step 2: Refresh the lockfile**
159+
- [x] **Step 2: Refresh the lockfile**
158160

159161
Run:
160162

@@ -164,7 +166,7 @@ yarn install
164166

165167
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.
166168

167-
- [ ] **Step 3: Verify immutable install**
169+
- [x] **Step 3: Verify immutable install**
168170

169171
Run:
170172

@@ -181,7 +183,7 @@ Expected: success with no lockfile changes. If it wants to modify `yarn.lock`, i
181183
- Read: `website/package.json`
182184
- Read: `yarn.lock`
183185

184-
- [ ] **Step 1: Re-run `yarn why` for every alert package**
186+
- [x] **Step 1: Re-run `yarn why` for every alert package**
185187

186188
Run:
187189

@@ -208,7 +210,7 @@ ip-address >= 10.1.1
208210
follow-redirects >= 1.16.0
209211
```
210212

211-
- [ ] **Step 2: Inspect lockfile package headers**
213+
- [x] **Step 2: Inspect lockfile package headers**
212214

213215
Run:
214216

@@ -218,7 +220,7 @@ rg -n '^(turbo|ws|qs|uuid|webpack-dev-server|brace-expansion|postcss|@babel/plug
218220

219221
Expected: no lockfile header resolves an alerted package to the vulnerable ranges from the Alert Checklist.
220222

221-
- [ ] **Step 3: Recheck GitHub alert state for this repository**
223+
- [x] **Step 3: Recheck GitHub alert state for this repository**
222224

223225
Run:
224226

@@ -235,7 +237,7 @@ Expected: GitHub may still show alerts until the branch is pushed and scanned. U
235237
- Read: `turbo.json`
236238
- Read: the failing workspace's `package.json` when a verification command names a specific workspace.
237239

238-
- [ ] **Step 1: Run typecheck**
240+
- [x] **Step 1: Run typecheck**
239241

240242
Run:
241243

@@ -245,7 +247,7 @@ yarn typecheck
245247

246248
Expected: success. If it fails, identify the first workspace and error. Fix only failures caused by dependency changes.
247249

248-
- [ ] **Step 2: Run lint**
250+
- [x] **Step 2: Run lint**
249251

250252
Run:
251253

@@ -255,7 +257,7 @@ yarn lint
255257

256258
Expected: success. If it fails, identify whether the failure is dependency-induced or pre-existing. Fix dependency-induced failures.
257259

258-
- [ ] **Step 3: Run tests**
260+
- [x] **Step 3: Run tests**
259261

260262
Run:
261263

@@ -265,7 +267,7 @@ yarn test
265267

266268
Expected: success. If a test fails due to a dependency behavior change, fix the implementation or adjust the dependency strategy rather than weakening assertions.
267269

268-
- [ ] **Step 4: Run publishable build**
270+
- [x] **Step 4: Run publishable build**
269271

270272
Run:
271273

@@ -275,7 +277,7 @@ yarn build:publishable
275277

276278
Expected: success. This is required because `turbo`, Docusaurus/Babel/Webpack, and lockfile overrides can affect build tooling.
277279

278-
- [ ] **Step 5: Run website verification if Docusaurus changed**
280+
- [x] **Step 5: Run website verification if Docusaurus changed**
279281

280282
Run this when `website/package.json` or Docusaurus-related lockfile entries changed:
281283

@@ -285,15 +287,15 @@ yarn workspace openapi-qraft-website build
285287

286288
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`.
287289

288-
- [ ] **Step 6: Run relevant e2e if build tooling changed**
290+
- [x] **Step 6: Run relevant e2e if build tooling changed**
289291

290-
Run:
292+
Run the checkout's available CI-like e2e script:
291293

292294
```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
294296
```
295297

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.
297299

298300
### Task 6: Commit Dependency Remediation
299301

@@ -302,7 +304,7 @@ Expected: success if the command is available and the local e2e environment is c
302304
- Modify: `website/package.json` if changed
303305
- Modify: `yarn.lock`
304306

305-
- [ ] **Step 1: Check final diff**
307+
- [x] **Step 1: Check final diff**
306308

307309
Run:
308310

@@ -312,7 +314,7 @@ git diff -- package.json website/package.json yarn.lock
312314

313315
Expected: diff contains dependency remediation only.
314316

315-
- [ ] **Step 2: Check whitespace and patch sanity**
317+
- [x] **Step 2: Check whitespace and patch sanity**
316318

317319
Run:
318320

0 commit comments

Comments
 (0)