releasing-kata
Releasing Kata
Guide the release process for Kata's plugin marketplace distribution.
Release Flow Overview
1. Run tests locally
2. Bump version in package.json and plugin.json
3. Update CHANGELOG.md
4. Create release branch and PR
5. Merge PR to main
6. CI automatically: tests → build → create GitHub Release → push to marketplace
Step 1: Pre-Release Verification
Our workflow is PR-driven:
- Development happens on feature branches
- Releases happen on release branches created from main
1a. Ensure you're ready to release
Before creating a release branch, verify:
-
Check current branch: Must be on
main(not a feature branch)git branch --show-current -
If on a feature branch: The PR must pass CI and be merged first
# Check PR status gh pr status # Monitor PR CI checks gh pr checks --watch 2>&1 | tail -10 # After PR merges, switch to main git checkout main && git pull -
Verify working directory is clean:
git status # Should show "nothing to commit, working tree clean"
1b. Run pre-release checks
Once on main with a clean working directory, verify the codebase is ready:
Stop if tests fail. Fix issues before proceeding.
Step 2: Determine Version Bump
Ask the user what type of release this is:
| Type | When to Use | Example |
|---|---|---|
patch |
Bug fixes, small improvements | 1.0.5 → 1.0.6 |
minor |
New features, backward compatible | 1.0.5 → 1.1.0 |
major |
Breaking changes | 1.0.5 → 2.0.0 |
Step 3: Bump Versions
Both files must have matching versions:
- Read current version from package.json
- Calculate new version based on bump type
- Update
package.jsonversion field - Update
.claude-plugin/plugin.jsonversion field
# Get current version
cat package.json | jq -r '.version'
# After updating both files, verify they match
diff <(jq -r '.version' package.json) <(jq -r '.version' .claude-plugin/plugin.json)
Step 4: Update Docs
1: Update CHANGELOG
Add entry to CHANGELOG.md following Keep a Changelog format:
## [X.Y.Z] - YYYY-MM-DD
### Added
- New feature descriptions
### Fixed
- Bug fix descriptions
### Changed
- Modification descriptions
Guidelines:
- Use today's date
- Group changes by type (Added, Fixed, Changed, Removed)
- Write user-facing descriptions (what changed, not how)
- Reference issue numbers if applicable
2: Update README (if needed)
If there are significant changes affecting usage, update README.md accordingly.
3: Update Website (if needed)
If there are significant changes affecting documentation, update the website docs accordingly.
~/Users/gannonhall~/dev/kata/kata-site/src
Step 5: Run Tests Again
After version bump, rebuild and test:
npm run build && npm test && npm run test:smoke
Step 6: Create Release PR
# Create release branch
git checkout -b release/vX.Y.Z
# Stage release files
git add package.json .claude-plugin/plugin.json CHANGELOG.md
# Commit with conventional format
git commit -m "chore: bump version to X.Y.Z"
# Push and create PR
git push -u origin release/vX.Y.Z
gh pr create --title "Release vX.Y.Z" --body "## Release vX.Y.Z
### Changes
- [List key changes from CHANGELOG]
### Checklist
- [ ] Version bumped in package.json
- [ ] Version bumped in plugin.json
- [ ] CHANGELOG updated
- [ ] Tests passing"
Step 7: Merge and Monitor CI
# Merge the PR (after review if required)
gh pr merge --merge --delete-branch
# Monitor CI workflows
gh run list --limit 5
gh run watch # Watch the latest run
CI Pipeline:
plugin-release.ymltriggers on push to main- Detects version change between plugin.json and marketplace
- Runs tests → Builds → Creates GitHub Release → Pushes to marketplace
Step 8: Verify Release
After CI completes (~2-3 minutes), verify the release.
8a. Verify GitHub Release
# Verify GitHub Release created with tag
gh release view vX.Y.Z
8b. Verify Plugin Marketplace Updated
# Check marketplace version (bypasses CDN cache)
gh api repos/gannonh/kata-marketplace/contents/.claude-plugin/marketplace.json --jq '.content' | base64 -d | jq -r '.plugins[0].version'
# Verify plugin-release workflow ran successfully
gh run list --workflow=plugin-release.yml --limit 3
8c. Manual Plugin Installation Test
This is the one test that can't be fully automated. Test actual plugin installation:
# Create temporary test directory
mkdir -p /tmp/kata-plugin-test && cd /tmp/kata-plugin-test
# Start Claude Code and test interactively
claude
In Claude Code:
/plugin install kata@kata-marketplace
/kata-help
/kata-whats-new
Verify:
- Plugin installs without errors
/kata-helpshows all commands/kata-whats-newshows new version changelog- No path resolution errors
# Cleanup
cd - && rm -rf /tmp/kata-plugin-test
Troubleshooting
See ./release-troubleshooting.md for common issues:
- CI workflow failures
- Plugin marketplace not updating
- Version mismatch errors
Acceptance Criteria
Pre-release:
- package.json version updated
- plugin.json version matches package.json
- CHANGELOG.md has entry for new version
- All tests pass locally (
npm test && npm run test:smoke)
Release:
- PR merged to main
- GitHub Release created with correct tag (
gh release view vX.Y.Z)
Post-release verification:
- GitHub Release created with tag (
gh release view vX.Y.Z) - Marketplace shows new version (
gh apicheck) - Manual plugin test passes (
/plugin install kata@kata-marketplace+/kata-help)
More from gannonh/kata-orchestrator
kata-pause-work
Create a context handoff file, pausing work mid-phase, stopping work temporarily, or creating a checkpoint for session resumption. Triggers include "pause work", "stop work", "create handoff", "save progress", and "pause session".
2kata-brainstorm
Run structured brainstorming sessions using paired explorer/challenger agent teams. Explorers generate ideas, challengers play devil's advocate, and 2-3 rounds of debate produce pressure-tested proposals. Use when brainstorming product ideas, exploring feature directions, evaluating strategic options, generating milestone candidates, or when the user says "brainstorm", "explore ideas", "what should we build next", "generate options", or "run an ideation session".
1kata-map-codebase
Analyze an existing codebase with parallel mapper agents, creating codebase documentation, understanding brownfield projects, or mapping code structure. Triggers include "map codebase", "analyze codebase", "create project context", "document codebase", "understand code", and "codebase map".
1kata-customize
Manage template overrides for customizing Kata output formats. List available templates, copy defaults for local editing, edit overrides, validate template schemas. Triggers include "customize template", "override template", "edit template", "template overrides", "list templates", "show templates", "template customization", "manage templates", "what templates can I customize", "template schema", "custonmize Kata", "custom config".
1kata-whats-new
Show what's new in Kata since the installed version, displaying changelog entries, checking for Kata updates, or reviewing recent changes. Triggers include "what's new", "whats new", "show changes", "changelog", "recent changes", and "what changed".
1kata-new-project
Initialize a new project with deep context gathering and project.md. Triggers include "new project", "start project", "initialize project", "create project", "begin project", "setup project".
1