feat(release): add /oss-release skill for standardized OSS CLI releases#375
Open
shirshanka wants to merge 4 commits intomasterfrom
Open
feat(release): add /oss-release skill for standardized OSS CLI releases#375shirshanka wants to merge 4 commits intomasterfrom
shirshanka wants to merge 4 commits intomasterfrom
Conversation
Adds a project-level Claude Code skill that codifies the OSS CLI release workflow, replacing ad-hoc manual steps with a repeatable, agent-driven process. ## What's included `.claude/commands/oss-release.md` — slash command entry point `.agent-skills/oss-release/SKILL.md` — full 3-subcommand workflow `.agent-skills/oss-release/scripts/compare-upstream.sh` — diffs fork vs datahub-project/datahub `.agent-skills/oss-release/scripts/check-ci.sh` — polls release CI status for a commit `.agent-skills/oss-release/scripts/cut-release.sh` — creates tag + GitHub release `.agent-skills/oss-release/known-flaky-tests.md` — known pre-existing CI flakes ## Developer flow /oss-release prep # diff analysis → safety check → cut RC (version auto-determined) /oss-release finish # check CI on latest RC → confirm → cut final (RC auto-detected) /oss-release status # show CI status for latest RC, no action Key design decisions: - RC releases are first-class deliverables; prep alone is a complete workflow - finish always checks for new commits on master since the RC was cut; if the dev wants to include them, they must cut a new RC first (no shortcut) - Confirmation gate in finish is mandatory and cannot be bypassed - Scripts are agent-agnostic (bash + gh CLI); Claude Code-specific features (loop, ScheduleWakeup) are called out with fallbacks for other agents - gh CLI auth is checked upfront in all scripts with a clear install link Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Each script now resolves the repo root from its own path using $(dirname "$0"), so they work correctly regardless of what directory the agent happens to cd into before invoking them. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
gh auth status exits 1 when any configured account fails (e.g. a bot account), even if the active user account is properly authenticated. gh auth token only checks the active account and exits 0 when valid. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Codifies the OSS CLI release workflow we executed manually for v1.5.0.7 into a repeatable, agent-driven skill checked into the repo.
/oss-releaseslash command for Claude Code (and compatible agents)prep(cut RC),finish(promote to final),status(check CI)known-flaky-tests.mdwith pre-existing CI flakes discovered during v1.5.0.7Developer flow
Key design decisions
prepalone is a complete workflow; use it when shipping an RC to a customer environmentfinishchecks iforigin/masterhas moved ahead of the RC; if the dev wants to include new commits, they must runprepagain first (no shortcut from "include commits" to a final release)finishalways stops and asks before cutting the final tagghCLI; Claude Code-specific features (/loop,ScheduleWakeup) have documented fallbacks for other agentsghis installed and authenticated upfrontFiles
.claude/commands/oss-release.md.agent-skills/oss-release/SKILL.md.agent-skills/oss-release/scripts/compare-upstream.shdatahub-project/datahub.agent-skills/oss-release/scripts/check-ci.sh.agent-skills/oss-release/scripts/cut-release.sh.agent-skills/oss-release/known-flaky-tests.mdTest plan
compare-upstream.shfrom repo root — confirms gap commits and ingestion diffcheck-ci.sh <sha>against a known release commit — confirms output matchesgh run list/oss-release prepin Claude Code — confirms it loads SKILL.md and auto-determines version/oss-release status— confirms it auto-detects latest RC🤖 Generated with Claude Code