Release Manager
This skill automates the current margo release flow around:
scripts/release.shscripts/homebrew-source-sha.sh- the personal tap model documented in
docs/HOMEBREW.md
Workflow
1. Prepare A Release
Run the preparation script from the repo root:
python3 skills/release-manager/scripts/prepare_release.py 0.1.1
This script:
- validates the requested version
- checks the local git state
- runs
go test ./...with a repo-localGOCACHE - builds release archives with
scripts/release.sh - smoke-tests each built archive by extracting it and running
margo version - writes a release manifest and a follow-up checklist under
dist/release/release-<version>/
Optional flags:
--allow-dirty: continue even if the worktree is dirty--skip-go-test: skip the full Go test suite--tap-path /path/to/homebrew-margo: include tap-specific follow-up instructions
2. Verify The Finished Release
After the Git tag, GitHub release, and optional tap update exist, run:
python3 skills/release-manager/scripts/verify_release.py 0.1.1 --tap-path /path/to/homebrew-margo
This script:
- re-validates the built archives
- verifies the GitHub release via
ghwhen available - checks that the tap formula points at the expected tag and has a non-placeholder checksum
- runs
brew installorbrew upgrade --build-from-source, thenbrew test, andbrew audit --strictusing the tap-qualified formula name when a tap checkout is available
Useful flags:
--skip-gh-release-check--skip-brew--brew-formula jjanuszczak/margo/margo
Instructions
- Use this skill for the current repo’s manual release model only. Do not introduce bottles, GoReleaser, or
homebrew-coresteps unless the repo docs change. - Prefer running
prepare_release.pyfirst and reading its generated checklist before creating tags or GitHub releases. - If networked
ghorbrewsteps cannot be completed in the current environment, report the exact generated follow-up tasks to the user instead of paraphrasing them loosely.
Self-Evaluation
You MUST verify the skill after changing it:
python3 skills/release-manager/evals/runner.py
Read:
skills/release-manager/evals/reports/latest_results.json
If the evaluation fails, fix the scripts or instructions and re-run the evaluation before handing the work back.