Agent skill

Publish Plugins Version Bump

by vinta in vinta/hal-9000

Finds which plugins in the repository changed, bumps only the ones not already bumped since origin/main, and checks that each plugin's two manifests stay in sync.

MITAuto-check passedAgent Workflows

Install Publish Plugins Version Bump

skills CLI
$ npx skills add vinta/hal-9000 --skill publish-plugins -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install vinta/hal-9000 publish-plugins --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/vinta/hal-9000.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/publish-plugins .claude/skills/publish-plugins && rm -rf skills-src

Use ~/.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/

Facts

Skill name
publish-plugins
GitHub stars
138
Token cost
~1k tokens
SKILL.md length
363 words
Files
2 (incl. scripts)
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

Finds which plugins in the repository changed, bumps only the ones not already bumped since origin/main, and checks that each plugin's two manifests stay in sync.

  • Works in 6 steps: Find the changed plugins → Check what is already bumped → Bump → …
  • Preparing changed plugins in the repository for a release
  • SKILL.md covers 1. Find the changed plugins, 2. Check what is already bumped, 3. Bump and 4. Check the manifests are in…, plus 2 more sections
  • Runs Python scripts from its folder; calls claude, git and npx

What it does

The skill prepares the repository's Claude Code plugins for release. It starts with git diff against origin/main to find which plugins changed, since each plugin's files map to a known manifest such as hal-skills or hal-voice, then compares each candidate's working-tree version against origin/main. A plugin whose version already differs from origin/main was already bumped for unreleased work and is skipped; only plugins whose version still matches origin/main are bumped, checked independently of each other.

Version bumps follow semantic versioning: patch for bug fixes and style cleanup, minor for new features, hooks or commands, major for breaking changes to hook behavior or config format. Afterward scripts/check_manifest_sync.py checks that each plugin's own plugin.json and its entry in the repo-root marketplace.json describe the same fields (apart from fields that intentionally differ, such as version or marketplace-only metadata) and that every component path either manifest declares actually exists on disk.

When your agent uses it

  • Preparing changed plugins in the repository for a release
  • Deciding whether a plugin needs a version bump or was already bumped
  • Checking that a plugin's two manifest files agree before publishing

Example prompts

  • “Figure out which plugins changed since origin/main and bump the ones that need it.”
  • “Check whether hal-voice was already bumped for unreleased work before I bump it again.”
  • “Run the manifest sync check and tell me which plugin's two manifests disagree.”

