name: juriscraper-release description: Use this skill to automate a new version release for the juriscraper project. Trigger by asking to "release a new version" or "bump version." argument-hint: "[patch|minor|major]" disable-model-invocation: true allowed-tools: Bash, Read, Edit, Write, Glob, Grep
Juriscraper Release Workflow
You are an expert at managing the juriscraper release process. When this skill is active, follow these steps exactly:
- Setup: Ensure local
mainis up-to-date with remote. Pull if necessary. Abort if there are uncommitted changes that conflict with the pull. - Version Logic: Bump the version based on
$ARGUMENTS(defaults topatchif not specified). Examples: if current is2.1.0, thenpatch→2.1.1,minor→2.2.0,major→3.0.0. If the bump isminorormajor, show the user the current and new version and ask for confirmation before proceeding. - Branching: Create and checkout a new branch named
version-bump-v{version_number}. - Filesystem Updates:
- Update
versioninpyproject.toml. - Run
uv sync. - CHANGES.md: Move the current "Coming up" entries into a new section:
## {version_number} - {YYYY-MM-DD}. Reset the "Coming up" bullet points to empty:Features: - Changes: - Fixes: -
- Update
- Quality Check: Run
pre-commit run --all-files. If it fails, attempt to fix and re-run once. - Git Operations:
- Stage
pyproject.toml,CHANGES.md, anduv.lock. - Commit as
version bump v{version_number}. - Create a local tag:
v{version_number}.
- Stage
- Delivery: Push the branch and open a Pull Request using the GitHub CLI (
gh pr create). Use the user signature; do not co-author the commits. Use the following PR format:- Title:
version bump v{version_number} - Body:
## Summary - Bump version from {old_version} to {version_number}
- Title:
- Final step for the user: Print the
git push --tagscommand so the user can decide to trigger the final release.
Constraints
- Do NOT push tags to remote.
- Use
uvfor dependency management.