home / skills / sergio-bershadsky / ai / version

version skill

/plugins/git/skills/version

npx playbooks add skill sergio-bershadsky/ai --skill version

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.0 KB
---
name: version
description: |
  This skill should be used when the user wants to bump versions, create releases, or tag versions. Triggers include: "bump version", "bump the version", "version bump", "release version", "tag a release", "create release", "major/minor/patch bump", "update version", "new version", "/version". Updates plugin.json and marketplace.json. Creates git tag and commit.
---

# Version Skill

Bump semantic versions for plugins with git tag and commit.

## When to Use

- After completing a feature (minor bump)
- After fixing bugs (patch bump)
- After breaking changes (major bump)
- Before releasing a new version

## Arguments

```
/version [bump-type] [plugin-name]
```

**bump-type:** `major`, `minor`, or `patch` (default: patch)
**plugin-name:** Plugin to version (default: auto-detect from cwd or prompt)

**Examples:**
```
/version patch git
/version minor settings-sync
/version major
```

## Procedure

### Step 1: Identify Plugin

If plugin name not provided:
1. Check if cwd is inside a plugin directory
2. If not, list available plugins and ask user

```bash
ls plugins/
```

### Step 2: Read Current Version

```bash
cat plugins/<name>/.claude-plugin/plugin.json | grep version
```

Parse the current version (e.g., `1.2.3`).

### Step 3: Calculate New Version

Based on bump type:
- **major**: `1.2.3` → `2.0.0`
- **minor**: `1.2.3` → `1.3.0`
- **patch**: `1.2.3` → `1.2.4`

### Step 4: Show Changes and Confirm

Present to user:
```
## Version Bump

**Plugin:** git
**Current:** 1.2.3
**New:** 1.3.0
**Type:** minor

**Files to update:**
- plugins/git/.claude-plugin/plugin.json
- .claude-plugin/marketplace.json

**Git actions:**
- Commit: "chore(git): bump version to 1.3.0"
- Tag: v1.3.0-git

---
Proceed with version bump?
```

Wait for user confirmation.

### Step 5: Update Files

After approval, update version in:

1. **Plugin manifest:**
   ```
   plugins/<name>/.claude-plugin/plugin.json
   ```
   Update the `"version"` field.

2. **Marketplace catalog:**
   ```
   .claude-plugin/marketplace.json
   ```
   Update the version for this plugin in the `plugins` array.

### Step 6: Create Git Commit and Tag

```bash
git add plugins/<name>/.claude-plugin/plugin.json .claude-plugin/marketplace.json
git commit -m "chore(<name>): bump version to <new-version>"
git tag -a "v<new-version>-<name>" -m "Release <name> v<new-version>"
```

### Step 7: Verify

```bash
git log -1 --oneline
git tag -l "v*-<name>" | tail -1
```

## Rules

1. **NEVER push** — Only commit and tag locally, never push
2. **ALWAYS confirm** — Never bump without user approval
3. **Semantic versioning** — Follow MAJOR.MINOR.PATCH strictly
4. **Update both files** — plugin.json AND marketplace.json
5. **Tag format** — Use `v<version>-<plugin-name>` for multi-plugin repos

## Output Format

```
## Version Bump Complete

**Plugin:** git
**Version:** 1.2.3 → 1.3.0

**Commit:** abc1234 chore(git): bump version to 1.3.0
**Tag:** v1.3.0-git

Run `git push --follow-tags` to publish.
```