Multi-agent release preparation team for multi-language repositories.
Release Agent Team validates code quality, generates changelogs, updates documentation, and manages the complete release lifecycle. It supports monorepos with multiple languages and integrates with Claude Code as an interactive subagent.
- 🔍 Auto-detection: Detects Go, TypeScript, JavaScript, Python, Rust, Swift
- ✅ Validation checks: Build, test, lint, format, security, documentation checks
- 📦 Monorepo support: Handles repositories with multiple languages
- 📝 Changelog generation: Integrates with schangelog for automated changelogs
- 📄 Documentation updates: Updates README badges and version references
- 🚀 Release workflow: Full release lifecycle with CI verification
- 💬 Interactive mode: Ask questions and propose fixes for Claude Code integration
- 📊 Multiple output formats: Human-readable, JSON, and TOON (Token-Oriented Object Notation)
- 🔌 Claude Code plugin: Available as a plugin with commands, skills, and agents
Release Agent Team uses a DAG (Directed Acyclic Graph) workflow with 6 specialized agents:
graph TD
PM[PM Agent<br/>version & scope] --> QA[QA Agent<br/>build, test, lint]
PM --> Docs[Documentation Agent<br/>README, changelog, release notes]
PM --> Security[Security Agent<br/>license, vulns, secrets]
PM --> Release[Release Agent<br/>git status, CI config]
QA --> Release
Docs --> Release
Security --> Release
QA --> Coordinator[Release Coordinator<br/>execute release]
Docs --> Coordinator
Security --> Coordinator
Release --> Coordinator
style PM fill:#e1f5fe,color:#01579b
style QA fill:#fff3e0,color:#e65100
style Docs fill:#e8f5e9,color:#1b5e20
style Security fill:#fce4ec,color:#880e4f
style Release fill:#f3e5f5,color:#4a148c
style Coordinator fill:#fff8e1,color:#f57f17
| Agent | Role | Checks |
|---|---|---|
| PM | Product Management | Version recommendation, release scope, changelog quality, breaking changes |
| QA | Quality Assurance | Build, tests, lint, format, error handling, mod tidy |
| Documentation | Documentation | README, PRD, TRD, release notes, CHANGELOG |
| Security | Security | LICENSE, vulnerability scan, dependency audit, secret detection |
| Release | Release Management | Version availability, git status, CI configuration |
| Coordinator | Orchestration | Executes release workflow after all validations pass |
The workflow ensures:
- PM runs first - Validates version and scope before other checks
- QA, Docs, Security run in parallel - Independent validation after PM approval
- Release runs after all validations - Confirms release readiness
- Coordinator executes last - Only proceeds when all teams report GO
go install github.com/agentplexus/agent-team-release/cmd/atrelease@latestbrew tap agentplexus/tap
brew install atrelease# Run validation checks in current directory
atrelease check
# Run comprehensive validation with Go/No-Go report
atrelease validate --version=v1.0.0
# Execute full release workflow
atrelease release v1.0.0
# Generate changelog
atrelease changelog --since=v0.9.0
# Show version
atrelease versionRun validation checks for all detected languages.
atrelease check [directory]
# With options
atrelease check --verbose
atrelease check --no-test --no-lint
atrelease check --coverage
atrelease check --go-no-go # NASA-style Go/No-Go reportRun comprehensive validation across all areas (QA, Documentation, Release, Security).
atrelease validate [directory]
# With version-specific checks
atrelease validate --version=v1.0.0
# Skip specific areas
atrelease validate --skip-qa --skip-docs --skip-security
# Team status report format (template-based)
atrelease validate --format teamExecute the full release workflow.
atrelease release <version>
# Examples
atrelease release v1.0.0
atrelease release v1.0.0 --dry-run # Preview without changes
atrelease release v1.0.0 --skip-ci # Don't wait for CI
atrelease release v1.0.0 --verboseRelease workflow steps:
- Validate version format and availability
- Check working directory is clean
- Run validation checks (build, test, lint, format)
- Generate changelog via schangelog
- Update roadmap via sroadmap
- Create release commit
- Push to remote
- Wait for CI to pass
- Create and push release tag
Generate or update changelog using schangelog.
atrelease changelog [directory]
atrelease changelog --since=v0.9.0
atrelease changelog --dry-runUpdate README badges and version references.
atrelease readme [directory]
atrelease readme --version=v1.0.0
atrelease readme --dry-runUpdate roadmap using sroadmap.
atrelease roadmap [directory]
atrelease roadmap --dry-runShow version information.
atrelease version| Flag | Short | Description |
|---|---|---|
--verbose |
-v |
Show detailed output |
--interactive |
-i |
Enable interactive mode |
--json |
Output as structured data | |
--format |
Output format: toon, json, or team (validate only) |
| Language | Detection | Checks |
|---|---|---|
| Go | go.mod |
go build, go mod tidy, gofmt, golangci-lint, go test, local replace, untracked refs, error handling |
| TypeScript | package.json + tsconfig.json |
eslint, prettier, tsc --noEmit, npm test |
| JavaScript | package.json |
eslint, prettier, npm test |
| Python | pyproject.toml, setup.py, requirements.txt |
Coming soon |
| Rust | Cargo.toml |
Coming soon |
| Swift | Package.swift |
Coming soon |
| Check | Type | Description |
|---|---|---|
| no local replace | Hard | Fails if go.mod has local replace directives |
| mod tidy | Hard | Fails if go.mod/go.sum need updating |
| build | Hard | Fails if project doesn't compile |
| gofmt | Hard | Fails if code isn't formatted |
| golangci-lint | Hard | Fails if linter reports issues |
| tests | Hard | Fails if tests fail |
| error handling | Hard | Fails if errors are improperly discarded |
| untracked refs | Soft | Warns if tracked files reference untracked files |
| coverage | Soft | Reports coverage (requires gocoverbadge) |
The validate command checks four distinct areas:
| Area | Checks |
|---|---|
| QA | Build, tests, lint, format, error handling compliance |
| Documentation | README, PRD, TRD, release notes, CHANGELOG |
| Release | Version validation, git status, CI configuration |
| Security | LICENSE file, vulnerability scan, dependency audit, secret detection |
Create .releaseagent.yaml in your repository root:
# Global settings
verbose: false
# Language-specific settings
languages:
go:
enabled: true
test: true
lint: true
format: true
coverage: false
exclude_coverage: "cmd" # directories to exclude from coverage
typescript:
enabled: true
paths: ["frontend/"] # specific paths (empty = auto-detect)
test: true
lint: true
format: true
javascript:
enabled: false # disable for this repo| Option | Type | Default | Description |
|---|---|---|---|
enabled |
bool | true |
Enable/disable language checks |
paths |
[]string | auto | Specific paths to check |
test |
bool | true |
Run tests |
lint |
bool | true |
Run linter |
format |
bool | true |
Check formatting |
coverage |
bool | false |
Show coverage (Go only) |
To run agent-team-release automatically before every git push:
# Create the hook
cat > .git/hooks/pre-push << 'EOF'
#!/bin/bash
exec atrelease check
EOF
# Make it executable
chmod +x .git/hooks/pre-pushBypassing the hook:
git push --no-verify=== Summary ===
✓ Go: no local replace directives
✓ Go: mod tidy
✓ Go: build
✓ Go: gofmt
✓ Go: golangci-lint
✓ Go: tests
Passed: 6, Failed: 0, Skipped: 0
Standard JSON output for programmatic consumption.
Token-Oriented Object Notation - approximately 8x more token-efficient than JSON, optimized for LLM consumption.
Structured box report with per-team validation results:
╔════════════════════════════════════════════════════════════════════════════╗
║ TEAM STATUS REPORT ║
╠════════════════════════════════════════════════════════════════════════════╣
║ Project: github.com/agentplexus/agent-team-release ║
║ Target: v0.3.0 ║
╠════════════════════════════════════════════════════════════════════════════╣
║ RELEASE VALIDATION ║
╠════════════════════════════════════════════════════════════════════════════╣
║ qa-validation (qa) ║
║ build 🟢 GO ║
║ tests 🟢 GO 42 tests passed ║
║ lint 🟢 GO ║
╠════════════════════════════════════════════════════════════════════════════╣
║ security-validation (security) ║
║ license 🟢 GO MIT License ║
║ vulnerability-scan 🟡 WARN 1 deprecated ║
╠════════════════════════════════════════════════════════════════════════════╣
║ 🚀 TEAM: GO for v0.3.0 🚀 ║
╚════════════════════════════════════════════════════════════════════════════╝
Install as a Claude Code plugin for interactive release automation:
claude plugin add github:agentplexus/agent-team-release/plugins/claudeThe plugin includes:
- Commands:
/release-agent:release,/release-agent:check,/release-agent:changelog,/release-agent:version-next - Skills: Version analysis, commit classification
- Agents: Release coordinator subagent for orchestrating complete releases
See plugins/claude/README.md for full plugin documentation.
Use --interactive flag to enable Q&A mode where Release Agent can:
- Ask questions when issues arise
- Propose fixes for lint errors
- Get user approval before making changes
atrelease check --interactive
atrelease release v1.0.0 --interactive$ atrelease check
=== Pre-push Checks ===
Detecting languages...
Found: go in .
Running Go checks...
=== Summary ===
✓ Go: no local replace directives
✓ Go: mod tidy
✓ Go: build
✓ Go: gofmt
✓ Go: golangci-lint
✓ Go: tests
✓ Go: untracked references
Passed: 7, Failed: 0, Skipped: 0
All pre-push checks passed!
$ atrelease validate --version=v1.0.0
=== Release Validation: v1.0.0 ===
┌─────────────────────────────────────────┐
│ VALIDATION REPORT │
├─────────────────────────────────────────┤
│ QA │ 🟢 GO │
│ Documentation │ 🟢 GO │
│ Release │ 🟢 GO │
│ Security │ 🟢 GO │
├─────────────────────────────────────────┤
│ STATUS: GO FOR LAUNCH │
└─────────────────────────────────────────┘
$ atrelease release v1.0.0 --verbose
[1/9] Validating version...
✓ Version v1.0.0 is valid and available
[2/9] Checking working directory...
✓ Working directory is clean
[3/9] Running validation checks...
✓ All checks passed
[4/9] Generating changelog...
✓ CHANGELOG.md updated
[5/9] Updating roadmap...
✓ ROADMAP.md updated
[6/9] Creating release commit...
✓ Created commit: chore(release): v1.0.0
[7/9] Pushing to remote...
✓ Pushed to origin/main
[8/9] Waiting for CI...
✓ CI passed
[9/9] Creating tag...
✓ Created and pushed tag v1.0.0
Release v1.0.0 complete!
| Tool | Purpose |
|---|---|
git |
Version control operations |
gh |
GitHub CLI for CI status |
releasekit |
Language validation (build, test, lint) |
These tools are invoked by releasekit for language validation:
| Tool | Language | Purpose |
|---|---|---|
go |
Go | Build and test |
golangci-lint |
Go | Linting |
node, npm |
TypeScript/JS | Build and test |
eslint |
TypeScript/JS | Linting |
prettier |
TypeScript/JS | Formatting |
| Tool | Purpose |
|---|---|
schangelog |
Changelog generation |
sroadmap |
Roadmap management |
gocoverbadge |
Coverage badge generation |
govulncheck |
Vulnerability scanning |
- PRD.md - Product requirements
- TRD.md - Technical requirements
- ROADMAP.md - Development roadmap
- CHANGELOG.md - Release history
- releasekit - Release management toolkit for language validation
- schangelog - Structured changelog management
- sroadmap - Structured roadmap management
- gocoverbadge - Generate coverage badges
MIT License - see LICENSE for details.