Skip to content
Back to skills

2688 Plugin Release Workflow D8171f88

ASecurity

**Category**: Development **Created**: 2025-10-12 **Last Used**: v1.5.0 release **Last Updated**: 2025-10-13 ---

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
documentationgobashtestingrefactoringgitdocumentation

Works with

  • claude code
  • cli

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2688-plugin-release-workflow_d8171f88 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2688 Plugin Release Workflow D8171f88?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 2688 Plugin Release Workflow D8171f88
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2688-plugin-release-workflow-d8171f88/badge)](https://www.skillsdirectory.com/skills/tools-only-2688-plugin-release-workflow-d8171f88)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Plugin Release Workflow

**Category**: Development
**Created**: 2025-10-12
**Last Used**: v1.5.0 release
**Last Updated**: 2025-10-13

---

## Context

Standard operating procedure for releasing new versions of the Navigator Claude Code plugin. This workflow ensures consistent releases with proper versioning, documentation, and GitHub distribution.

---

## When to Use

Use this SOP when:
- Releasing a new plugin version (patch, minor, or major)
- After completing features that need distribution
- Publishing bug fixes to users
- Any change that affects plugin functionality

---

## Prerequisites

**BEFORE STARTING ANY RELEASE**:
1. **Read [Version Management SOP](./version-management.md)** - Understand version sync process
2. **Complete version consistency check** - Ensure no version drift exists

**Release Prerequisites**:
- [ ] All features implemented and tested
- [ ] Local testing completed in nav-test project
- [ ] Documentation updated (task docs, system docs)
- [ ] Working directory clean (no uncommitted changes)
- [ ] Version references audited and consistent

---

## Step-by-Step Release Process

### 0. Pre-Release Version Sync (MANDATORY)

**⚠️ CRITICAL: Complete this step BEFORE any other release steps**

See [Version Management SOP](./version-management.md) for complete instructions.

**Quick Checklist**:
1. Determine new version number (patch/minor/major)
2. Update `.claude-plugin/marketplace.json` (2 locations)
3. Update `README.md` (4 locations: status, badge, roadmap, footer)
4. Update `.agent/DEVELOPMENT-README.md` (1 location: footer)
5. Run audit script to verify consistency
6. Commit version bump separately with `chore:` prefix

**Audit command**:
```bash
# Set target version
NEW_VERSION="1.6.0"

# Quick audit
jq -r '.metadata.version' .claude-plugin/marketplace.json
jq -r '.plugins[0].version' .claude-plugin/marketplace.json
grep -E "Published v|version-.*-blue|v.*published|^\*\*Version\*\*:" README.md
grep -E "\(v[0-9]+\.[0-9]+\.[0-9]+\)" .agent/DEVELOPMENT-README.md
```

**⚠️ STOP if any mismatches found! Fix before proceeding.**

---

### 1. Determine Version Number

**Semantic Versioning Rules**:
- **Patch** (1.3.1): Bug fixes, typos, minor docs updates
- **Minor** (1.4.0): New features, new commands, non-breaking changes
- **Major** (2.0.0): Breaking changes, major refactoring

**Example**:
```
Current: 1.2.3
Adding /nav:start command → 1.3.0 (minor - new feature)
Fixing typo in template → 1.2.4 (patch - bug fix)
Changing command structure → 2.0.0 (major - breaking change)
```

### 2. Commit Feature Changes

**Use conventional commit format**:
```bash
git add -A
git commit -m "feat: add /nav:start command and PM tool auto-configuration

- New /nav:start command for session initialization
- Enhanced /nav:init with PM tool integration guidance
- Auto-generates Linear and GitHub integration SOPs
- Stronger CLAUDE.md enforcement of Navigator workflow
- Version bump to 1.3.0

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>"
```

**Commit message format**:
- First line: `type(scope): description`
- Body: Bullet points of changes
- Include Claude Code attribution
- Include Co-Authored-By line

**Commit types**:
- `feat:` - New feature
- `fix:` - Bug fix
- `docs:` - Documentation only
- `chore:` - Maintenance (version bump, dependencies)
- `refactor:` - Code restructuring

**Note**: Version bump should be committed separately in Step 0 with `chore:` prefix.

### 3. Create Git Tag

**Create annotated tag**:
```bash
git tag -a v1.3.0 -m "Version 1.3.0: Session start command and PM integration

Features:
- /nav:start command for consistent session initialization
- Automated PM tool integration setup (Linear, GitHub)
- Auto-generated integration SOPs
- Stronger Navigator workflow enforcement in CLAUDE.md

This release dramatically improves the onboarding experience and ensures
consistent Navigator workflow adoption across all sessions."
```

**Tag message format**:
- First line: "Version X.Y.Z: Brief description"
- Blank line
- "Features:" or "Changes:" section
- Bullet points of key changes
- Optional: Additional context paragraph

### 4. Push to GitHub

**Push commit and tag together**:
```bash
git push origin main && git push origin v1.3.0
```

**Verify push succeeded**:
```bash
git log --oneline -3
git tag -l | tail -3
```

**Check on GitHub**:
- Visit: https://github.com/alekspetrov/nav-plugin/tags
- Confirm new tag appears

### 5. Create GitHub Release

**Using gh CLI**:
```bash
gh release create v1.3.0 \
  --title "Navigator v1.3.0: Session Start Command & PM Integration" \
  --notes "$(cat <<'EOF'
# Navigator v1.3.0: Session Start Command & PM Integration

## 🎯 What's New

[Detailed release notes with sections:]
- What's new
- Why it matters
- Upgrade instructions
- Documentation links
- Feedback section

**Full Changelog**: https://github.com/alekspetrov/nav-plugin/compare/v1.2.3...v1.3.0
EOF
)"
```

**Release notes structure**:
1. **Title** with version and key feature
2. **What's New** - Feature highlights with examples
3. **Why This Matters** - Problem solved, benefits
4. **Upgrade Instructions** - For new and existing users
5. **Impact** - Metrics and improvements
6. **Documentation** - Links to task docs, architecture
7. **Feedback** - How to contribute or report issues
8. **Full Changelog** - Link to compare view

**Verify release**:
- Visit: https://github.com/alekspetrov/nav-plugin/releases
- Confirm release appears with notes

### 6. Document the Release (Navigator)

**Create task documentation**:
```bash
/nav:update-doc feature TASK-XX
```

**This creates**:
- `.agent/tasks/TASK-XX-feature.md` - Implementation plan
- Updates `.agent/DEVELOPMENT-README.md` - Adds to index
- Updates `.agent/system/project-architecture.md` - Version references

**Update SOP (this doc)**:
- Add "Last Used" date
- Note any issues encountered
- Add lessons learned section

### 7. Verify Installation

**Test in fresh project**:
```bash
cd /path/to/test/project
/plugin marketplace add alekspetrov/nav-plugin
/plugin install jitd
/nav:init
/nav:start
```

**Verify**:
- [ ] Plugin installs without errors
- [ ] Commands available (/nav:init, /nav:start, etc.)
- [ ] Templates copy correctly
- [ ] Version shows correctly in marketplace

---

## Troubleshooting

### Issue: Version Mismatch in marketplace.json

**Symptoms**: Two version fields don't match

**Solution**:
```bash
# Check both versions
grep version .claude-plugin/marketplace.json

# Update to match
# Edit file manually or use jq
```

### Issue: Git Tag Already Exists

**Symptoms**: `fatal: tag 'v1.3.0' already exists`

**Solution**:
```bash
# Delete local tag
git tag -d v1.3.0

# Delete remote tag (if pushed)
git push origin :refs/tags/v1.3.0

# Recreate tag
git tag -a v1.3.0 -m "..."
```

### Issue: GitHub Release Fails

**Symptoms**: `gh release create` errors

**Solutions**:
1. Check gh CLI authentication: `gh auth status`
2. Verify tag exists: `git tag -l | grep v1.3.0`
3. Check if release already exists: `gh release list`
4. Re-authenticate: `gh auth login`

### Issue: GitHub CDN Cache

**Symptoms**: Users still getting old version after hours

**Solutions**:
1. Wait 1-2 hours for CDN refresh
2. Users can force specific commit:
   ```bash
   /plugin marketplace add alekspetrov/nav-plugin#422875d
   ```
3. Users can use local file for testing:
   ```bash
   /plugin marketplace add file:///path/to/nav-plugin
   ```

---

## Prevention

### Before Starting Release

- [ ] Run tests in nav-test project
- [ ] Verify all commands work
- [ ] Check for hardcoded version references
- [ ] Review CHANGELOG or commit history

### During Release

- [ ] Double-check version numbers match
- [ ] Test commands in release notes work
- [ ] Verify commit message follows conventions
- [ ] Check tag annotation has details

### After Release

- [ ] Verify tag on GitHub
- [ ] Check release notes render correctly
- [ ] Test installation in fresh project
- [ ] Update this SOP with any issues

---

## Checklist

Complete release checklist:

- [ ] **Step 0**: Complete version sync ([Version Management SOP](./version-management.md))
  - [ ] Determine version (patch/minor/major)
  - [ ] Update `.claude-plugin/marketplace.json` (both locations)
  - [ ] Update `README.md` (4 locations)
  - [ ] Update `.agent/DEVELOPMENT-README.md` (1 location)
  - [ ] Run audit script to verify consistency
  - [ ] Commit version bump with `chore:` prefix
- [ ] **Step 1-2**: Implement and commit feature changes
- [ ] Create annotated git tag
- [ ] Push commit and tag to GitHub
- [ ] Create GitHub release with detailed notes
- [ ] Document with `/nav:update-doc feature TASK-XX`
- [ ] Test installation in fresh project
- [ ] Verify commands work
- [ ] Update this SOP with lessons learned

---

## Metrics

### v1.3.0 Release (Example)

**Time to Release**: ~30 minutes
- Version update: 2 minutes
- Documentation: 10 minutes
- Git operations: 5 minutes
- GitHub release: 5 minutes
- Verification: 8 minutes

**Steps Completed**: 9/9

**Issues Encountered**: None

**Lessons Learned**:
- Using `gh release create` with heredoc for notes is much cleaner than web UI
- Documenting with `/nav:update-doc` immediately after saves time
- Testing in nav-test project catches issues early

---

## Related Documentation

**SOPs** (read first!):
- [Version Management SOP](./version-management.md) - **MANDATORY** - Prevent version drift

**System Docs**:
- [Project Architecture](./../system/project-architecture.md) - Plugin structure
- [Plugin Patterns](./../system/plugin-patterns.md) - Development patterns

**Task Docs**:
- [TASK-01: Session Start & PM Integration](./../tasks/TASK-01-session-start-pm-integration.md)
- [TASK-04: Version Sync Fix](./../tasks/TASK-04-version-sync-release-process.md)

---

## Notes

### Version History of This SOP
- **2025-10-12**: Created during v1.3.0 release
- **2025-10-13**: Added mandatory Step 0 (version sync) and reference to Version Management SOP
- **Last Updated**: 2025-10-13

### Contributing
If you find issues with this workflow or have improvements:
1. Update this SOP
2. Add to "Lessons Learned" section
3. Update "Last Used" date
4. Commit changes

---

**This SOP ensures consistent, documented, and error-free plugin releases** 🚀

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.