Requirements

  • git
  • Python, to run check_manifest_sync.py
  • Pre-approved tools (allowed-tools): Edit(**/.claude-plugin/*.json), Bash(python3 .claude/skills/publish-plugins/scripts/check_manifest_sync.py:*), Bash(claude plugin validate:*), Bash(npx -y skills@latest add . -l)

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Find the changed plugins
  2. Check what is already bumped
  3. Bump
  4. Check the manifests are in sync
  5. Validate
  6. Check the skills still group for other agents

What it can do on your machine

Read from SKILL.md and the folder at commit 0a2005a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Edit(**/.claude-plugin/*.json)
    • Bash(python3 .claude/skills/publish-plugins/scripts/check_manifest_sync.py:*)
    • Bash(claude plugin validate:*)
    • Bash(npx -y skills@latest add . -l)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • claude
    • git
    • npx
    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Publish Plugins Version Bump loads about 1k tokens when it runs. Until then it costs about 32 tokens; SKILL.md has 363 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~32
When it runs · the whole SKILL.md, loaded when a task matches
~1k

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.

Safety

Auto-check passed

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); the scripts in this folder are not scanned.

SKILL.md

The full file from vinta/hal-9000 at commit 0a2005a, republished under its MIT licence (© vinta). 363 words, ~1,009 tokens.

Download SKILL.mdSave it as .claude/skills/publish-plugins/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
publish-plugins
description
(project) Use when editing any file under skills/ or plugins/ to bump the plugin version and check the manifests
allowed-tools
Edit(**/.claude-plugin/*.json), Bash(python3 .claude/skills/publish-plugins/scripts/check_manifest_sync.py:*), Bash(claude plugin validate:*), Bash(npx -y skills@latest add . -l)
user-invocable
true
model
sonnet
effort
medium
metadata.internal
true

Publish Plugins

Prepare the repo's plugins for release: work out which ones changed, bump their versions, and check the manifests still describe what is on disk.

Each plugin owns its version in its own .claude-plugin/plugin.json, and the repo-root .claude-plugin/marketplace.json carries no version fields:

PluginManifest
hal-skillsskills/.claude-plugin/plugin.json
hal-output-stylesplugins/hal-output-styles/.claude-plugin/plugin.json
hal-grammar-checkplugins/hal-grammar-check/.claude-plugin/plugin.json
hal-session-auto-renameplugins/hal-session-auto-rename/.claude-plugin/plugin.json
hal-voiceplugins/hal-voice/.claude-plugin/plugin.json

1. Find the changed plugins

bash
git diff --name-only origin/main...

skills/** belongs to hal-skills, plugins/<name>/** to that plugin. Only the plugins with changes are candidates for a bump.

2. Check what is already bumped

For each candidate, compare the working-tree version against origin/main:

bash
git show origin/main:skills/.claude-plugin/plugin.json

If a plugin's version already differs from origin/main, it was bumped for unreleased work. Do not bump it again. Only bump a plugin whose version still matches origin/main. Check each candidate independently — a change under skills/ says nothing about whether hal-voice needs a bump.

3. Bump

  • Patch (0.2.0 -> 0.2.1): bug fixes, config changes, style cleanup.
  • Minor (0.2.0 -> 0.3.0): new features, new hooks, new commands.
  • Major (0.2.0 -> 1.0.0): breaking changes to hook behavior or config format.

4. Check the manifests are in sync

bash
python3 .claude/skills/publish-plugins/scripts/check_manifest_sync.py

Every plugin is described twice on purpose: once in its own .claude-plugin/plugin.json and once as an entry in .claude-plugin/marketplace.json. For each plugin the script checks that

  • both describe the same fields with the same values, apart from version (plugin.json only) and source, category, tags, strict, defaultEnabled (marketplace entry only — Claude Code ignores them in a plugin.json).
  • every component path either manifest declares exists on disk.
  • every skill directory in a plugin's root appears in both skill lists.

It exits non-zero naming each problem. Fix the manifests it names, then run it again.

Show full SKILL.md (96 more words)Show less

5. Validate

bash
claude plugin validate .
claude plugin validate ./skills
claude plugin validate ./plugins/hal-output-styles
claude plugin validate ./plugins/hal-grammar-check
claude plugin validate ./plugins/hal-session-auto-rename
claude plugin validate ./plugins/hal-voice

The first call validates the marketplace manifest; the rest validate each plugin manifest.

6. Check the skills still group for other agents

bash
npx -y skills@latest add . -l

This lists what npx skills add vinta/hal-9000 will offer, reading the working tree instead of the published repo, and installs nothing. Every skill has to appear under the Hal Skills heading with a count matching the skills list. A skill listed without that heading means the hal-skills marketplace entry lost its name or its skills array — that CLI reads only the two manifests at the repo root, so it never sees skills/.claude-plugin/plugin.json.

© vinta, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in .claude/skills/publish-plugins of vinta/hal-9000.

  • SKILL.md
  • scripts/check_manifest_sync.py

Open the folder on GitHubat commit 0a2005a

Compare with similar skills

Publish Plugins Version Bump 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.

Publish Plugins Version Bump compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Publish Plugins Version Bump this skillvinta/hal-9000138—~1kAutomated safety check: PassMIT
Rule Catalogathola/claude-night-market342—~1.6kAutomated safety check: PassMIT
Watchmen Setupfirstbatchxyz/watchmen297—~1.1kAutomated safety check: NotesMIT
Hook Factoryalirezarezvani/claude-code-skill-factory879—~3.1kAutomated safety check: PassMIT
Hns Moaiadk Dev Referencemodu-ai/moai-adk1.2k—~937Automated safety check: PassApache-2.0
Faq Shortcutskishormorol/cli-faq-shortcuts127—~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • Rule Catalog

    athola/claude-night-market

    Browse hookify rule catalog. An agent skill from athola/claude-night-market.

    342 GitHub stars~1.6k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Watchmen Setup

    firstbatchxyz/watchmen

    Walks through installing watchmen, running its init wizard, wiring the plugin into Codex or Claude Code and checking the result with doctor.

    297 GitHub stars~1.1k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check: notes
  • Hook Factory

    alirezarezvani/claude-code-skill-factory

    Generate production-ready Claude Code hooks with interactive Q&A, automated installation, and enhanced validation.

    879 GitHub stars~3.1k tokensUpdated 10 mo ago
    Agent WorkflowsAuto-check passed
  • moai-adk-go local dev reference — version management/release process (sec 5), shell-script hook development (sec 7), build & dev commands (sec 10).

    1.2k GitHub stars~937 tokensUpdated today
    DevelopmentAuto-check passed
  • Faq Shortcuts

    kishormorol/cli-faq-shortcuts

    Turn the questions and instructions a user keeps typing into a project into short slash-command skills, mined from their real Claude Code, Codex and Cursor session history and git log.

    127 GitHub stars~1.4k tokensUpdated 3 days ago
    Sales & SupportAuto-check passed
  • Maintainer guide to where AgentSys keeps its marketplace, installer, transforms and adapters, and what to run when preparing a release or fixing a platform bug.

    994 GitHub stars~1.2k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed

More from vinta/hal-9000

All 15 skills in this repo
  • Audits your Claude Code settings and environment variables against the current official docs and returns a ranked list of changes tied to how you actually work.

    138 GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check passed
  • Logical Git Commits

    vinta/hal-9000

    Commits everything in the working tree as one logical change per commit, splitting files by hunk, with bodies that say what was wrong before and never an invented reason.

    138 GitHub stars~3.1k tokensUpdated 2 days ago
    Auto-check passed
  • PR

    vinta/hal-9000

    A skill your agent uses when the user explicitly asks to push the current branch and open a PR, rewrite an open PR's body from its commits, or wait for CI and merge it

    138 GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check passed
  • Keeps Ansible install tasks in line with upstream docs by fixing version, install-method and link drift one tool at a time, with a commit for each.

    138 GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check passed
  • Rewrites docs, READMEs, issues, comments or UI text in plain Global English that translates well and still sounds native, keeping every fact intact.

    138 GitHub stars~1.1k tokensUpdated 2 days ago
    Auto-check passed
  • Best Practices

    vinta/hal-9000

    A skill your agent uses when about to choose, configure, or refine a tool, library, config format, API pattern, or project setup, or before proposing a design of your own — research current…

    138 GitHub stars~553 tokensUpdated 2 days ago
    Auto-check passed

Works with

Questions about Publish Plugins Version Bump

What does Publish Plugins Version Bump do?

Finds which plugins in the repository changed, bumps only the ones not already bumped since origin/main, and checks that each plugin's two manifests stay in sync. The skill prepares the repository's Claude Code plugins for release. It starts with git diff against origin/main to find which plugins changed, since each plugin's files map to a known manifest such as hal-skills or hal-voice, then compares each candidate's working-tree version against origin/main.

When should I use Publish Plugins Version Bump?

Publish Plugins Version Bump fits situations like: preparing changed plugins in the repository for a release; deciding whether a plugin needs a version bump or was already bumped; checking that a plugin's two manifest files agree before publishing.

How do I install Publish Plugins Version Bump in Claude Code?

Run `npx skills add vinta/hal-9000 --skill publish-plugins -a claude-code`. Or copy the skill folder (.claude/skills/publish-plugins in vinta/hal-9000) into .claude/skills/publish-plugins in your project. Claude Code loads it when a task matches its description.

How do I install Publish Plugins Version Bump in Codex?

Run `npx skills add vinta/hal-9000 --skill publish-plugins -a codex`. Or copy the skill folder (.claude/skills/publish-plugins in vinta/hal-9000) into .agents/skills/publish-plugins in your project. Codex loads it when a task matches its description.

Can I use Publish Plugins Version Bump in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vinta/hal-9000 --skill publish-plugins -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/publish-plugins, .gemini/skills/publish-plugins, .github/skills/publish-plugins and .opencode/skills/publish-plugins in your project.

What does Publish Plugins Version Bump need to run?

Going by SKILL.md and its folder, Publish Plugins Version Bump needs Python for the scripts in its folder and the command-line tools its instructions call (claude, git, npx and python3). Our summary lists: git; Python, to run check_manifest_sync.py. Its frontmatter pre-approves these tools: Edit(**/.claude-plugin/*.json), Bash(python3 .claude/skills/publish-plugins/scripts/check_manifest_sync.py:*), Bash(claude plugin validate:*), Bash(npx -y skills@latest add . -l).

Does Publish Plugins Version Bump access the network?

SKILL.md contains no URLs. Its commands use git and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Publish Plugins Version Bump safe to install?

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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Publish Plugins Version Bump use?

Publish Plugins Version Bump is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Publish Plugins Version Bump use?

About 1k tokens (SKILL.md is roughly 4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Publish Plugins Version Bump?

Skills that share tags, products or a category with Publish Plugins Version Bump: Rule Catalog (athola/claude-night-market, 342 stars), Watchmen Setup (firstbatchxyz/watchmen, 297 stars), Hook Factory (alirezarezvani/claude-code-skill-factory, 879 stars) and Hns Moaiadk Dev Reference (modu-ai/moai-adk, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Publish Plugins Version Bump?

vinta (a GitHub user) maintains it in vinta/hal-9000, which has 138 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 5, 2026.

Source: vinta/hal-9000 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.