Release manager skill
Validate and prepare GitHub releases. Trigger for: SemVer changelogs, version bumps, release commits, CI/CD monitoring, and repo bootstrap.From its SKILL.md
npx -y skills add jovd83/release-manager-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
20.8 KB, ~4.4k tokens by cl100k_base, as published. Nobody here has run it
Release Manager Skill
Author: OpenAI Codex | Version: 0.2.1 | Maturity: stable-beta | License: MIT
Compatibility: Requires git and local shell access. Works best with Python 3 when runningscripts/release_probe.py. Network access is only required for push verification.
1. Mission
- Keep GitHub repositories release-ready without smuggling unclear changes into history.
- Treat
CHANGELOG.mdas a release gate, not as an afterthought. - Prefer auditable, reversible steps over clever shortcuts.
- Stop when repository identity, version state, or changelog coverage is ambiguous.
2. Use this skill for
- Validating whether a repository is ready for a release commit.
- Reconciling
CHANGELOG.mdwith the actual code and configuration changes. - Selecting the correct semantic version bump.
- Preparing a clean release commit and a separate forward-prep commit.
- Monitoring GitHub Actions after push and addressing failed runs before declaring success.
- Leaving the repository ready for continued development after the release push and workflow validation.
- Stopping early when no GitHub repository exists yet and proposing a sensible repository bootstrap package.
3. Do not use this skill for
- Publishing GitHub Releases, tags, or release notes unless the user explicitly asks for that extra step.
- Performing broad feature work, refactors, or unrelated cleanup.
- Resolving merge conflicts or branch strategy disputes as the main task.
- Rewriting Git history, force-pushing, or undoing shared commits unless explicitly requested.
- Managing cross-repository release coordination or organization-wide release trains.
4. Required inputs
- The expected GitHub repository identifier as
[[GITHUB_REPO]]inowner/nameform. - Access to the local checkout that is supposed to match that repository.
- A repository that already follows semantic versioning and already maintains a human-readable
CHANGELOG.md. - A clear release scope or enough repository evidence to infer one safely.
- If no GitHub repository exists yet, enough project context to propose a repository name, visibility, description, and starter topics.
5. Memory model
- Runtime memory:
- Keep the active repository state, changelog findings, version candidates, and commit plan in working memory for the current release task only.
- Discard runtime findings when the task ends unless the user asks for a saved artifact.
- Project or skill memory:
- Persist release checklists, local release notes drafts, or validation artifacts only when the repository benefits from them as local files.
- Keep project-local artifacts scoped to this repository and this release workflow.
- Shared memory:
- Treat organization-wide release conventions or cross-agent operational policy as external shared infrastructure.
- Do not silently promote runtime findings or project-local artifacts into shared memory.
- Promotion rule:
- Promote information only when it is stable, valuable, and correctly scoped.
6. Establish the release contract
- Treat
[[GITHUB_REPO]]as the canonical remote repository identifier. - Treat the current branch as provisional until verified.
- Treat the latest changelog state as provisional until checked against the real diff.
- Treat every version-bearing file as a candidate until a source of truth is established.
7. Gather evidence first
- Run a repository probe before editing anything.
- Prefer
python scripts/release_probe.py --expected-repo [[GITHUB_REPO]] --jsonwhen Python is available. - Otherwise run equivalent Git checks manually.
- Collect these facts before proceeding:
- repository root
- current branch or detached state
- configured remotes
- whether the local remote matches
[[GITHUB_REPO]] - tracked modifications and untracked files
- changelog presence and top sections
- likely version-bearing files
- obvious version conflicts
- Stop immediately if the local repository does not match
[[GITHUB_REPO]]. - Stop immediately if the current branch is detached and the user did not explicitly ask to release from a detached state.
- Stop immediately if the repository claims to use a changelog but
CHANGELOG.mdis missing. - If no GitHub repository or remote exists yet:
- stop the release workflow before commit or push steps
- tell the user a GitHub repository must be created first
- propose:
- repository name
- visibility
- short description
- starter topics
- optional default branch suggestion
- read references/repo-bootstrap-guidelines.md when the project type, naming pattern, or visibility choice is not obvious
- do not pretend release operations can continue without a repository target
8. Validate the changelog before staging
- Open
CHANGELOG.md. - Identify:
- the top working section
- the latest released section
- whether
Unreleasedalready exists
- Compare the changelog narrative against:
- the current diff
- the files changed since the last release marker or tag
- the apparent scope of the requested release
- Confirm that meaningful changes are documented.
- Treat these as meaningful changes unless the repository clearly says otherwise:
- user-facing features
- bug fixes
- breaking changes
- migration steps
- behavior-affecting configuration changes
- Do not block on noise-only changes such as formatting, comments, or internal churn unless the repository normally documents them.
- Stop and report missing changelog coverage when any meaningful change is absent.
- When stopping, provide:
- the missing area
- the evidence that it changed
- one or more concise proposed changelog entries
- Do not proceed to commit creation until changelog coverage and release scope agree.
- Use assets/changelog-entry-template.md for concise wording when needed.
9. Decide the semantic version bump
- Infer the bump only after changelog validation.
- Use
majorfor breaking changes. - Use
minorfor backward-compatible features. - Use
patchfor fixes, maintenance releases, or documentation-aligned release prep without new features. - Read references/version-file-matrix.md when version locations are unclear.
- If multiple authoritative version files exist, update all of them consistently.
- If multiple version files disagree, stop and reconcile before release.
- Keep prerelease, development, or snapshot suffixes only when the repository already uses them.
- State the chosen bump and the reason before editing version files.
10. Prepare the release commit
- Stage only files that belong to the release-ready change set.
- Do not use blanket staging such as
git add .orgit add -Aunless the repository is already clean apart from the intended release files and you have verified every path. - Ensure the staged set matches the changelog narrative.
- Craft a conventional commit message that matches the release scope.
- Prefer these commit prefixes:
fix:for patch releasesfeat:for minor releasesfeat!:orbreaking:style project convention for major releaseschore(release):only when the repository uses release-prep commits as a convention
- Re-check
git status --shortbefore committing. - Commit locally only after the staged set is correct.
- Keep the release commit focused on the releasable snapshot only.
11. Push the release commit safely
- Push to the intended branch on the intended remote.
- Confirm that the push succeeded.
- Stop if the push is rejected.
- Report the rejection cause.
- Suggest the smallest safe next step.
- Do not force-push unless the user explicitly asks for it.
- Do not claim success just because the local commit exists.
12. Monitor GitHub Actions after each push
- After each successful push, inspect the GitHub Actions runs triggered by that commit.
- Prefer repository-native tooling such as
gh run list,gh run view, or equivalent GitHub integrations when available. - Wait for the relevant workflow runs to complete or reach a clearly terminal state when the user expects release-readiness, not just local push completion.
- If all relevant runs pass, record that the push is CI-green.
- If any relevant run fails:
- inspect the failed workflow, job, and step
- summarize the failure clearly
- distinguish infrastructure flakiness from product or test regressions
- correct the failure when it is safe and in scope
- push the corrective change
- monitor the new GitHub Actions runs again
- Stop only when:
- the relevant workflows pass
- the failure is external or out of scope and must be escalated
- the user explicitly asked for observation only without remediation
- Do not declare the repository release-ready while relevant GitHub Actions runs are failing.
13. Perform forward prep for continued development
- After the release commit is pushed, bump the repository to the next development version when the project convention requires it.
- Add a new empty top section to
CHANGELOG.mdfor the next iteration. - Use assets/unreleased-section-template.md as the default scaffold.
- Include:
- the next version number
Unreleasedas the date placeholderAddedChangedFixedRemoved
- Keep the section empty except for headings unless the user explicitly asks to seed entries.
- Commit the forward-prep changes as a second commit.
- Push the forward-prep commit.
- Treat the repository as fully ready for continued development only after this second push succeeds.
- Do not merge the release commit and forward-prep commit into a single commit unless the repository already uses that convention and the user explicitly wants it.
14. Use this execution order
- Verify repository identity and working state.
- If no GitHub repository exists yet, stop and propose repository creation details.
- Validate
CHANGELOG.md. - Stop and propose missing changelog entries if coverage is incomplete.
- Decide the semantic version bump.
- Update release-facing files.
- Stage only relevant files.
- Create and push the release commit.
- Monitor GitHub Actions for the release push and correct failures when safe and in scope.
- Bump to the next development version if the repository convention requires it.
- Add the new
Unreleasedchangelog section. - Create and push the forward-prep commit.
- Monitor GitHub Actions for the forward-prep push and correct failures when safe and in scope.
- Return the final readiness summary.
15. Output contract
- Use step-by-step execution output.
- Use these sections in this order:
VerificationRepository SetupChangelogVersion PlanRelease CommitGitHub ActionsForward PrepFinal Readiness
- Distinguish:
- observed facts
- inferred conclusions
- blocked conditions
- Put Git commands in fenced code blocks.
- Add a concise summary after each major phase.
- When blocked, say exactly what is missing and what the safest next action is.
- Read references/output-contract.md when you need a stricter response shape.
16. Run these command patterns
- Use these repository verification commands when shell access is available:
git rev-parse --show-toplevel
git branch --show-current
git remote -v
git status --short
- Use these changelog and history commands when needed:
git log --oneline --decorate -n 20
git diff --stat
git diff -- CHANGELOG.md
- Use selective staging commands such as:
git add CHANGELOG.md package.json pyproject.toml
git status --short
- Use a conventional release commit pattern such as:
git commit -m "fix: release 1.4.3"
git push origin main
- Use a forward-prep commit pattern such as:
git commit -m "chore: prepare next development iteration"
git push origin main
- Use GitHub Actions inspection commands such as:
gh run list --limit 10
gh run view <run-id> --log-failed
17. Guardrails
- Do not assume the branch is
mainordevelop. - Do not assume
originpoints at the correct repository. - Do not assume the latest changelog section is accurate.
- Do not assume a single source of truth for the version number.
- Do not commit unrelated local work.
- Do not rewrite history unless the user explicitly asks for it.
- Do not create tags or GitHub releases unless the user explicitly asks for them.
- Do not invent missing release notes silently.
- Do not claim success until both required pushes succeed.
- Do not bury blockers inside optimistic language.
- Do not broaden scope from release preparation into general repository maintenance.
- Do not treat a successful push as final success when relevant GitHub Actions runs are red.
- Do not retry or rerun failed workflows blindly before understanding the failure class.
- Do not continue into release execution when no GitHub repository exists yet.
18. Bundled resources
- Read references/release-workflow.md when you need the full safe-release sequence and stop conditions.
- Read references/version-file-matrix.md when the project has multiple or unclear version files.
- Read references/failure-modes.md when the workflow is blocked or repository state is unusual.
- Read references/repo-bootstrap-guidelines.md when you need concrete heuristics for repository naming, visibility, descriptions, or starter topics.
- Read references/output-contract.md when you need a stronger reporting structure for downstream automation or handoff.
- Use assets/changelog-entry-template.md when drafting concise changelog entries.
- Use
scripts/release_probe.pyfor deterministic repository inspection. - Use
tests/test_release_probe.pyandevals/evals.jsonwhen validating changes to the skill.
19. Examples
- Example input:
Use release-manager-skill for owner/service-api. Verify the repo, ensure CHANGELOG.md covers the current fixes, commit the release changes, push them, then prepare the next Unreleased section.
- Expected output shape:
## Verification
- Repository matches owner/service-api
- Branch: main
- Working tree: 3 modified files, 0 untracked
## Changelog
- Latest release notes are missing one fix entry
- Proposed entry: Fixed: Correct token refresh handling for expired sessions.
- Workflow paused until CHANGELOG.md is updated
- Example input:
Use release-manager-skill for owner/webapp. The changelog is already correct. Finish the release commit and prepare the next development section.
- Expected output shape:
## Verification
- Repository matches owner/webapp
- Branch: develop
- Working tree: release files only
## Release Commit
- Version bump: minor
- Commit: feat: release 2.3.0
- Push: success
## GitHub Actions
- Release workflow run: passed
- Smoke tests: passed
## Forward Prep
- Next version section added: 2.4.0 - Unreleased
- Commit: chore: prepare next development iteration
- Push: success
- Forward-prep workflow run: passed
## Final Readiness
- Repository is ready for continued development
- Example input:
Use release-manager-skill for owner/library. Validate whether the current checkout is safe to release, but do not push anything yet.
- Expected output shape:
## Verification
- Repository matches owner/library
- Branch: release/1.8.x
- Working tree: clean
## Changelog
- Coverage appears complete for the current diff
## Version Plan
- Recommended bump: patch
- Reason: bug-fix-only scope, no breaking change evidence
## Final Readiness
- Release candidate is locally ready
- Push not attempted because the user requested validation only
- Example input:
Use release-manager-skill for owner/service. Push the release commit, monitor GitHub Actions, and if a workflow fails because of a test regression, correct it and re-run the release flow until CI is green.
- Expected output shape:
## Release Commit
- Commit: fix: release 3.1.4
- Push: success
## GitHub Actions
- Workflow run: failed
- Failure: integration test expected outdated version metadata
- Correction: updated version assertion and pushed fix
- Follow-up workflow run: passed
## Final Readiness
- Repository is ready for continued development
- Example input:
Use release-manager-skill for a local project that is not on GitHub yet. Tell me what repository I should create so the release workflow can proceed cleanly later.
- Expected output shape:
## Verification
- No GitHub repository or remote is configured yet
## Repository Setup
- Required next step: create a GitHub repository before release operations
- Proposed name: acme-billing-service
- Proposed visibility: private
- Proposed description: Billing service for subscription lifecycle, invoices, and payment event processing.
- Proposed topics: billing, payments, subscriptions, backend, api
- Suggested default branch: main
## Final Readiness
- Blocked
- Reason: release workflow cannot continue until the repository exists on GitHub
20. Troubleshooting
- Error: local repository does not match
[[GITHUB_REPO]]. Fix: stop, show the detected remote, and ask the user to switch directories or correct the target repository. - Error: detached
HEAD. Fix: stop and require an explicit branch target before committing. - Error: unrelated modified or untracked files are present. Fix: stop, list the unrelated paths, and stage only the verified release files after separating scope.
- Error:
CHANGELOG.mdis missing. Fix: stop and ask whether the repository truly maintains a changelog; do not fabricate a new process silently. - Error: meaningful code changes are missing from
CHANGELOG.md. Fix: stop and propose concise entries using assets/changelog-entry-template.md. - Error: no version file can be identified. Fix: inspect repository conventions, read references/version-file-matrix.md, and ask for the canonical version source if it remains ambiguous.
- Error: multiple version files disagree. Fix: stop, report every conflicting file, identify the most likely source of truth, and require reconciliation before release.
- Error: push is rejected. Fix: report whether the issue is authentication, branch protection, or non-fast-forward, then suggest the smallest safe follow-up.
- Error: repository uses tags, release branches, or prerelease suffixes not covered here. Fix: preserve the repository convention, state the detected pattern, and extend the workflow only as far as the evidence supports.
- Error: GitHub Actions fails after push. Fix: inspect the failed workflow run, identify whether the failure is flaky infrastructure or a real regression, correct safe in-scope issues, push the fix, and monitor the next run before declaring success.
- Error: no GitHub repository exists yet. Fix: stop immediately, ask the user to create one, and propose a repository name, visibility, description, and starter topics instead of attempting release actions.
What ships with it: 16 files
50.4 KB alongside SKILL.md, 3 of them executable
agents/
- openai.yaml394 B
assets/
evals/
- evals.json2.8 KB
references/
- failure-modes.md2.6 KB
- output-contract.md2.1 KB
- release-workflow.md5.0 KB
- repo-bootstrap-guidelines.md3.4 KB
- version-file-matrix.md2.4 KB
scripts/
- release_probe.pyruns12.3 KB
- validate_skill.pyruns3.5 KB
tests/
- test_release_probe.pyruns4.4 KB
- CHANGELOG.md2.2 KB
- .gitignore76 B
- LICENSE1.0 KB
- README.md7.0 KB