Repository navigation
V49: CI that cannot be steered by a branch name - #110
Merged
Merged
Conversation
zizmor baseline on the three workflows: 28 findings, now 0. - deploy: head_ref reaches the shell through env, not template expansion - every action pinned to a commit SHA with its release in a comment - every checkout sets persist-credentials: false - new "Workflow audit (zizmor)" job, pinned zizmor from PyPI - npm run test:coverage in CI with floors from the measured baseline (64/53/54/65), @vitest/coverage-v8 added - supply-chain tests enforce pins, credentials and no injection per file - PLAN/CHANGELOG: V49 delivered, version 1.49.0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ELAjHYDyxa5zbbdcke1bMA
dapiced
marked this pull request as ready for review
October 9, 2026 07:54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Before changing anything, I ran zizmor 1.30.1 on the three workflows. It reported 28 findings. After this PR it reports 0.
template-injectiongithub.head_refdirectly inside arun:script. The branch name now reaches the shell throughenv: DEPLOY_BRANCH.unpinned-uses# v7.0.1). Dependabot already updates Actions weekly and keeps these pins current.artipackedpersist-credentials: false. No job pushes, so nothing needs the token on disk.New CI job: Workflow audit (zizmor)
pipx run --spec zizmor==1.30.1) instead of going through a third-party action.GH_TOKENso the online audits run too (impostor commits, ref confusion).Coverage floor
npm run test:coverage(V8 provider) instead ofnpm run test.Tests that enforce the rules.
supply-chain.test.tsnow checks every workflow file for three things:uses:is a SHA followed by a release comment;run:contains a${{ }}expression with a pull-request-controlled value.Against the workflows before this PR, 8 of 13 tests fail.
Docs. V49 is marked delivered in
PLAN.md,CHANGELOG.mdis regenerated, the version is now 1.49.0, and there is a plan doc indocs/superpowers/plans/.Test plan
zizmor --offline .github/workflows: 0 findings, down from 28lint,format:check,typechecknpm run test:coverage: 898 passed, every floor met. A deliberately partial run fails the gate (exit 1).npm auditgates pass with@vitest/coverage-v8addedpipxinvocation on the runner🤖 Generated with Claude Code
https://claude.ai/code/session_01ELAjHYDyxa5zbbdcke1bMA
Generated by Claude Code