gh-oss-release
OSS Release
Batch release workflow for multiple OSS repositories using gh oss-watch releases.
Workflow
Step 1: Check Release Status
Run gh oss-watch releases to identify repos with unreleased commits.
If all repos are up to date, report that and stop.
Step 2: Analyze Unreleased Commits
For each repo needing a release, fetch commit messages since the last tag in parallel:
gh api repos/<owner>/<repo>/compare/<last-tag>...HEAD --jq '[.commits[] | .commit.message | split("\n")[0]] | .[]'
Step 3: Recommend Semver Bump
Classify each commit's first line and recommend the highest applicable bump:
| Commit pattern | Bump |
|---|---|
deps:, deps-dev:, ci:, chore:, maintenance-only |
patch |
feat:, new functionality, non-breaking additions |
minor |
BREAKING CHANGE, !: suffix, API removals |
major |
If ALL commits are deps/ci/chore, recommend patch. If any commit adds a feature, recommend minor. If any commit has breaking changes, recommend major.
Step 4: Present Recommendations
Present a table for user confirmation:
| Repo | Current | Recommended | Commits | Rationale |
|------|---------|-------------|---------|-----------|
| repo-name | v1.2.3 | v1.2.4 | 5 | All dependency bumps |
Use AskUserQuestion or wait for explicit user confirmation before proceeding.
Step 5: Create Releases
After confirmation, create releases in parallel:
gh release create <new-tag> --repo <owner>/<repo> --generate-notes
Step 6: Verify
Run gh oss-watch releases again to confirm all repos show "up to date".
Step 7: Update Homebrew Tap
Ask the user if they want to update the homebrew tap before proceeding. If they decline, stop here.
After confirmation, trigger the scheduled workflow which handles formula updates automatically:
gh workflow run scheduled.yml --repo jackchuka/homebrew-tap
Important Notes
- Tag-triggered CI: Most repos have CI that triggers on tag push (goreleaser, gh-extension-precompile, npm publish). The
gh release createcommand creates the tag which triggers the CI build. - npm packages with tag-triggered workflows: These repos derive version from the git tag during CI — no package.json bump needed.
- Parallel execution: Fetch commits and create releases in parallel across repos for speed.
- Never force: Always confirm with user before creating any releases.
More from jackchuka/skills
restaurant-search
Search for Japanese restaurants using the `hpp` CLI (HotPepper Gourmet API). Use when the user wants to find a restaurant, plan a dinner, search for izakayas, or book a group meal in Japan. Triggers on requests like "find a restaurant near Shibuya", "search for izakayas in 新宿", "restaurant for 10 people in 浜松町", "dinner spot near Tokyo station".
61claude-skill-prereq-audit
>
11software-design
Opinionated guide to software design principles and architectural patterns. Use when reviewing code design, planning feature architecture, asking "is this the right design?", "how should I structure this?", or requesting design philosophy guidance. Triggers on questions about SOLID, DRY, KISS, YAGNI, Clean Architecture, DDD, hexagonal architecture, composition vs inheritance, coupling, cohesion, or any software design trade-off discussion.
11claude-skill-spec-audit
>
11gh-oss-release-prep
>
11git-conventional-commit
Create git commits following the Conventional Commits v1.0.0 specification (conventionalcommits.org). Use when the user asks to commit changes, says "/conventional-commit", or wants a well-structured commit message. Triggers on requests like "commit this", "commit my changes", "create a commit", or any git commit workflow. Analyzes staged/unstaged changes and produces compliant commit messages with proper type, scope, description, body, and footers.
10