release-workflow
Skill0 starsChanged 8 months agoMITView on GitHub
Ship a feature branch: PR → CI → merge → release → docs. Invoke with: /release-workflow <version>
- Pipes a download into a shell
- Commits and pushes
3 other projects use a version of this.
Adopted by
Most recently taken up by
- sametbrr/github-managertheir own version, first seen Nov 2, 2026
- SUDARSHANCHAUDHARI/DroidForgetheir own version, first seen Nov 1, 2026
- fxstein/ai-todotheir own version, first seen Jan 31, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- fxstein/ai-todo★ 16same name
- SUDARSHANCHAUDHARI/DroidForge★ 1same name
- sametbrr/github-manager★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- address-issuesSkill
- create-prSkill
- release-versionSkill
- review-prSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 11 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
11
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Before running this workflow, verify:
- Distinctive: line 17
All work is committed (git status is clean)
- Very specific: line 18
All tests pass locally: PYTHONPATH=src pytest tests/
- Very specific: line 23
Update pyproject.toml with the release version:
- Distinctive: line 61
All checks must pass. If any fail:
- Very specific: line 62
Read the failure logs: gh run view <run-id> --log-failed
- Distinctive: line 94
Wait for completion. If it fails:
- Distinctive: line 130
Verify the release works end-to-end by reinstalling from scratch on this system.
- Very specific: line 138
Do NOT remove ~/.crux/ — we want to verify the new version works with existing data.
- Distinctive: line 161
If a new command was added: run it and check output
- Distinctive: line 162
If a command was renamed: verify old name fails and new name works
- Very specific: line 163
If auth was changed: run crux mcp auth and check the output
- Distinctive: line 176
If the smoke test fails, investigate whether it's a packaging issue (wrong files included) or a code issue (bug in the release).
- Distinctive: line 180
If something goes wrong after tagging but before PyPI publish:
- Distinctive: line 186
If already published to PyPI, you cannot delete the version.
- Distinctive: line 200
Always verify locally before creating the PR
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Release Workflow
Ship a feature branch to production: PR → CI → merge → tag → PyPI → docs.
Version argument: The version number is passed as the first argument (e.g., /release-workflow 1.0.2). All steps below use this version.
Prerequisites
Before running this workflow, verify:
- You are on a feature branch (not main)
- All work is committed (
git statusis clean) - All tests pass locally:
PYTHONPATH=src pytest tests/ - The version number follows semver and is greater than the current version in
pyproject.toml
Step 1: Bump Version
Update pyproject.toml with the release version:
# In pyproject.toml, change:
version = "<VERSION>"Commit:
git add pyproject.toml
git commit -m "chore: bump version to <VERSION>"Step 2: Push Branch & Create PR
git push -u origin HEAD
gh pr create --title "<PR title from branch context>" --body "$(cat <<'EOF'
## Summary
<summarize changes from git log>
## Test plan
- [ ] All unit tests pass
- [ ] All integration tests pass
- [ ] All E2E tests pass
- [ ] Lint passes (ruff check + format)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"Step 3: Wait for CI
gh pr checks --watchAll checks must pass. If any fail:
- Read the failure logs:
gh run view <run-id> --log-failed - Fix the issue on the feature branch
- Push and re-check
Step 4: Merge PR
gh pr merge --squash --delete-branchStep 5: Tag Release
git checkout main
git pull
git tag v<VERSION>
git push origin v<VERSION>This triggers .github/workflows/release.yml which:
- Runs full CI gate (validate, lint, security, unit tests, integration tests)
- Builds sdist + wheel
- Publishes to PyPI via trusted publisher
- Creates GitHub Release with auto-generated changelog
Step 6: Verify Release Pipeline
gh run list --workflow=release.yml --limit=1
gh run watchWait for completion. If it fails:
- CI gate failure: check test output
- Build failure: check
uv build/twine checkoutput - PyPI publish failure: check trusted publisher config in repo settings
Step 7: Deploy Versioned Docs
The docs pipeline does NOT auto-trigger from releases created by GitHub Actions. You must manually dispatch with the version number:
gh workflow run docs.yml -f version=<VERSION>This deploys the docs as version <VERSION> and sets it as the latest alias.
Verify:
gh run list --workflow=docs.yml --limit=1
gh run watchStep 8: Final Verification — Remote
# PyPI package available
pip index versions crux-cli
# GitHub release page
gh release view v<VERSION>
# Docs site
open https://crux-cli.github.io/crux/Step 9: Smoke Test — Fresh Install
Verify the release works end-to-end by reinstalling from scratch on this system.
9a. Uninstall current crux
uv tool uninstall crux-cliDo NOT remove ~/.crux/ — we want to verify the new version works with existing data.
9b. Reinstall from PyPI via the install script
curl -LsSf https://raw.githubusercontent.com/crux-cli/crux/main/install.sh | sh9c. Verify version number matches the release
crux versionExpected output should contain <VERSION>. If it shows an older version, the PyPI publish may not have propagated yet — wait 1-2 minutes and retry:
uv tool upgrade crux-cli
crux version9d. Test a change that shipped with this release
Pick one user-facing change from the release and verify it works. Examples:
- If a new command was added: run it and check output
- If a command was renamed: verify old name fails and new name works
- If auth was changed: run
crux mcp authand check the output
# Example: verify the CLI restructuring shipped
crux mcp --help # should show add/remove/list/search/upgrade/auth/status
crux project --help # should show create/install/uninstall/sync/status
crux task --help # should show run/init/list/clean
# Example: verify a specific feature
crux mcp auth # should show auth status table (not "not implemented")
crux doctor # should NOT mention secretsIf the smoke test fails, investigate whether it's a packaging issue (wrong files included) or a code issue (bug in the release).
Rollback
If something goes wrong after tagging but before PyPI publish:
git tag -d v<VERSION>
git push origin :refs/tags/v<VERSION>If already published to PyPI, you cannot delete the version. Instead:
# Revert the merge on main
git revert <merge-commit-sha>
git push
# Publish a patch version with the fixNotes
- The release pipeline requires a PyPI trusted publisher configured in GitHub repo settings
- The docs pipeline uses
mikefor versioned documentation - Squash merge keeps main history clean — one commit per feature
- Always verify locally before creating the PR
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

