一键导入
skillsaw-release
Bump the version, generate release notes, and publish a new skillsaw release to PyPI. Use when cutting a new release.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Bump the version, generate release notes, and publish a new skillsaw release to PyPI. Use when cutting a new release.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create a Pull Request for the current branch
Review an open PR before approving it
Analyze upstream specs (agentskills.io, Claude Code plugin/marketplace format, OpenClaw, MCP, CodeRabbit, APM) for changes, identify gaps in skillsaw's rule coverage, and create or update PRs to close those gaps. Use when performing periodic maintenance on the skillsaw linter.
Create a skillsaw rule plugin — a pip-installable Python package that adds custom lint rules to skillsaw. Walks through scaffolding the package, writing rules against the lint tree, testing, and publishing to PyPI. Use when a user wants to share skillsaw rules across repositories or publish them for others.
Survey the AI coding assistant and agentic tool ecosystem, assess skillsaw's competitive position, identify emerging patterns and missing capabilities, and produce a prioritized strategic report as a GitHub issue.
Fix skillsaw lint violations — apply deterministic autofixes, then resolve the remaining violations with targeted edits guided by `skillsaw explain`. Use when skillsaw reports violations, when asked to clean up lint findings, or after `skillsaw fix` leaves violations behind.
| name | skillsaw-release |
| description | Bump the version, generate release notes, and publish a new skillsaw release to PyPI. Use when cutting a new release. |
| compatibility | Requires git, gh CLI, and internet access |
| license | Apache-2.0 |
| user-invocable | true |
| metadata | {"author":"stbenjam","version":"1.0"} |
Follow these steps to release a new version of the skillsaw linter.
Before releasing, verify:
main branch, it is clean (git status), and up to
date with origin/main (git pull origin main).make test.make lint.The Makefile creates the .venv and installs dependencies automatically; run make venv first if needed.
Run the bump script:
.venv/bin/python -c "pass" || make venv
bash scripts/bump-version.sh [version]
Verify the script updated pyproject.toml, src/skillsaw/__init__.py, and
action.yml (the action's default skillsaw version). If you pass no version
argument, keep it empty — the script increments the patch version automatically.
Then run make update to regenerate generated files and catch the pinned
version references the script does NOT update:
make update
grep -rn "{old_version}" README.md docs/
Update every stale pin by hand — currently pip install skillsaw==X.Y.Z in
README.md and docs/ci.md, and the pre-commit rev: vX.Y.Z in README.md
and docs/pre-commit.md. Never touch historical "Since vX.Y.Z" lines in docs/rules/.
main is branch-protected — a direct push is rejected, so the bump goes
through a PR. First verify remotes with git remote -v (origin should
be stbenjam/skillsaw). Then run:
git checkout -b release/{version}-bump
git add -A
git commit -m "[Auto] Bump version to {version}"
git push -u origin release/{version}-bump
gh pr create --title "[Auto] Bump version to {version}" --body "Version bump for the {version} release."
Wait for all required checks to pass, merge the PR, then update local main:
gh pr checks {pr} --watch
gh pr merge {pr} --squash
git checkout main && git pull origin main
Read all commits since the last tag with git log:
git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges
Review the commits and group them into categories:
Write the release notes in markdown. Keep it concise — one line per change. Include a "## What's New" header. Skip trivial commits (version bumps, merge commits, CI-only changes).
Create the release only after the bump PR has merged, so the tag includes the bumped version files:
gh release create v{version} --title "v{version}" --notes "{release_notes}" --target main
The tag triggers the release.yml workflow to build and publish to PyPI via OIDC trusted publishing.
Check the release workflow completes:
gh run list --workflow release.yml --limit 1 --json status,conclusion
Check the conclusion: if success, the release is live on PyPI. If it failed,
review the workflow logs and report the error.