|
1 | 1 | # v0.5.4 engineering plan |
2 | 2 |
|
3 | 3 | Date: 2026-08-16 |
4 | | -Status: in progress |
| 4 | +Status: awaiting release approval |
5 | 5 | Release boundary: candidate source may be committed and pushed; tag, GitHub Release, npm publish |
6 | 6 | and the movable `v1` Action tag require a separate author approval. |
7 | 7 |
|
@@ -42,7 +42,7 @@ opens a lower-friction support channel and submits the one currently eligible cu |
42 | 42 | | G3 | First-trial and v0.5.4 candidate surfaces | Main-branch first trial is unpinned; CI/release/trusted install examples stay pinned; candidate version surfaces agree on 0.5.4 while published release state remains 0.5.3 | completed | |
43 | 43 | | G4 | Focused and final verification | New focused tests pass, generated artifacts are byte-current, one bounded complete-suite pass and Skill Creator validation pass | completed | |
44 | 44 | | G5 | Authorized external actions | Discussions is enabled and verified; awesome-devsecops rules are rechecked and a factual v0.5.3 PR is submitted if still eligible | completed | |
45 | | -| G6 | Release approval checkpoint | Candidate commits and external evidence are pushed; exact release operations and residual risks are presented to the author | in progress | |
| 45 | +| G6 | Release approval checkpoint | Candidate commits and external evidence are pushed; exact release operations and residual risks are presented to the author | completed | |
46 | 46 | | G7 | Public v0.5.4 release | Signed tag/assets, GitHub Release, npm provenance, `v1` consumer verification and release-state update | blocked on explicit approval | |
47 | 47 |
|
48 | 48 | ## G0 - Scope and baseline |
@@ -255,6 +255,42 @@ Before asking for release approval, report: |
255 | 255 | - current published state still pinned to v0.5.3; |
256 | 256 | - the exact G7 commands/actions that approval would authorize. |
257 | 257 |
|
| 258 | +Completion record (2026-08-16): |
| 259 | + |
| 260 | +- Implementation candidate `0f4a64e34bdd0b426d72be5e1989d4b19f9c653e` is pushed to `main`. |
| 261 | + Remote CI and CodeQL both completed successfully: |
| 262 | + [CI run 31948081852](https://github.com/parousia8888/web-app-security-skill/actions/runs/31948081852) |
| 263 | + and [CodeQL run 31948081858](https://github.com/parousia8888/web-app-security-skill/actions/runs/31948081858). |
| 264 | +- Rule-contract conformance: 22 contracts, 22 positive passes, 22 negative passes, 0 positive |
| 265 | + failures, 0 negative failures and 0 evidence-state mismatches. This remains an author-maintained |
| 266 | + planted contract suite, not production precision or recall evidence. |
| 267 | +- Real-world regression corpus: 5 cases passed, 0 failed; 4 resolved historical regressions and |
| 268 | + 1 unsuppressed expected benign match. These minimized cases guard named failures only and are not |
| 269 | + a representative vulnerability benchmark. |
| 270 | +- GitHub Discussions reads back enabled at |
| 271 | + <https://github.com/parousia8888/web-app-security-skill/discussions>. The awesome-devsecops |
| 272 | + submission remains OPEN and mergeable at |
| 273 | + [devsecops/awesome-devsecops#172](https://github.com/devsecops/awesome-devsecops/pull/172), |
| 274 | + head `b24339b5ac2e16cda9eca5e92ecd847493bd38bc`; it is not an accepted listing or endorsement. |
| 275 | +- `npm pack --dry-run --json` produced candidate `0.5.4` with 140 files and 335872 packed bytes. |
| 276 | + Both new evidence sets are included; tests, adoption working material and engineering plans are |
| 277 | + excluded from the package. |
| 278 | +- Public state remains unchanged: npm `latest` is `0.5.3`; signed `v0.5.3` and movable `v1` both |
| 279 | + resolve to `621e0bc2ad044f9390fa9d567bf4b9fca138a959`; release-state and installer trust still record |
| 280 | + v0.5.3. |
| 281 | +- A bounded live-surface check found one pre-existing metadata drift: the public v0.5.3 GitHub |
| 282 | + Release body does not contain the repository's current canonical promise, so |
| 283 | + `node scripts/check-p7-surfaces.mjs --live` exits 1. The old published Release was not rewritten; |
| 284 | + v0.5.4 must publish its own canonical text and then pass the live check against the new state. |
| 285 | +- Residual product limits are unchanged: v0.5.4 adds no detector family, data-flow analysis, |
| 286 | + generic suppression engine or production accuracy claim. The real-world corpus is deliberately |
| 287 | + small, and the curated-list PR remains third-party pending work. |
| 288 | +- Release approval authorizes only G7: freeze the candidate; create and push signed `v0.5.4`; |
| 289 | + publish GitHub assets, SBOM, checksums and provenance; publish npm `0.5.4` with provenance and |
| 290 | + compare its tarball to the tag; move signed `v1`; run consumer verification; then update |
| 291 | + release-state, installer trust and public metadata from observed facts. None of these release |
| 292 | + mutations has been performed at this checkpoint. |
| 293 | + |
258 | 294 | ## G7 - Release procedure after approval |
259 | 295 |
|
260 | 296 | 1. Freeze the approved candidate commit and update release evidence/checksums. |
|
0 commit comments