snyk-ux-security
Installation
SKILL.md
REFERENCE.md. Scan -> reachability -> act -> verify. $ARGUMENTS: paths, globs or findings.
Report-only runs stop after scan and reachability: no monitor, ignore removal, or edits. Detect package.json, go.mod, MODULE.bazel, or bazel/repositories.bzl. Process sequentially in the primary context; worktree lanes require that the user explicitly delegates or invokes /swarm. Bazel checks backports; draft PRs.
- Prepare: verify
snyk/ghauth; reuse an existing Snyk project. Never create one from an audit/sweep branch or YYYY-MM-DD identity. Infer reviewers from CODEOWNERS, thengit log; flags win. - Revisit: re-triage
.snyk; remove stale ignores withsnyk ignore --remove --id=<id>and markcleaned-up. - Scan:
snyk test; JS addsbun audit, Gogovulncheck ./.... Runsnyk monitoronly when the requested endpoint includes a Snyk cloud update for one existing project. - Reachability: use
bun why,go mod why, imports, callers, and the vulnerable symbol. Use/steelmanfor transitives and/diagnosing-bugsbefore apackage.jsonfix. Its admission gate permits a direct dep, reachable parent, or proven last-resort override. Direct dep absence means do not add it; without vulnerable-symbol reachability, a bump makes no sense: dismiss the unproven finding. - Act: default unreachable findings to
snyk ignore --id=<id> --reason='<why>' --expiry=<date>. Always include.snykin any requested delivery; confirmIgnored. PR text alone is not enough. Reachable: use/upgrade-dependencyand its supply-chain gate; direct dep, parent, Remove dependency surface third, then last-resortresolutions/overrides/replace. Override list growth is a smell: lockfile bloat scales poorly. - Ecosystem gates:
- JS: minimum release age gate audit, Socket.dev web check, React 18
bun info <pkg>@<v> peerDependencies.react; recordreact19-blocked. Runbun update,bun install,bun install --yarn. Commit both lockfiles (bun.lock,yarn.lock); Snyk IO needsyarn.lock. Do not create, update, or commitpackage-lock.json;lockfile-sync-checkenforces dual-lockfile sync. - Go:
go get -u,go mod tidy; commitgo.mod/go.sum. - Bazel: update applicable manifests; run
bazel mod deps --lockfile_mode=update; preserve mirror/FIPS/CMVP.
- JS: minimum release age gate audit, Socket.dev web check, React 18
- Verify: read changelogs/
BREAKING; migrate 7 -> 8 -> 9 incrementally. Commitrefactor(deps)groups unless stopped earlier. Never defer real vulnerabilities; escalate. JS:bun run lint:fix,bun run type:check,bun test, build. Go:go build ./...,go test ./...,go vet ./...,govulncheck ./.... - Deliver: run
/resilience-reviewand/review;/to-ticketsonly when ticket publication is requested. If the requested endpoint includes a commit or PR, commitfix(deps)and open a PR only when requested. Usegh pr create --assignee <triggerer> --reviewer <team-group> --label security,...; resolve viagh api user --jq .login, require a CODEOWNERS team group, auto-add security for dismissals/overrides. Applyteam/,dismissals,overrides-added,react19-blocked,cleaned-up. Rungh workflow runonly when cloud review was requested.
Report path, ecosystem, branch/PR, and outcome counts. Never run advisory code or expose tokens.