Verdaccio Pull Request Workflow
verdaccio/verdaccio
Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.
Manage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm.
$ npx skills add luongnv89/skills --skill release-manager -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install luongnv89/skills release-manager --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/release-manager .claude/skills/release-manager && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "release-manager" agent skill from https://github.com/luongnv89/skills/tree/main/skills/release-manager into .claude/skills/release-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-manager", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/luongnv89/skills/tree/main/skills/release-managerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add luongnv89/skills --skill release-manager -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install luongnv89/skills release-manager --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/release-manager .agents/skills/release-manager && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release-manager" agent skill from https://github.com/luongnv89/skills/tree/main/skills/release-manager into .agents/skills/release-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-manager", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add luongnv89/skills --skill release-manager -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install luongnv89/skills release-manager --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/release-manager .cursor/skills/release-manager && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "release-manager" agent skill from https://github.com/luongnv89/skills/tree/main/skills/release-manager into .cursor/skills/release-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-manager", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/luongnv89/skills.git --path skills/release-manager--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add luongnv89/skills --skill release-manager -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install luongnv89/skills release-manager --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/release-manager .gemini/skills/release-manager && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "release-manager" agent skill from https://github.com/luongnv89/skills/tree/main/skills/release-manager into .gemini/skills/release-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-manager", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install luongnv89/skills release-managerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add luongnv89/skills --skill release-manager -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/release-manager .github/skills/release-manager && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "release-manager" agent skill from https://github.com/luongnv89/skills/tree/main/skills/release-manager into .github/skills/release-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-manager", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add luongnv89/skills --skill release-manager -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install luongnv89/skills release-manager --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/release-manager .opencode/skills/release-manager && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "release-manager" agent skill from https://github.com/luongnv89/skills/tree/main/skills/release-manager into .opencode/skills/release-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-manager", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
release-managerManage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm.
Release Manager is an agent skill from luongnv89/skills. Manage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm. Use when asked to ship, cut a release, or tag a version. Don't use for routine commits or marketplace publishing.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including reference files (for example `agents/changelog-generator.md`, `agents/docs-updater.md` and `agents/landing-page-updater.md`).
It sits in Development, covering Changelog and release notes. It works with GitHub, npm and Git. The repository describes itself as: Supercharge your AI agents/bots with reusable skills. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 891c720. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghpipnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.compypi.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release Manager loads about 2.6k tokens when it runs, and up to ~6.7k if it reads all its reference files. Until then it costs about 62 tokens; SKILL.md has 1,158 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from luongnv89/skills at commit 891c720, republished under its MIT licence (© luongnv89). 1,158 words, ~2,635 tokens.
.claude/skills/release-manager/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.Automate the entire release lifecycle: version bump, changelog, README update, documentation sync, build, git tag, GitHub release, and publishing to PyPI/npm.
The main agent orchestrates; Steps 3-6 run as parallel subagents to keep context clean (diagram and spawn details: references/orchestration.md). Without the Agent tool, run the same logic inline.
Run these steps in order, confirming with the user before changes. Step 1 can short-circuit the rest: if the project ships a release tool (.changeset, .releaserc, semantic-release, lerna.json), defer to it.
origin (Repo Sync below)gh CLI authenticatedBefore creating, updating, or deleting files, sync the current branch with the remote. If the working tree is not clean, run git stash push -u -m "pre-sync" first and git stash pop after:
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin && git pull --rebase origin "$branch"If origin is missing, pull is unavailable, or rebase/stash conflicts occur, stop and ask the user before continuing.
Verify the repo is in a clean state:
git status --porcelain
git rev-parse --abbrev-ref HEAD
git fetch origin
git status -sbgit status --porcelain prints anything, ask the user whether to stash, commit, or abort. Never silently discard work.git status -sb shows the branch behind or diverged from origin, run the Repo Sync above before Step 2.ls -d .releaserc* .changeset .versionrc* lerna.json release.config.* 2>/dev/null
grep -E '"(release|semantic-release|release-it|@changesets/cli|standard-version)"[[:space:]]*:' package.json 2>/dev/nullThe grep matches a scripts.release entry or a release-tool dependency, never the "version" field.
<tool>. I'll run its release command instead of manual steps." Ask for confirmation, then defer to that tool and skip Steps 2-10.Analyze changes since the last tag:
git tag --sort=-creatordate | head -10
last_tag="$(git describe --tags --abbrev=0 2>/dev/null)"
if [ -n "$last_tag" ]; then git log "$last_tag"..HEAD --oneline --no-merges; else git log --oneline --no-merges -n 100; fiRecommend a bump using conventional commits:
BREAKING: or !: commitsfeat: (no breaking)fix:, docs:, chore:, refactor:, etc.Present: "Based on N features, M fixes, K breaking changes since vX.Y.Z, I recommend vA.B.C. Confirm or override?" When in doubt, lean MINOR over PATCH. Do not start Step 3 until the user confirms a version.
Once the user confirms the version, spawn version-bumper, changelog-generator, docs-updater, and landing-page-updater in the same turn. landing-page-updater leaves raw version strings to version-bumper, so those two never edit the same line. Then optionally spawn release-reviewer, which also flags cross-agent collisions. Apply changes only after the user confirms the consolidated summary. Workspace setup, spawn parameters, and apply order: references/orchestration.md.
Detect the build command:
[ -f package.json ] && grep -q '"build"' package.json && echo "npm run build"
[ -f Makefile ] && grep -q '^build:' Makefile && echo "make build"
[ -f Cargo.toml ] && echo "cargo build --release"
[ -f pyproject.toml ] && echo "python -m build"Ask the user before running. If the build fails, stop and help debug — never continue with a broken build. If no build step exists, skip and tell the user.
Stage changed files (version bumps, changelog, README, docs) and commit:
git add <specific files that were changed>
git commit -m "chore(release): vX.Y.Z"
git tag -a vX.Y.Z -m "Release vX.Y.Z"Ask: "Push <branch> and tag vX.Y.Z to origin?" If the user declines, stop and report PARTIAL — tag vX.Y.Z created locally, not pushed. If the user confirms, push and verify:
git push origin <branch>
git push origin vX.Y.Z
git ls-remote --tags origin "refs/tags/vX.Y.Z"If git ls-remote prints nothing, stop, skip Steps 9-10, report BLOCKED — tag vX.Y.Z not on origin (recovery: references/final-report.md).
If gh auth status fails or the remote is not on GitHub, skip this step and give the user the command below.
Ask: "Create GitHub release vX.Y.Z with the generated notes?" If the user declines, list it under Decision in the final report. If the user confirms, run:
gh release create vX.Y.Z \
--title "vX.Y.Z" \
--notes-file "$WORKSPACE/changelog-generator/release-notes.md" \
--latestFor a pre-release version (one containing -, such as 2.0.0-rc.1), replace --latest with --prerelease. Append artifact paths (.tar.gz, .zip, binaries, .skill files) at the end of the command if any exist. Share the release URL with the user.
If the project publishes to PyPI and/or npm, read references/publishing.md for the full workflow (pre-requisites, build, verify, upload, post-publish verification).
Every run, including one that stops early, ends with the final report: Result: with COMPLETE, PARTIAL — <reason>, or BLOCKED — <reason>, then Evidence: (checks that ran), Uncertainty: (not verified), and Decision: (pending user action, or "No approval needed"). Status rules and a PARTIAL example: references/final-report.md.
Result: COMPLETE — v2.4.0 released
Evidence:
- Version bumped: pyproject.toml, package.json (1.3.1 → 2.4.0)
- Git tag: v2.4.0 (annotated) pushed to origin (confirmed by git ls-remote)
- GitHub release: https://github.com/owner/repo/releases/tag/v2.4.0
- Published: PyPI — https://pypi.org/project/mypackage/2.4.0/ (PyPI JSON API returned the version)
Uncertainty:
- A clean install was not tested (pip install mypackage==2.4.0)
Decision: No approval needed.git describe --tags fails. Treat this as the first release: show the recent commits, propose the version from the project's version file, and ask the user to confirm it.git remote returns nothing. Skip push and GitHub release; offer a local tag only, and report PARTIAL — no remote.pip index versions or npm view). Abort the publish step and ask whether to bump again or skip publishing.Step 7 succeeds.pyproject.toml, package.json, __version__)CHANGELOG.md has a new entry for the release versiongh is availablereferences/final-report.md: result findable first, facts separated from assumptions, claims traceable to evidence, next decision named. Without reviewer feedback, human understanding stays unconfirmedAfter each major step, output a status report (√ pass, × fail, a Criteria line, and Result: PASS | FAIL | PARTIAL). The template and per-step variants live in references/step-reports.md.
Present the checklist in references/final-report.md after the final report.
references/orchestration.md — Architecture, repo-sync rules, parallel subagent workflowreferences/step-reports.md — Full step-completion report templatesreferences/publishing.md — PyPI / npm publishing workflowreferences/final-report.md — Final report status rules, examples, reader checks, post-release checklistagents/ — Subagent prompts: version-bumper, changelog-generator, docs-updater, landing-page-updater (skips if no landing page), release-reviewer© luongnv89, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 10 other files (references) in skills/release-manager of luongnv89/skills.
Open the folder on GitHubat commit 891c720
Release Manager next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Release Manager this skillluongnv89/skills | 131 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Verdaccio Pull Request Workflowverdaccio/verdaccio | 18k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Hunk Release Workflowmodem-dev/hunk | 9.6k | — | ~3.8k | Automated safety check: Pass | MIT | |
| ZCF Release AutomationUfoMiao/zcf | 6.1k | — | ~3.4k | Automated safety check: Pass | MIT | |
| ClawRouter Release ChecklistBlockRunAI/ClawRouter | 6.6k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Release Clawpatchopenclaw/clawpatch | 813 | — | ~1.1k | Automated safety check: Pass | MIT |
verdaccio/verdaccio
Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.
modem-dev/hunk
Maintainer workflow for preparing, publishing, verifying and curating Hunk releases, with confirmation gates before tags, publishes and public edits.
UfoMiao/zcf
Automates a version release with changesets: analyzes code changes, writes a bilingual CHANGELOG, bumps the version and commits through a release branch and pull request.
BlockRunAI/ClawRouter
Walks the agent through every ClawRouter release step in order, from the version bump and changelog entry to build, tests, npm publish, git tag and GitHub release.
openclaw/clawpatch
clawpatch release: version/changelog, CI, npm publish, GitHub release, verify.
OvenMediaLabs/OvenPlayer
Release ovenplayer to npm — confirm the version, verify the committed dist/ bundle is current, write the release notes, and open a draft GitHub Release for the user to publish.
luongnv89/skills
Review UI usability using Steve Krug's principles and produce a scannable report.
luongnv89/skills
Manage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; help lists every operation.
luongnv89/skills
Optimize Ollama configuration for the current machine's hardware.
luongnv89/skills
Install local-first security hardening: pre-commit secret detection, offline dependency scans, static analysis, reports, and gated free CI.
luongnv89/skills
Audit and optimize websites for technical SEO, content SEO, and AI bot accessibility.
luongnv89/skills
Generate sprint-based development tasks from a PRD. An agent skill from luongnv89/skills.
Categories
Manage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm. Release Manager is an agent skill from luongnv89/skills. Manage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm.
Release Manager fits situations like: routine commits; marketplace publishing.
Run `npx skills add luongnv89/skills --skill release-manager -a claude-code`. Or copy the skill folder (skills/release-manager in luongnv89/skills) into .claude/skills/release-manager in your project. Claude Code loads it when a task matches its description.
Run `npx skills add luongnv89/skills --skill release-manager -a codex`. Or copy the skill folder (skills/release-manager in luongnv89/skills) into .agents/skills/release-manager in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add luongnv89/skills --skill release-manager -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-manager, .gemini/skills/release-manager, .github/skills/release-manager and .opencode/skills/release-manager in your project.
Going by SKILL.md and its folder, Release Manager needs the command-line tools its instructions call (git, gh, pip and npm). Our summary lists: Python 3.
SKILL.md names 2 domains. In commands or code: github.com and pypi.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Release Manager is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Release Manager: Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars), Hunk Release Workflow (modem-dev/hunk, 9.6k stars), ZCF Release Automation (UfoMiao/zcf, 6.1k stars) and ClawRouter Release Checklist (BlockRunAI/ClawRouter, 6.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
luongnv89 (a GitHub user) maintains it in luongnv89/skills, which has 131 GitHub stars. The repository holds 37 skills in this directory. The repository was last updated on October 9, 2026.
Source: luongnv89/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.