feat(marketplace): command consolidation + 8 new plugins (v8.1.0 → v9.0.0) [BREAKING]
Phase 1b: Rename all ~94 commands across 12 plugins to /<noun> <action> sub-command pattern. Git-flow consolidated from 8→5 commands (commit variants absorbed into --push/--merge/--sync flags). Dispatch files, name: frontmatter, and cross-reference updates for all plugins. Phase 2: Design documents for 8 new plugins in docs/designs/. Phase 3: Scaffold 8 new plugins — saas-api-platform, saas-db-migrate, saas-react-platform, saas-test-pilot, data-seed, ops-release-manager, ops-deploy-pipeline, debug-mcp. Each with plugin.json, commands, agents, skills, README, and claude-md-integration. Marketplace grows from 12→20. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
88
plugins/ops-release-manager/commands/release-prepare.md
Normal file
88
plugins/ops-release-manager/commands/release-prepare.md
Normal file
@@ -0,0 +1,88 @@
|
||||
---
|
||||
name: release prepare
|
||||
description: Prepare a release — bump versions across all files, update changelog, create release branch
|
||||
---
|
||||
|
||||
# /release prepare
|
||||
|
||||
Prepare a new release by bumping version numbers, updating the changelog, and optionally creating a release branch.
|
||||
|
||||
## Visual Output
|
||||
|
||||
```
|
||||
+----------------------------------------------------------------------+
|
||||
| RELEASE-MANAGER - Prepare Release |
|
||||
+----------------------------------------------------------------------+
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
/release prepare <version|bump-type> [--branch] [--no-branch]
|
||||
```
|
||||
|
||||
**Version:** Explicit version (e.g., `2.4.0`) or bump type (`major`, `minor`, `patch`)
|
||||
**--branch:** Create a release/X.Y.Z branch (default for minor/major)
|
||||
**--no-branch:** Skip branch creation
|
||||
|
||||
## Skills to Load
|
||||
|
||||
- skills/version-detection.md
|
||||
- skills/semver-rules.md
|
||||
- skills/changelog-conventions.md
|
||||
|
||||
## Process
|
||||
|
||||
1. **Determine Target Version**
|
||||
- If explicit version: validate it follows SemVer
|
||||
- If bump type: calculate from current version
|
||||
- `patch`: 2.3.1 -> 2.3.2
|
||||
- `minor`: 2.3.1 -> 2.4.0
|
||||
- `major`: 2.3.1 -> 3.0.0
|
||||
- If no argument: analyze commits since last tag, suggest bump type
|
||||
|
||||
2. **Pre-flight Checks**
|
||||
- Working directory is clean (no uncommitted changes)
|
||||
- On correct base branch (development or main)
|
||||
- [Unreleased] section in CHANGELOG.md has content
|
||||
- All tests passing (if CI status available)
|
||||
|
||||
3. **Update Version Files**
|
||||
- Update all detected version locations (from setup)
|
||||
- Show diff for each file before applying
|
||||
- Maintain format consistency (quotes, spacing)
|
||||
|
||||
4. **Update Changelog**
|
||||
- Replace `[Unreleased]` with `[X.Y.Z] - YYYY-MM-DD`
|
||||
- Add new empty `[Unreleased]` section above
|
||||
- Update comparison links at bottom if present
|
||||
|
||||
5. **Create Release Branch** (if applicable)
|
||||
- Branch name: `release/X.Y.Z`
|
||||
- Commit all version changes
|
||||
- Commit message: `chore(release): prepare vX.Y.Z`
|
||||
|
||||
6. **Summary**
|
||||
- List all files modified
|
||||
- Show the new version
|
||||
- Next steps: review, validate, then tag
|
||||
|
||||
## Output Format
|
||||
|
||||
```
|
||||
## Release Preparation: v2.4.0
|
||||
|
||||
### Files Updated
|
||||
- package.json: 2.3.1 -> 2.4.0
|
||||
- README.md: v2.3.1 -> v2.4.0
|
||||
- CHANGELOG.md: [Unreleased] -> [2.4.0] - 2026-02-06
|
||||
|
||||
### Branch
|
||||
- Created: release/2.4.0
|
||||
- Commit: chore(release): prepare v2.4.0
|
||||
|
||||
### Next Steps
|
||||
1. Review changes: `git diff development`
|
||||
2. Validate: `/release validate`
|
||||
3. Tag: `/release tag`
|
||||
```
|
||||
79
plugins/ops-release-manager/commands/release-rollback.md
Normal file
79
plugins/ops-release-manager/commands/release-rollback.md
Normal file
@@ -0,0 +1,79 @@
|
||||
---
|
||||
name: release rollback
|
||||
description: Revert a release — remove git tag, revert version bump commit, restore previous state
|
||||
---
|
||||
|
||||
# /release rollback
|
||||
|
||||
Revert a release by removing the git tag and reverting version bump changes.
|
||||
|
||||
## Visual Output
|
||||
|
||||
```
|
||||
+----------------------------------------------------------------------+
|
||||
| RELEASE-MANAGER - Rollback Release |
|
||||
+----------------------------------------------------------------------+
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
/release rollback [<version>] [--tag-only] [--force]
|
||||
```
|
||||
|
||||
**Version:** Version to rollback (defaults to latest tag)
|
||||
**--tag-only:** Only remove the tag, keep version changes
|
||||
**--force:** Skip confirmation prompts
|
||||
|
||||
## Skills to Load
|
||||
|
||||
- skills/release-workflow.md
|
||||
|
||||
## Process
|
||||
|
||||
1. **Identify Release to Rollback**
|
||||
- If version specified: find matching tag
|
||||
- If not specified: use most recent tag
|
||||
- Show the release details for confirmation
|
||||
|
||||
2. **Safety Checks**
|
||||
- Warn if tag has been pushed to remote
|
||||
- Warn if other branches have been based on this release
|
||||
- Warn if CI pipeline has already deployed
|
||||
- Require explicit confirmation (unless --force)
|
||||
|
||||
3. **Remove Git Tag**
|
||||
- Delete local tag: `git tag -d vX.Y.Z`
|
||||
- If tag was pushed: `git push origin :refs/tags/vX.Y.Z`
|
||||
- Confirm tag removal
|
||||
|
||||
4. **Revert Version Changes** (unless --tag-only)
|
||||
- Find the version bump commit
|
||||
- Create a revert commit: `git revert <commit> --no-edit`
|
||||
- This restores CHANGELOG.md, version files to previous state
|
||||
|
||||
5. **Cleanup**
|
||||
- If release branch exists: offer to delete it
|
||||
- Update any tracking references
|
||||
- Show final state
|
||||
|
||||
## Output Format
|
||||
|
||||
```
|
||||
## Rollback: v2.4.0
|
||||
|
||||
### Actions Taken
|
||||
- [x] Deleted local tag v2.4.0
|
||||
- [x] Deleted remote tag v2.4.0
|
||||
- [x] Reverted commit abc1234 (chore(release): prepare v2.4.0)
|
||||
- [x] Deleted branch release/2.4.0
|
||||
|
||||
### Current State
|
||||
- Version: 2.3.1 (restored)
|
||||
- Latest tag: v2.3.1
|
||||
- CHANGELOG.md: [Unreleased] section restored
|
||||
|
||||
### Warnings
|
||||
- If any deployments were triggered, manual rollback may be needed
|
||||
- Notify team members of the release revert
|
||||
```
|
||||
71
plugins/ops-release-manager/commands/release-setup.md
Normal file
71
plugins/ops-release-manager/commands/release-setup.md
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
name: release setup
|
||||
description: Detect version locations, release conventions, and configure release workflow
|
||||
---
|
||||
|
||||
# /release setup
|
||||
|
||||
Setup wizard for release management. Detects existing version locations and release conventions.
|
||||
|
||||
## Visual Output
|
||||
|
||||
```
|
||||
+----------------------------------------------------------------------+
|
||||
| RELEASE-MANAGER - Setup |
|
||||
+----------------------------------------------------------------------+
|
||||
```
|
||||
|
||||
## Skills to Load
|
||||
|
||||
- skills/version-detection.md
|
||||
|
||||
## Process
|
||||
|
||||
1. **Detect Version Locations**
|
||||
- Scan for version strings in standard files:
|
||||
- `package.json` (Node.js)
|
||||
- `pyproject.toml` (Python)
|
||||
- `setup.cfg`, `setup.py` (Python legacy)
|
||||
- `Cargo.toml` (Rust)
|
||||
- `marketplace.json` (Claude plugins)
|
||||
- `README.md` title line
|
||||
- `CHANGELOG.md` header
|
||||
- Record each location with current version value
|
||||
|
||||
2. **Check Version Consistency**
|
||||
- Compare all detected versions
|
||||
- Flag any mismatches between files
|
||||
- Identify the "source of truth" file
|
||||
|
||||
3. **Detect Release Conventions**
|
||||
- Git tags: check `git tag` for existing pattern (v1.0.0 vs 1.0.0)
|
||||
- Branching: check for release/* branches
|
||||
- Changelog format: detect Keep a Changelog vs other
|
||||
- CI/CD: check for release workflows in .github/workflows or .gitlab-ci.yml
|
||||
|
||||
4. **Present Configuration**
|
||||
- Show detected settings
|
||||
- Ask user to confirm or override
|
||||
- Store preferences for future commands
|
||||
|
||||
## Output Format
|
||||
|
||||
```
|
||||
## Release Configuration
|
||||
|
||||
### Version Locations
|
||||
| File | Current Version | Pattern |
|
||||
|------|----------------|---------|
|
||||
| package.json | 2.3.1 | "version": "X.Y.Z" |
|
||||
| README.md | 2.3.1 | # Project - vX.Y.Z |
|
||||
| CHANGELOG.md | 2.3.1 | ## [X.Y.Z] - YYYY-MM-DD |
|
||||
|
||||
### Conventions
|
||||
- Tag format: vX.Y.Z
|
||||
- Branch pattern: release/X.Y.Z
|
||||
- Changelog: Keep a Changelog format
|
||||
- Source of truth: package.json
|
||||
|
||||
### Status: Ready
|
||||
All versions in sync. Release workflow configured.
|
||||
```
|
||||
86
plugins/ops-release-manager/commands/release-status.md
Normal file
86
plugins/ops-release-manager/commands/release-status.md
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
name: release status
|
||||
description: Show current version, unreleased changes, and release readiness
|
||||
---
|
||||
|
||||
# /release status
|
||||
|
||||
Display the current version, unreleased changes, and overall release readiness.
|
||||
|
||||
## Visual Output
|
||||
|
||||
```
|
||||
+----------------------------------------------------------------------+
|
||||
| RELEASE-MANAGER - Status |
|
||||
+----------------------------------------------------------------------+
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
/release status [--verbose]
|
||||
```
|
||||
|
||||
**--verbose:** Include full unreleased changelog and commit list
|
||||
|
||||
## Skills to Load
|
||||
|
||||
- skills/version-detection.md
|
||||
- skills/semver-rules.md
|
||||
|
||||
## Process
|
||||
|
||||
1. **Current Version**
|
||||
- Read version from all known locations
|
||||
- Show the latest git tag
|
||||
- Flag any version mismatches
|
||||
|
||||
2. **Unreleased Changes**
|
||||
- Read [Unreleased] section from CHANGELOG.md
|
||||
- Count entries by category (Added, Changed, Fixed, etc.)
|
||||
- If verbose: show full content
|
||||
|
||||
3. **Commit Analysis**
|
||||
- List commits since last tag
|
||||
- Parse conventional commit prefixes (feat, fix, chore, etc.)
|
||||
- Suggest bump type based on commit types:
|
||||
- Any `BREAKING CHANGE` or `!` → major
|
||||
- Any `feat` → minor
|
||||
- Only `fix`, `chore`, `docs` → patch
|
||||
- If verbose: show commit list
|
||||
|
||||
4. **Readiness Assessment**
|
||||
- Check if [Unreleased] has content
|
||||
- Check if all versions are in sync
|
||||
- Check git state (clean working directory)
|
||||
- Summarize blockers if any
|
||||
|
||||
## Output Format
|
||||
|
||||
```
|
||||
## Release Status
|
||||
|
||||
### Current Version: 2.3.1 (tag: v2.3.1)
|
||||
All 3 version locations in sync.
|
||||
|
||||
### Unreleased Changes
|
||||
| Category | Count |
|
||||
|----------|-------|
|
||||
| Added | 3 |
|
||||
| Fixed | 2 |
|
||||
| Changed | 1 |
|
||||
|
||||
### Commits Since v2.3.1: 14
|
||||
- 5 feat (new features)
|
||||
- 6 fix (bug fixes)
|
||||
- 3 chore (maintenance)
|
||||
|
||||
### Suggested Bump: MINOR (2.3.1 -> 2.4.0)
|
||||
Reason: 5 new features detected
|
||||
|
||||
### Readiness: READY
|
||||
- [x] Unreleased changes documented
|
||||
- [x] Versions in sync
|
||||
- [x] Working directory clean
|
||||
Run `/release prepare minor` to begin.
|
||||
```
|
||||
83
plugins/ops-release-manager/commands/release-tag.md
Normal file
83
plugins/ops-release-manager/commands/release-tag.md
Normal file
@@ -0,0 +1,83 @@
|
||||
---
|
||||
name: release tag
|
||||
description: Create annotated git tag with release notes extracted from changelog
|
||||
---
|
||||
|
||||
# /release tag
|
||||
|
||||
Create and push an annotated git tag with release notes from the changelog.
|
||||
|
||||
## Visual Output
|
||||
|
||||
```
|
||||
+----------------------------------------------------------------------+
|
||||
| RELEASE-MANAGER - Tag Release |
|
||||
+----------------------------------------------------------------------+
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
/release tag [--push] [--draft]
|
||||
```
|
||||
|
||||
**--push:** Push tag to remote immediately (default: ask)
|
||||
**--draft:** Create tag locally without pushing
|
||||
|
||||
## Skills to Load
|
||||
|
||||
- skills/release-workflow.md
|
||||
|
||||
## Process
|
||||
|
||||
1. **Pre-flight**
|
||||
- Verify `/release validate` passes (run automatically if not done)
|
||||
- Confirm current version from version files
|
||||
- Check that tag does not already exist
|
||||
|
||||
2. **Extract Release Notes**
|
||||
- Read the current version's section from CHANGELOG.md
|
||||
- Format as tag annotation body
|
||||
- Include version number and date in tag message
|
||||
|
||||
3. **Create Tag**
|
||||
- Tag name: `vX.Y.Z` (matching project convention)
|
||||
- Annotated tag with release notes as message
|
||||
- Command: `git tag -a vX.Y.Z -m "Release vX.Y.Z\n\n<release notes>"`
|
||||
|
||||
4. **Push Decision**
|
||||
- If --push: push tag to origin
|
||||
- If --draft: keep local only
|
||||
- Otherwise: show tag details and ask user
|
||||
|
||||
5. **Post-Tag Actions**
|
||||
- If release branch exists: remind to merge back and delete branch
|
||||
- If CI release pipeline detected: note it will be triggered
|
||||
- Show the complete release summary
|
||||
|
||||
## Output Format
|
||||
|
||||
```
|
||||
## Release Tagged: v2.4.0
|
||||
|
||||
### Tag
|
||||
- Name: v2.4.0
|
||||
- Commit: abc1234 (HEAD)
|
||||
- Date: 2026-02-06
|
||||
|
||||
### Release Notes
|
||||
#### Added
|
||||
- New feature X
|
||||
- New feature Y
|
||||
|
||||
#### Fixed
|
||||
- Bug fix Z
|
||||
|
||||
### Status: Tag created locally
|
||||
Run `git push origin v2.4.0` to publish.
|
||||
|
||||
### Post-Release
|
||||
- [ ] Merge release/2.4.0 back to development
|
||||
- [ ] Delete release/2.4.0 branch
|
||||
- [ ] Verify CI pipeline triggered
|
||||
```
|
||||
75
plugins/ops-release-manager/commands/release-validate.md
Normal file
75
plugins/ops-release-manager/commands/release-validate.md
Normal file
@@ -0,0 +1,75 @@
|
||||
---
|
||||
name: release validate
|
||||
description: Pre-release validation — verify version consistency, changelog, dependencies, and readiness
|
||||
---
|
||||
|
||||
# /release validate
|
||||
|
||||
Run pre-release checks to verify the project is ready for release.
|
||||
|
||||
## Visual Output
|
||||
|
||||
```
|
||||
+----------------------------------------------------------------------+
|
||||
| RELEASE-MANAGER - Validate Release |
|
||||
+----------------------------------------------------------------------+
|
||||
```
|
||||
|
||||
## Skills to Load
|
||||
|
||||
- skills/version-detection.md
|
||||
- skills/changelog-conventions.md
|
||||
|
||||
## Process
|
||||
|
||||
1. **Version Consistency**
|
||||
- Read version from all known locations
|
||||
- Verify all locations report the same version
|
||||
- Check version is greater than the latest git tag
|
||||
- Verify version follows SemVer format
|
||||
|
||||
2. **Changelog Validation**
|
||||
- Verify [X.Y.Z] section exists with today's date (or recent date)
|
||||
- Check all required categories are present if entries exist
|
||||
- Verify no empty [Unreleased] content was left behind
|
||||
- Check comparison links are updated
|
||||
|
||||
3. **Git State**
|
||||
- Working directory is clean
|
||||
- Branch is up to date with remote
|
||||
- No merge conflicts pending
|
||||
- All CI checks passing (if detectable)
|
||||
|
||||
4. **Dependency Check**
|
||||
- Lock file is up to date (package-lock.json, poetry.lock, Cargo.lock)
|
||||
- No known vulnerable dependencies (if audit tool available)
|
||||
- No unpinned dependencies in production config
|
||||
|
||||
5. **Documentation**
|
||||
- README references correct version
|
||||
- Migration guide exists for major versions
|
||||
- Breaking changes are documented
|
||||
|
||||
6. **Report**
|
||||
- Show pass/fail for each check
|
||||
- Block release if any critical check fails
|
||||
- Warn on non-critical issues
|
||||
|
||||
## Output Format
|
||||
|
||||
```
|
||||
## Release Validation: v2.4.0
|
||||
|
||||
### Checks
|
||||
| Check | Status | Details |
|
||||
|-------|--------|---------|
|
||||
| Version consistency | PASS | 3/3 files match v2.4.0 |
|
||||
| Changelog | PASS | [2.4.0] section with 5 entries |
|
||||
| Git state | PASS | Clean, up to date |
|
||||
| Lock file | PASS | package-lock.json current |
|
||||
| Dependencies | WARN | 1 advisory (low severity) |
|
||||
| Documentation | PASS | README updated |
|
||||
|
||||
### Result: READY FOR RELEASE
|
||||
1 warning (non-blocking). Proceed with `/release tag`.
|
||||
```
|
||||
18
plugins/ops-release-manager/commands/release.md
Normal file
18
plugins/ops-release-manager/commands/release.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
description: Release management — version bumping, changelog updates, tag creation
|
||||
---
|
||||
|
||||
# /release
|
||||
|
||||
Release management with semantic versioning, changelog generation, and tag management.
|
||||
|
||||
## Sub-commands
|
||||
|
||||
| Sub-command | Description |
|
||||
|-------------|-------------|
|
||||
| `/release setup` | Setup wizard — detect version locations and release conventions |
|
||||
| `/release prepare` | Prepare release: bump versions, update changelog, create branch |
|
||||
| `/release validate` | Pre-release checks — verify versions, changelog, dependencies |
|
||||
| `/release tag` | Create and push git tag with release notes |
|
||||
| `/release rollback` | Revert a release — remove tag, revert version bump |
|
||||
| `/release status` | Show current version and unreleased changes |
|
||||
Reference in New Issue
Block a user