con un clic
secure-ci
Use when user asks to secure a repo's CI
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Use when user asks to secure a repo's CI
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Use when dropping a Python version from a project
Use when exploring, triaging, or categorizing all of a repository's GitHub issues, like finding verifiable bugs or grouping issues by topic
Use when a branch and PR is requested explicitly
Review code quality and packaging usuing sp-repo-review for Scientific Python projects
Add a minimum version test job to a noxfile
| name | secure-ci |
| description | Use when user asks to secure a repo's CI |
| license | MIT |
| compatibilty | Requires uvx (from uv) and npx (from nodejs). |
.pre-commit-config.yaml exists; don't add one if it's not already there.Fully pin GHA. Use npx actions-up -y --min-age=7 --style=sha --include-branches to update and pin. Make sure all the updates are to the
same or newer tags - the sorting mechanim for actions-up fails sometimes, like
going from year based releases to old SemVer releases, or grabbing a tag that's
not a normal release.
The repo should use zizmor. If .pre-commit-config.yaml exists, this is a good hook:
- repo: https://github.com/zizmorcore/zizmor-pre-commit
rev: a4727cbbcd26d7098e96b9cb738169b59711ae51 # frozen: v1.24.1
hooks:
- id: zizmor
files: "^\\.github"
args: [--persona=pendatic]
Run uvx zizmor --persona=pedantic .github directly. Fix up the problems reported.
You can request auto-fixes with --fix=safe or --fix=all for some of the checks.
Common problems / fixes:
.github/zizmor.yaml.Template expansion fix example, before:
- run: uv run noxfile.py -s test-${{ matrix.python }}
After:
- run: uv run noxfile.py -s test-$PYTHON
env:
PYTHON: ${{ matrix.python }}
If the user is using pre-commit, run prek auto-update --freeze --cooldown-days 7 to update and pin to sha.
If the user does not use .github/dependabot.yml, add one like this:
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
groups:
github-actions:
patterns:
- "*"
cooldown:
default-days: 7
The old alias "actions" can be updated to "github-actions".
If the package has a .pre-commit-config.yaml but there's no ci: field in
it, add this to .github/dependabot.yml:
- package-ecosystem: "pre-commit"
directory: "/"
schedule:
interval: "monthly"
groups:
pre-commit:
patterns:
- "*"
cooldown:
default-days: 7
If a user does have a ci: section in .pre-commit-config.yaml, but doesn't
have autoupdate_schedule set, set it.
All deploy jobs should run seperatly from build jobs, to minimize the number of packages that run with access to deploy permissions. Use artifact upload/download to provide the required files for the deploy job.
If this repo uses uv anywhere and has a pyproject.toml, add:
[tool.uv]
exclude-newer = "7 days"
If there's any sign this repo uses pixi, add exclude-newer = "7d" to the
tool pixi table in pyproject.toml or pixi.toml
Run prek -a --quiet if using pre-commit to make sure all changes pass.
Provide a concise bullet point summary of each change.