Creates dedicated release branches to trigger CI workflows.
Install
mkdir -p .claude/skills/release-branch && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/4050" && unzip -o skill.zip -d .claude/skills/release-branch && rm skill.zipInstalls to .claude/skills/release-branch
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Create a release branch for SkiaSharp. Use when user says "release X", "start release X", "create release branch for X", "I want to release", or "release now". This is the FIRST step of releasing - creates branch and pushes to trigger CI. Can auto-detect next preview version from main branch.Key capabilities
- →Create release branches for SkiaSharp
- →Auto-detect next preview version
- →Update version labels in configuration files
- →Create matching branches in mono/skia
- →Bump integration branches for maintenance lines
How it works
The skill automates the creation of release branches from integration branches, updates versioning metadata, and ensures the Skia submodule is preserved via a counterpart branch.
Inputs & outputs
When to use release-branch
- →Creating a new release branch
- →Starting the CI pipeline for a release
- →Branching the main repository for deployment
About this skill
Release Branch
This skill is Step 1 of 5:
release-branch → release-status → release-testing → release-publish → release-milestones
Contract
- Use scripts for detection, validation, reconciliation, and writes.
- Treat remote release refs and the CI run triggered by the SkiaSharp push as irreversible. Never force-update or move an existing ref.
- Keep the current checkout unchanged and never commit directly to protected
main/skiasharpbranches. - Audit the exact version first; execute only after the user approves every pending operation.
- Preserve the audited base SHA and Skia gitlink SHA during execution.
- The script may create matching
release/{version}refs in both repositories. - A regular stable release may create a protected-branch bump PR. Automation opens it; a maintainer reviews and merges it.
- This skill never merges PRs or publishes packages/releases.
Release model
| Exact version | Base |
|---|---|
X.Y.Z-preview.N / -rc.N | main before line creation, otherwise release/X.Y.x |
X.Y.Z | release/X.Y.x |
X.Y.Z.F-preview.N / -rc.N | Tag vX.Y.Z |
X.Y.Z.F | Latest matching hotfix preview/RC branch |
Preview/RC iterations begin at 1. Every SkiaSharp release branch has an
identically named mono/skia branch at the exact pinned gitlink. Stable public
versions are bare X.Y.Z; CI test packages remain X.Y.Z-stable.{build} until
publication.
Script contract
| Script | Responsibility |
|---|---|
scripts/detect-release-version.py | Read-only next-preview calculation from main or release/X.Y.x. |
scripts/create-release-branches.py | Exact-version dry-run, validation, reconciliation, push, and stable bump PR. |
Operation statuses:
| Status | Response |
|---|---|
done | Validated; no write needed. |
pending | Include in approval and execution. |
awaiting-user | Automation is complete; report the maintainer action. |
Workflow
1. Resolve the exact version
Use a supplied exact version directly. When the user requests the next release,
choose main or an exact release/X.Y.x integration branch, asking only when
that line is ambiguous:
python3 .agents/skills/release-branch/scripts/detect-release-version.py \
{integration-branch}
Pin the returned releaseVersion.
2. Audit
python3 .agents/skills/release-branch/scripts/create-release-branches.py \
{exact-version} \
--dry-run
Render:
## Release branch audit
**Release:** `{version}` ({type})
**Base:** `{baseRef}` at `{baseSha}`
**Skia:** `{skiaSha}`
**Branches:** `mono/SkiaSharp:{releaseBranch}`,
`mono/skia:{releaseBranch}`
| Operation | Status | Detail |
|-----------|--------|--------|
| `{operations[].id}` | `{operations[].status}` | `{operations[].detail}` |
Include every warning and call out that a pending SkiaSharp push starts CI.
3. Approve and execute
If no operation is pending, report any maintainer action and continue to the
handoff. Otherwise obtain approval and run the emitted executionCommand, which
pins baseSha and skiaSha.
If execution fails, rerun the dry-run to reconcile partial state before retrying the emitted command.
4. Hand off
Run the returned statusCommand with
release-status. For stable releases, also report
the bump PR URL and its maintainer-owned merge state.
See releasing.md for the complete release process.
When not to use it
- →When committing directly to main or protected branches
- →When a stable release branch already exists for the version
Prerequisites
Limitations
- →Cannot perform major milestone updates
- →Requires manual confirmation before pushing
How it compares
It enforces a strict, multi-step release pipeline that prevents direct commits to protected branches and ensures auditability of the Skia source.
Compared to similar skills
release-branch side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| release-branch (this skill) | 1 | 1mo | Review | Advanced |
| github-release-management | 4 | 6mo | Review | Advanced |
| agent-release-swarm | 1 | 6mo | Review | Advanced |
| magerun-release | 1 | 5mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by mono
View all by mono →You might also like
github-release-management
ruvnet
Comprehensive GitHub release orchestration with AI swarm coordination for automated versioning, testing, deployment, and rollback management
agent-release-swarm
ruvnet
Agent skill for release-swarm - invoke with $agent-release-swarm
magerun-release
netz98
Technical release process for n98-magerun2
release
ziggy42
Use this skill when the user wants to cut a new release.
release-minor
knuckleswtf
Automates the process of tagging a new minor release for Scribe by analyzing commit messages, updating the changelog, and creating a GitHub release.
windsurf-cicd-github-actions
jeremylongshore
Generate and maintain GitHub Actions with Cascade assistance. Activate when users mention "github actions", "ci/cd pipeline", "workflow automation", "continuous integration", or "deployment pipeline". Handles CI/CD configuration with AI assistance. Use when working with windsurf cicd github actions functionality. Trigger with phrases like "windsurf cicd github actions", "windsurf actions", "windsurf".