release-coordinator
Release Coordinator
Multi-repo release orchestration, RC lifecycle management, and release strategy.
Release Dependency Management
# Build-time dependencies
shared-lib: v2.0.0
└─ service-a: v3.1.0 (depends on shared-lib)
└─ service-b: v2.5.0 (depends on shared-lib)
# Runtime dependencies
auth-service: v1.8.0
└─ api-gateway: v2.0.0 (calls auth-service)
└─ frontend: v3.2.0 (calls api-gateway)
Release Order Calculation:
- Build dependency graph
- Topological sort for correct order
- Identify circular dependencies (error)
- Generate release waves
Release Waves
### Wave 1 (Foundations)
- [ ] shared-lib: v2.0.0 → v3.0.0
- [ ] database-migrations: v9 → v10
### Wave 2 (Backend Services)
- [ ] auth-service: v1.8.0 → v2.0.0 (depends: shared-lib v3.0.0)
- [ ] user-service: v1.5.0 → v2.0.0 (depends: schema v10)
### Wave 3 (API Layer)
- [ ] api-gateway: v2.0.0 → v3.0.0 (depends: auth-service v2.0.0)
### Wave 4 (Frontend)
- [ ] web-app: v3.2.0 → v4.0.0 (depends: api-gateway v3.0.0)
Release Candidate (RC) Lifecycle
Pre-Release Tags
Alpha: 1.0.0-alpha.1 # Early development (unstable)
Beta: 1.0.0-beta.1 # Feature complete (testing)
RC: 1.0.0-rc.1 # Release candidate (near production)
Final: 1.0.0 # Production release
RC Workflow
# 1. Create RC
git tag -a v2.0.0-rc.1 -m "Release candidate 1"
npm version 2.0.0-rc.1
# 2. Deploy to staging
gh release create v2.0.0-rc.1 --prerelease
# 3. Testing phase (1-2 weeks)
# Bug found → create v2.0.0-rc.2
# 4. Promote to final
git tag -a v2.0.0 -m "Production release"
npm version 2.0.0
gh release create v2.0.0 # NOT prerelease
RC State Machine
DRAFT → TESTING → VALIDATED → PROMOTED
↓ ↓
FAILED HOTFIX → back to TESTING
Tag Cleanup
# List RC tags
git tag -l "*-rc.*" | sort -V
# Delete old RC after promotion
git tag -d v2.0.0-rc.1 v2.0.0-rc.2
git push origin --delete v2.0.0-rc.1 v2.0.0-rc.2
Coordinated Release Strategies
| Strategy | When to Use |
|---|---|
| Lockstep | Tight coupling, small team, shared breaking changes |
| Independent | Loose coupling, autonomous teams, frequent releases |
| Umbrella | Product milestones, services evolve at different rates |
Lockstep (all repos share version)
Product: v3.0.0
Repositories:
- frontend: v3.0.0
- backend: v3.0.0
- api: v3.0.0
Independent (each repo own version)
Repositories:
- frontend: v4.2.0
- backend: v2.8.0
- api: v3.1.0
Umbrella (product + service versions)
Product: v5.0.0 (umbrella)
├─ frontend: v4.2.0
├─ backend: v2.8.0
└─ api: v3.1.0
Brownfield Strategy Detection
Analyzes existing projects to detect release patterns:
- Git: Version tags, release branches
- CI/CD: GitHub Actions, GitLab CI, Jenkins
- Package Managers: NPM, Python, Go
- Monorepo Tools: Lerna, Nx, Turborepo
- Release Automation: semantic-release, standard-version
Pre-Release Validation
# 1. Version Compatibility
✓ shared-lib v2.0.0 compatible with service-a v3.0.0
✗ Database schema v10 required but only v9 deployed
# 2. CI/CD Status
✓ All tests passing
✗ Staging deployment failed
# 3. Documentation
✓ CHANGELOG.md updated
✗ Migration guide missing
Rollback Coordination
## Rollback: v3.0.0 → v2.5.0 (Reverse wave order)
### Wave 1 (Rollback Frontend First)
- [ ] web-app: v4.0.0 → v3.2.0
- [ ] mobile-app: v3.0.0 → v2.5.0
### Wave 2 (Rollback API Layer)
- [ ] api-gateway: v3.0.0 → v2.8.0
### Wave 3 (Backend - Optional)
- [ ] Keep backend if backward compatible
Living Documentation
Creates release-strategy.md:
# Release Strategy: {Product Name}
## Current Strategy
- Type: Multi-repo / Monorepo / Microservices
- Versioning: Semantic / Date-based
- Alignment: Lockstep / Independent / Umbrella
- RC Process: Pre-release tags / Channels
## Release Checklist
- [ ] All tests passing
- [ ] Changelog updated
- [ ] Version bumped
- [ ] Git tag created
- [ ] GitHub release published
- [ ] Package published
- [ ] Documentation updated
Integration with SpecWeave
# 1. Plan release increment
/sw:increment "0025-product-v3-release"
# 2. Execute wave-by-wave
/sw:do
# 3. Complete release
/sw:done 0025
Best Practices
- Understand dependencies before releasing
- Execute wave-by-wave (never "big bang")
- Always use RC for major versions
- Have rollback plan ready
- Monitor 1+ hour post-release
- Clean up RC tags after promotion
Related Skills
version-aligner- Semver constraints, version conflict detection
More from anton-abyzov/specweave
technical-writing
Technical writing expert for API documentation, README files, tutorials, changelog management, and developer documentation. Covers style guides, information architecture, versioning docs, OpenAPI/Swagger, and documentation-as-code. Activates for technical writing, API docs, README, changelog, tutorial writing, documentation, technical communication, style guide, OpenAPI, Swagger, developer docs.
45spec-driven-brainstorming
Spec-driven brainstorming and product discovery expert. Helps teams ideate features, break down epics, conduct story mapping sessions, prioritize using MoSCoW/RICE/Kano, and validate ideas with lean startup methods. Activates for brainstorming, product discovery, story mapping, feature ideation, prioritization, MoSCoW, RICE, Kano model, lean startup, MVP definition, product backlog, feature breakdown.
43kafka-architecture
Apache Kafka architecture expert for cluster design, capacity planning, and high availability. Use when designing Kafka clusters, choosing partition strategies, or sizing brokers for production workloads.
34docusaurus
Docusaurus 3.x documentation framework - MDX authoring, theming, versioning, i18n. Use for documentation sites or spec-weave.com.
29frontend
Expert frontend developer for React, Vue, Angular, and modern JavaScript/TypeScript. Use when creating components, implementing hooks, handling state management, or building responsive web interfaces. Covers React 18+ features, custom hooks, form handling, and accessibility best practices.
29reflect
Self-improving AI memory system that persists learnings across sessions in CLAUDE.md. Use when capturing corrections, remembering user preferences, or extracting patterns from successful implementations. Enables continual learning without starting from zero each conversation.
27