Intelligent release automation and orchestration using AI swarms for comprehensive software releases - from changelog generation to multi-platform deployment with rollback capabilities.
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
examples/automated-changelogs.mdexamples/multi-platform-releases.mdexamples/semantic-release.mdreadme.mdresources/asset-packager.pyresources/changelog-generator.pyresources/changelog-template.mdresources/release-automation.jsresources/release-notes.mdresources/semantic-versioning.shresources/version-config.yamltests/changelog-generator.test.pytests/release-automation.test.jstests/semantic-versioning.test.jsBEFORE any CI/CD operation, validate:
NEVER:
ALWAYS:
Evidence-Based Techniques for CI/CD:
name: github-release-management version: 2.0.0 description: Comprehensive GitHub release orchestration with AI swarm coordination for automated versioning, testing, deployment, and rollback management category: github tags: [release, deployment, versioning, automation, ci-cd, swarm, orchestration] author: Claude Flow Team requires:
Intelligent release automation and orchestration using AI swarms for comprehensive software releases - from changelog generation to multi-platform deployment with rollback capabilities.
# Plan and create a release
gh release create v2.0.0 \
--draft \
--generate-notes \
--title "Release v2.0.0"
# Orchestrate with swarm
npx claude-flow github release-create \
--version "2.0.0" \
--build-artifacts \
--deploy-targets "npm,docker,github"
# Initialize release swarm
npx claude-flow swarm init --topology hierarchical
# Execute complete release pipeline
npx claude-flow sparc pipeline "Release v2.0.0 with full validation"
# Get last release tag
LAST_TAG=$(gh release list --limit 1 --json tagName -q '.[0].tagName')
# Generate changelog from commits
CHANGELOG=$(gh api repos/:owner/:repo/compare/${LAST_TAG}...HEAD \
--jq '.commits[].commit.message')
# Create draft release
gh release create v2.0.0 \
--draft \
--title "Release v2.0.0" \
--notes "$CHANGELOG" \
--target main
# Update package.json version
npm version patch # or minor, major
# Push version tag
git push --follow-tags
# Build and publish npm package
npm run build
npm publish
# Create GitHub release
gh release create $(npm pkg get version) \
--generate-notes
// Simple release preparation in Claude Code
[Single Message]:
// Update version files
Edit("package.json", { old: '"version": "1.0.0"', new: '"version": "2.0.0"' })
// Generate changelog
Bash("gh api repos/:owner/:repo/compare/v1.0.0...HEAD --jq '.commits[].commit.message' > CHANGELOG.md")
// Create release branch
Bash("git checkout -b release/v2.0.0")
Bash("git add -A && git commit -m 'release: Prepare v2.0.0'")
// Create PR
Bash("gh pr create --title 'Release v2.0.0' --body 'Automated release preparation'")
// Set up coordinated release team
[Single Message - Swarm Initialization]:
mcp__claude-flow__swarm_init {
topology: "hierarchical",
maxAgents: 6,
strategy: "balanced"
}
// Spawn specialized agents
mcp__claude-flow__agent_spawn { type: "coordinator", name: "Release Director" }
mcp__claude-flow__agent_spawn { type: "coder", name: "Version Manager" }
mcp__claude-flow__agent_spawn { type: "tester", name: "QA Engineer" }
mcp__claude-flow__agent_spawn { type: "reviewer", name: "Release Reviewer" }
mcp__claude-flow__agent_spawn { type: "analyst", name: "Deployment Analyst" }
mcp__claude-flow__agent_spawn { type: "researcher", name: "Compatibility Checker" }
[Single Message - Full Release Coordination]:
// Create release branch
Bash("gh api repos/:owner/:repo/git/refs --method POST -f ref='refs/heads/release/v2.0.0' -f sha=$(gh api repos/:owner/:repo/git/refs/heads/main --jq '.object.sha')")
// Orchestrate release preparation
mcp__claude-flow__task_orchestrate {
task: "Prepare release v2.0.0 with comprehensive testing and validation",
strategy: "sequential",
priority: "critical",
maxAgents: 6
}
// Update all release files
Write("package.json", "[updated version]")
Write("CHANGELOG.md", "[release changelog]")
Write("RELEASE_NOTES.md", "[detailed notes]")
// Run comprehensive validation
Bash("npm install && npm test && npm run lint && npm run build")
// Create release PR
Bash(`gh pr create \
--title "Release v2.0.0: Feature Set and Improvements" \
--head "release/v2.0.0" \
--base "main" \
--body "$(cat RELEASE_NOTES.md)"`)
// Track progress
TodoWrite { todos: [
{ content: "Prepare release branch", status: "completed", priority: "critical" },
{ content: "Run validation suite", status: "completed", priority: "high" },
{ content: "Create release PR", status: "completed", priority: "high" },
{ content: "Code review approval", status: "pending", priority: "high" },
{ content: "Merge and deploy", status: "pending", priority: "critical" }
]}
// Store release state
mcp__claude-flow__memory_usage {
action: "store",
key: "release/v2.0.0/status",
value: JSON.stringify({
version: "2.0.0",
stage: "validation_complete",
timestamp: Date.now(),
ready_for_review: true
})
}
# Get merged PRs between versions
PRS=$(gh pr list --state merged --base main --json number,title,labels,author,mergedAt \
--jq ".[] | select(.mergedAt > \"$(gh release view v1.0.0 --json publishedAt -q .publishedAt)\")")
# Get commit history
COMMITS=$(gh api repos/:owner/:repo/compare/v1.0.0...HEAD \
--jq '.commits[].commit.message')
# Generate categorized changelog
npx claude-flow github changelog \
--prs "$PRS" \
--commits "$COMMITS" \
--from v1.0.0 \
--to HEAD \
--categorize \
--add-migration-guide
Capabilities:
# Intelligent version suggestion
npx claude-flow github version-suggest \
--current v1.2.3 \
--analyze-commits \
--check-compatibility \
--suggest-pre-release
Logic:
# Multi-platform build coordination
npx claude-flow github release-build \
--platforms "linux,macos,windows" \
--architectures "x64,arm64" \
--parallel \
--optimize-size
Features:
# Comprehensive pre-release testing
npx claude-flow github release-test \
--suites "unit,integration,e2e,performance" \
--environments "node:16,node:18,node:20" \
--fail-fast false \
--generate-report
# Multi-target deployment orchestration
npx claude-flow github release-deploy \
--targets "npm,docker,github,s3" \
--staged-rollout \
--monitor-metrics \
--auto-rollback
[Single Message - Multi-Package Release]:
// Initialize mesh topology for cross-package coordination
mcp__claude-flow__swarm_init { topology: "mesh", maxAgents: 8 }
// Spawn package-specific agents
Task("Package A Manager", "Coordinate claude-flow package release v1.0.72", "coder")
Task("Package B Manager", "Coordinate ruv-swarm package release v1.0.12", "coder")
Task("Integration Tester", "Validate cross-package compatibility", "tester")
Task("Version Coordinator", "Align dependencies and versions", "coordinator")
// Update all packages simultaneously
Write("packages/claude-flow/package.json", "[v1.0.72 content]")
Write("packages/ruv-swarm/package.json", "[v1.0.12 content]")
Write("CHANGELOG.md", "[consolidated changelog]")
// Run cross-package validation
Bash("cd packages/claude-flow && npm install && npm test")
Bash("cd packages/ruv-swarm && npm install && npm test")
Bash("npm run test:integration")
// Create unified release PR
Bash(`gh pr create \
--title "Release: claude-flow v1.0.72, ruv-swarm v1.0.12" \
--body "Multi-package coordinated release with cross-compatibility validation"`)
# .github/release-deployment.yml
deployment:
strategy: progressive
stages:
- name: canary
percentage: 5
duration: 1h
metrics:
- error-rate < 0.1%
- latency-p99 < 200ms
auto-advance: true
- name: partial
percentage: 25
duration: 4h
validation: automated-tests
approval: qa-team
- name: rollout
percentage: 50
duration: 8h
monitor: true
- name: full
percentage: 100
approval: release-manager
rollback-enabled: true
# Deploy with progressive rollout
npx claude-flow github release-deploy \
--version v2.0.0 \
--strategy progressive \
--config .github/release-deployment.yml \
--monitor-metrics \
--auto-rollback-on-error
# Synchronize releases across repositories
npx claude-flow github multi-release \
--repos "frontend:v2.0.0,backend:v2.1.0,cli:v1.5.0" \
--ensure-compatibility \
--atomic-release \
--synchronized \
--rollback-all-on-failure
[Single Message - Cross-Repo Release]:
// Initialize star topology for centralized coordination
mcp__claude-flow__swarm_init { topology: "star", maxAgents: 6 }
// Spawn repo-specific coordinators
Task("Frontend Release", "Release frontend v2.0.0 with API compatibility", "coordinator")
Task("Backend Release", "Release backend v2.1.0 with breaking changes", "coordinator")
Task("CLI Release", "Release CLI v1.5.0 with new commands", "coordinator")
Task("Compatibility Checker", "Validate cross-repo compatibility", "researcher")
// Coordinate version updates across repos
Bash("gh api repos/org/frontend/dispatches --method POST -f event_type='release' -F client_payload[version]=v2.0.0")
Bash("gh api repos/org/backend/dispatches --method POST -f event_type='release' -F client_payload[version]=v2.1.0")
Bash("gh api repos/org/cli/dispatches --method POST -f event_type='release' -F client_payload[version]=v1.5.0")
// Monitor all releases
mcp__claude-flow__swarm_monitor { interval: 5, duration: 300 }
# Fast-track critical bug fix
npx claude-flow github emergency-release \
--issue 789 \
--severity critical \
--target-version v1.2.4 \
--cherry-pick-commits \
--bypass-checks security-only \
--fast-track \
--notify-all
[Single Message - Emergency Hotfix]:
// Create hotfix branch from last stable release
Bash("git checkout -b hotfix/v1.2.4 v1.2.3")
// Cherry-pick critical fixes
Bash("git cherry-pick abc123def")
// Fast validation
Bash("npm run test:critical && npm run build")
// Create emergency release
Bash(`gh release create v1.2.4 \
--title "HOTFIX v1.2.4: Critical Security Patch" \
--notes "Emergency release addressing CVE-2024-XXXX" \
--prerelease=false`)
// Immediate deployment
Bash("npm publish --tag hotfix")
// Notify stakeholders
Bash(`gh issue create \
--title "🚨 HOTFIX v1.2.4 Deployed" \
--body "Critical security patch deployed. Please update immediately." \
--label "critical,security,hotfix"`)
# .github/release-swarm.yml
version: 2.0.0
release:
versioning:
strategy: semantic
breaking-keywords: ["BREAKING", "BREAKING CHANGE", "!"]
feature-keywords: ["feat", "feature"]
fix-keywords: ["fix", "bugfix"]
changelog:
sections:
- title: "🚀 Features"
labels: ["feature", "enhancement"]
emoji: true
- title: "🐛 Bug Fixes"
labels: ["bug", "fix"]
- title: "💥 Breaking Changes"
labels: ["breaking"]
highlight: true
- title: "📚 Documentation"
labels: ["docs", "documentation"]
- title: "⚡ Performance"
labels: ["performance", "optimization"]
- title: "🔒 Security"
labels: ["security"]
priority: critical
artifacts:
- name: npm-package
build: npm run build
test: npm run test:all
publish: npm publish
registry: https://registry.npmjs.org
- name: docker-image
build: docker build -t app:$VERSION .
test: docker run app:$VERSION npm test
publish: docker push app:$VERSION
platforms: [linux/amd64, linux/arm64]
- name: binaries
build: ./scripts/build-binaries.sh
platforms: [linux, macos, windows]
architectures: [x64, arm64]
upload: github-release
sign: true
validation:
pre-release:
- lint: npm run lint
- typecheck: npm run typecheck
- unit-tests: npm run test:unit
- integration-tests: npm run test:integration
- security-scan: npm audit
- license-check: npm run license-check
post-release:
- smoke-tests: npm run test:smoke
- deployment-validation: ./scripts/validate-deployment.sh
- performance-baseline: npm run benchmark
deployment:
environments:
- name: staging
auto-deploy: true
validation: npm run test:e2e
approval: false
- name: production
auto-deploy: false
approval-required: true
approvers: ["release-manager", "tech-lead"]
rollback-enabled: true
health-checks:
- endpoint: /health
expected: 200
timeout: 30s
monitoring:
metrics:
- error-rate: <1%
- latency-p95: <500ms
- availability: >99.9%
- memory-usage: <80%
alerts:
- type: slack
channel: releases
on: [deploy, rollback, error]
- type: email
recipients: ["team@company.com"]
on: [critical-error, rollback]
- type: pagerduty
service: production-releases
on: [critical-error]
rollback:
auto-rollback:
triggers:
- error-rate > 5%
- latency-p99 > 2000ms
- availability < 99%
grace-period: 5m
manual-rollback:
preserve-data: true
notify-users: true
create-incident: true
# Pre-release validation with all checks
npx claude-flow github release-validate \
--checks "
version-conflicts,
dependency-compatibility,
api-breaking-changes,
security-vulnerabilities,
performance-regression,
documentation-completeness,
license-compliance,
backwards-compatibility
" \
--block-on-failure \
--generate-report \
--upload-results
# Test against previous versions
npx claude-flow github compat-test \
--previous-versions "v1.0,v1.1,v1.2" \
--api-contracts \
--data-migrations \
--integration-tests \
--generate-report
# Benchmark against baseline
npx claude-flow github performance-test \
--baseline v1.9.0 \
--candidate v2.0.0 \
--metrics "throughput,latency,memory,cpu" \
--threshold 5% \
--fail-on-regression
# Monitor release health post-deployment
npx claude-flow github release-monitor \
--version v2.0.0 \
--metrics "error-rate,latency,throughput,adoption" \
--alert-thresholds \
--duration 24h \
--export-dashboard
# Analyze release performance and adoption
npx claude-flow github release-analytics \
--version v2.0.0 \
--compare-with v1.9.0 \
--metrics "adoption,performance,stability,feedback" \
--generate-insights \
--export-report
# Configure intelligent auto-rollback
npx claude-flow github rollback-config \
--triggers '{
"error-rate": ">5%",
"latency-p99": ">1000ms",
"availability": "<99.9%",
"failed-health-checks": ">3"
}' \
--grace-period 5m \
--notify-on-rollback \
--preserve-metrics
# Comprehensive security validation
npx claude-flow github release-security \
--scan-dependencies \
--check-secrets \
--audit-permissions \
--sign-artifacts \
--sbom-generation \
--vulnerability-report
# Ensure regulatory compliance
npx claude-flow github release-compliance \
--standards "SOC2,GDPR,HIPAA" \
--license-audit \
--data-governance \
--audit-trail \
--generate-attestation
# .github/workflows/release.yml
name: Intelligent Release Workflow
on:
push:
tags: ['v*']
jobs:
release-orchestration:
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
issues: write
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
cache: 'npm'
- name: Authenticate GitHub CLI
run: echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token
- name: Initialize Release Swarm
run: |
# Extract version from tag
RELEASE_TAG=${{ github.ref_name }}
PREV_TAG=$(gh release list --limit 2 --json tagName -q '.[1].tagName')
# Get merged PRs for changelog
PRS=$(gh pr list --state merged --base main --json number,title,labels,author,mergedAt \
--jq ".[] | select(.mergedAt > \"$(gh release view $PREV_TAG --json publishedAt -q .publishedAt)\")")
# Get commit history
COMMITS=$(gh api repos/${{ github.repository }}/compare/${PREV_TAG}...HEAD \
--jq '.commits[].commit.message')
# Initialize swarm coordination
npx claude-flow@alpha swarm init --topology hierarchical
# Store release context
echo "$PRS" > /tmp/release-prs.json
echo "$COMMITS" > /tmp/release-commits.txt
- name: Generate Release Changelog
run: |
# Generate intelligent changelog
CHANGELOG=$(npx claude-flow@alpha github changelog \
--prs "$(cat /tmp/release-prs.json)" \
--commits "$(cat /tmp/release-commits.txt)" \
--from $PREV_TAG \
--to $RELEASE_TAG \
--categorize \
--add-migration-guide \
--format markdown)
echo "$CHANGELOG" > RELEASE_CHANGELOG.md
- name: Build Release Artifacts
run: |
# Install dependencies
npm ci
# Run comprehensive validation
npm run lint
npm run typecheck
npm run test:all
npm run build
# Build platform-specific binaries
npx claude-flow@alpha github release-build \
--platforms "linux,macos,windows" \
--architectures "x64,arm64" \
--parallel
- name: Security Scan
run: |
# Run security validation
npm audit --audit-level=moderate
npx claude-flow@alpha github release-security \
--scan-dependencies \
--check-secrets \
--sign-artifacts
- name: Create GitHub Release
run: |
# Update release with generated changelog
gh release edit ${{ github.ref_name }} \
--notes "$(cat RELEASE_CHANGELOG.md)" \
--draft=false
# Upload all artifacts
for file in dist/*; do
gh release upload ${{ github.ref_name }} "$file"
done
- name: Deploy to Package Registries
run: |
# Publish to npm
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
npm publish
# Build and push Docker images
docker build -t ${{ github.repository }}:${{ github.ref_name }} .
docker push ${{ github.repository }}:${{ github.ref_name }}
- name: Post-Release Validation
run: |
# Run smoke tests
npm run test:smoke
# Validate deployment
npx claude-flow@alpha github release-validate \
--version ${{ github.ref_name }} \
--smoke-tests \
--health-checks
- name: Create Release Announcement
run: |
# Create announcement issue
gh issue create \
--title "🎉 Released ${{ github.ref_name }}" \
--body "$(cat RELEASE_CHANGELOG.md)" \
--label "announcement,release"
# Notify via discussion
gh api repos/${{ github.repository }}/discussions \
--method POST \
-f title="Release ${{ github.ref_name }} Now Available" \
-f body="$(cat RELEASE_CHANGELOG.md)" \
-f category_id="$(gh api repos/${{ github.repository }}/discussions/categories --jq '.[] | select(.slug=="announcements") | .id')"
- name: Monitor Release
run: |
# Start release monitoring
npx claude-flow@alpha github release-monitor \
--version ${{ github.ref_name }} \
--duration 1h \
--alert-on-errors &
# .github/workflows/hotfix.yml
name: Emergency Hotfix Workflow
on:
issues:
types: [labeled]
jobs:
emergency-hotfix:
if: contains(github.event.issue.labels.*.name, 'critical-hotfix')
runs-on: ubuntu-latest
steps:
- name: Create Hotfix Branch
run: |
LAST_STABLE=$(gh release list --limit 1 --json tagName -q '.[0].tagName')
HOTFIX_VERSION=$(echo $LAST_STABLE | awk -F. '{print $1"."$2"."$3+1}')
git checkout -b hotfix/$HOTFIX_VERSION $LAST_STABLE
- name: Fast-Track Testing
run: |
npm ci
npm run test:critical
npm run build
- name: Emergency Release
run: |
npx claude-flow@alpha github emergency-release \
--issue ${{ github.event.issue.number }} \
--severity critical \
--fast-track \
--notify-all
# Debug build failures
npx claude-flow@alpha diagnostic-run \
--component build \
--verbose
# Retry with isolated environment
docker run --rm -v $(pwd):/app node:20 \
bash -c "cd /app && npm ci && npm run build"
# Run tests with detailed output
npm run test -- --verbose --coverage
# Check for environment-specific issues
npm run test:ci
# Compare local vs CI environment
npx claude-flow@alpha github compat-test \
--environments "local,ci" \
--compare
# Immediate rollback to previous version
npx claude-flow@alpha github rollback \
--to-version v1.9.9 \
--reason "Critical bug in v2.0.0" \
--preserve-data \
--notify-users
# Investigate rollback cause
npx claude-flow@alpha github release-analytics \
--version v2.0.0 \
--identify-issues
# Check and resolve version conflicts
npx claude-flow@alpha github release-validate \
--checks version-conflicts \
--auto-resolve
# Align multi-package versions
npx claude-flow@alpha github version-sync \
--packages "package-a,package-b" \
--strategy semantic
Version: 2.0.0 Last Updated: 2025-10-19 Maintained By: Claude Flow Team