// Expert in analyzing and recommending release strategies for software projects. Detects existing release patterns in brownfield projects (git tags, CI/CD workflows, changelogs, version files). Suggests optimal strategies based on architecture (single-repo, multi-repo, monorepo, microservices), team size, deployment frequency, and dependencies. Creates comprehensive release-strategy.md in living docs (.specweave/docs/internal/delivery/ or projects/{id}/delivery/). Activates for release strategy, versioning strategy, multi-repo releases, monorepo versioning, semantic versioning, coordinated releases, independent releases, release planning, version alignment, brownfield release analysis, deployment strategy, CI/CD release, how to version, release best practices.
| name | release-strategy-advisor |
| description | Expert in analyzing and recommending release strategies for software projects. Detects existing release patterns in brownfield projects (git tags, CI/CD workflows, changelogs, version files). Suggests optimal strategies based on architecture (single-repo, multi-repo, monorepo, microservices), team size, deployment frequency, and dependencies. Creates comprehensive release-strategy.md in living docs (.specweave/docs/internal/delivery/ or projects/{id}/delivery/). Activates for release strategy, versioning strategy, multi-repo releases, monorepo versioning, semantic versioning, coordinated releases, independent releases, release planning, version alignment, brownfield release analysis, deployment strategy, CI/CD release, how to version, release best practices. |
Expertise: Release management strategy design, version alignment, brownfield release pattern detection, and living documentation of delivery processes.
Analyzes existing projects to detect release patterns:
Git Analysis:
CI/CD Detection:
.github/workflows/release.yml).gitlab-ci.yml)Jenkinsfile).circleci/config.yml)azure-pipelines.yml)Package Managers:
package.json (version, scripts: version/publish)setup.py, pyproject.tomlpom.xml, build.gradlego.mod*.gemspecCargo.tomlMonorepo Tools:
lerna.json)nx.json, workspace.json)turbo.json)package.json workspaces).changeset/config.json)Release Automation:
.releaserc, release.config.js).versionrc)Suggests optimal strategy based on:
Project Architecture:
Team Factors:
Deployment Patterns:
Dependencies:
Single Repo Strategies:
## Simple Semver
- One repository, one version
- Manual or automated bumps (patch/minor/major)
- GitHub releases + NPM/PyPI publish
- CHANGELOG.md maintenance
- Example: SpecWeave itself
Multi-Repo Strategies:
## Coordinated Releases
- All repos share same version
- Release together (v1.0.0 across all)
- Synchronized CI/CD
- Example: Microservices with tight coupling
## Independent Releases
- Each repo has own version
- Release independently
- Example: service-a v2.1.0, service-b v1.5.0
## Umbrella Versioning
- Product version (v3.0.0) spans multiple repos
- Internal service versions tracked separately
- Example: "Product v3.0.0" contains:
- frontend v2.5.0
- backend v1.8.0
- api v2.1.0
Monorepo Strategies:
## Workspace-Based
- Lerna/Nx/Turborepo manage versions
- Independent package versions
- Changesets for semantic release
- Example: Babel, Jest
## Fixed Versioning
- All packages share same version
- Lerna --fixed mode
- Example: Angular packages
Microservices Strategies:
## Service-Level Versioning
- Each service has own semantic version
- API contract versioning separate
- Rolling releases (deploy services independently)
## Coordinated Major Releases
- Independent minor/patch versions
- Coordinated major versions (breaking changes)
- Example: v2.x (service-a v2.3.0, service-b v2.1.0)
RC Patterns:
Pre-Release Tags:
v1.0.0-rc.1, v1.0.0-rc.2 โ v1.0.0 (final)v2.0.0-beta.1 โ v2.0.0-rc.1 โ v2.0.0v3.0.0-alpha.1 โ v3.0.0-beta.1 โ v3.0.0-rc.1 โ v3.0.0Channel-Based:
Environment-Based:
RC Workflow:
v1.0.0-rc.1Creates release-strategy.md in:
Cross-Project (applies to entire system):
.specweave/docs/internal/delivery/release-strategy.md
Project-Specific (multi-project mode):
.specweave/docs/internal/projects/{project-id}/delivery/release-strategy.md
Document Structure:
# Release Strategy: {Product/Project Name}
## Current Strategy
- Type: Single-repo / Multi-repo / Monorepo / Microservices
- Versioning: Semantic / Date-based / Custom
- Alignment: Lockstep / Independent / Umbrella
- RC Process: Pre-release tags / Channels / Feature flags
## Repositories
- Repo A: {purpose, current version, release frequency}
- Repo B: {purpose, current version, release frequency}
## Version Alignment
- Major: Coordinated (breaking changes)
- Minor: Independent (new features)
- Patch: Independent (bug fixes)
## Release Candidate Workflow
1. Create RC tag: v1.0.0-rc.1
2. Deploy to staging
3. Testing phase (1 week)
4. Promote to production: v1.0.0
## CI/CD Integration
- GitHub Actions: .github/workflows/release.yml
- Automated: npm publish, Docker push, Deploy to K8s
- Manual gates: QA approval, stakeholder sign-off
## Changelog Management
- Tool: Conventional Changelog / Keep a Changelog
- Format: CHANGELOG.md (root or per-package)
- Automation: semantic-release / standard-version
## Hotfix Strategy
- Branch: hotfix/* from production tag
- Version: Patch bump (v1.0.1)
- Process: Fast-track testing, immediate deploy
## Release Checklist
- [ ] All tests passing
- [ ] Changelog updated
- [ ] Version bumped
- [ ] Git tag created
- [ ] GitHub release published
- [ ] Package published (NPM/PyPI/Docker)
- [ ] Deployment successful
- [ ] Documentation updated
## Metrics & Monitoring
- DORA Metrics: Deployment frequency, lead time, MTTR, change failure rate
- Release cadence: {weekly / bi-weekly / monthly}
- Hotfix frequency: {target <5% of releases}
## Decision History
- 2025-01-15: Adopted umbrella versioning (ADR-023)
- 2025-02-01: Introduced RC workflow (ADR-025)
- 2025-03-10: Migrated to semantic-release (ADR-028)
Automatic Strategy Detection (when brownfield analyzer runs):
# Brownfield analyzer detects:
# 1. Repository structure (single/multi/monorepo)
# 2. Existing version tags
# 3. CI/CD configurations
# 4. Package manager configs
# 5. Release automation tools
# Then invokes release-strategy-advisor:
# - Analyze detected patterns
# - Classify release strategy
# - Document findings in release-strategy.md
# - Suggest improvements if needed
Detection Output Example:
## Detected Release Strategy
**Type**: Multi-repo Independent Releases
**Evidence**:
- 3 repositories detected:
- frontend: v2.5.0 (last release: 2025-01-10)
- backend: v1.8.0 (last release: 2025-01-08)
- shared: v1.2.0 (last release: 2024-12-15)
- Version alignment: None (independent)
- Release frequency: Weekly (frontend), Bi-weekly (backend), Monthly (shared)
- CI/CD: GitHub Actions with semantic-release
- Changelog: Conventional Changelog (auto-generated)
**Recommendations**:
1. Consider umbrella versioning for product releases
2. Add RC workflow for major versions
3. Align major versions for better API compatibility
Ask me to:
Analyze existing release strategy:
Recommend optimal strategy:
Create release documentation:
Plan multi-repo releases:
Brownfield integration:
Version Alignment:
RC Workflows:
Changelog Discipline:
Release Frequency:
Brownfield Analyzer:
Living Docs:
Multi-Project:
Increment Lifecycle:
# 1. User asks for release strategy
"What release strategy should SpecWeave use?"
# 2. Advisor analyzes:
# - Single repo (GitHub: anton-abyzov/specweave)
# - NPM package
# - GitHub Actions for releases
# - Existing semver tags
# 3. Recommends:
# - Simple semver strategy
# - Automated releases via GitHub Actions
# - CHANGELOG.md maintenance
# - RC for major versions only
# 4. Creates:
# .specweave/docs/internal/delivery/release-strategy.md
# 1. User asks for strategy
"How should we release our 5 microservices?"
# 2. Advisor analyzes:
# - 5 repos detected (user-service, order-service, ...)
# - Tight coupling (shared API contracts)
# - High deployment frequency (daily)
# 3. Recommends:
# - Umbrella versioning (product v1.0.0)
# - Independent service versions (service-a v2.3.0)
# - RC workflow for product major versions
# - Rolling releases for services
# 4. Creates:
# .specweave/docs/internal/delivery/release-strategy.md
# - Umbrella version matrix
# - Service version independence
# - RC workflow for product releases
# 1. User asks for strategy
"How to version our Lerna monorepo?"
# 2. Advisor analyzes:
# - Monorepo with 12 packages
# - Lerna detected (lerna.json)
# - Changesets for versioning
# - Independent package releases
# 3. Recommends:
# - Independent versioning (Lerna independent mode)
# - Changesets for semantic release
# - Automated changelogs per package
# - Fixed versioning for core packages
# 4. Creates:
# .specweave/docs/internal/delivery/release-strategy.md
# - Lerna configuration explanation
# - Changesets workflow
# - Package grouping strategy
Works with release management commands:
/sw-release:init - Analyze & recommend strategy/sw-release:align - Align versions across repos/sw-release:rc - Create release candidate/sw-release:publish - Execute releaseRequired:
Optional (for detection):
gh) - GitHub release detectionnpm) - NPM package detectionpython) - Python package detectionlerna) - Monorepo detectionnx) - Nx workspace detectionCreates/Updates:
.specweave/docs/internal/delivery/release-strategy.md (cross-project).specweave/docs/internal/projects/{id}/delivery/release-strategy.md (project-specific)Provides:
Remember: Release strategy is a living document. Update it when:
Goal: Clear, documented, repeatable release process that scales with your team and product.