Sprint 3 is complete. 8 stories merged to develop. Time to ship v2.0.0.
โฑ ~15 min ยท Hands-on
Sprint 3 just wrapped. The team completed 8 user stories on the develop branch: task filtering, user permissions, notification preferences, and more. All stories passed their Definition of Done. It's time to cut a release and ship to production.
A release branch freezes the feature set. From this point, only bug fixes are allowed โ no new features.
/agile-code-branch release/v2.0.0 --from develop
Branch created: release/v2.0.0 (from develop)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Base branch: develop (up to date)
Switched to: release/v2.0.0
Tracking: origin/release/v2.0.0
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
Ready โ release branch created from develop
Only bug fixes are allowed on the release branch. No new features, no refactoring, no experiments. If a feature isn't ready, it stays on develop for the next release.
Run the complete pipeline on the release branch to verify everything works together.
/agile-code-ci
CI Pipeline โ release/v2.0.0
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Build .................. โ
PASS (18s)
Unit Tests ............. โ
142/142 passing (41s)
Integration Tests ...... โ
24/24 passing (33s)
E2E Tests .............. โ
12/12 passing (67s)
Lint ................... โ
0 issues
Code Coverage .......... โ
84% (threshold: 80%)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Result: โ
ALL CHECKS PASSED
Before any production release, scan dependencies for known vulnerabilities.
/agile-security-scan
Security Scan โ release/v2.0.0
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Dependencies scanned: 87
Vulnerabilities found:
๐ด Critical: 0
๐ High: 0
๐ก Medium: 1
๐ต Low: 0
Details:
๐ก lodash@4.17.20 โ Prototype Pollution (CVE-2021-23337)
Severity: Medium
Fix: upgrade to lodash@4.17.21
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Action Required: 1 medium vulnerability
npm update lodash
# or
npm install lodash@4.17.21
Re-scan to confirm:
/agile-security-scan
Dependencies scanned: 87
Vulnerabilities found: 0
โ
CLEAN โ no known vulnerabilities
Deploy the release branch to the staging environment. @qa runs exploratory testing.
Exploratory Testing โ staging/v2.0.0
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Tested flows:
โ
User registration and login
โ
Task creation and editing
โ
Task filtering by status (new feature)
โ
User permissions (new feature)
โ
Notification preferences (new feature)
โ Task export to CSV โ date format incorrect
Bug found:
BUG-078: CSV export uses MM/DD/YYYY instead of ISO 8601
Severity: Minor
Fix: Update date formatter in CsvExporter
Fix the bug on the release branch:
/agile-code-commit
fix(export): use ISO 8601 date format in CSV export
This fix is allowed because it's a bug. If @qa had requested a new "export to PDF" feature, it would be rejected โ new features go into the next sprint, not the release branch.
Update the version number in your project manifest.
# package.json
{
"name": "task-manager",
"version": "2.0.0",
...
}
/agile-code-commit
chore(release): bump version to 2.0.0
Before cutting the release, generate a structured changelog from all the commits on the release branch:
/agile-ship-changelog
## v2.0.0 (2026-04-04)
### Features
- feat(tasks): add task filtering by status (#42)
- feat(users): role-based permission system (#45)
- feat(notifications): user notification preferences (#48)
- feat(tasks): bulk task operations (#50)
- feat(dashboard): sprint velocity chart (#51)
### Bug Fixes
- fix(export): use ISO 8601 date format in CSV export (#BUG-078)
- fix(auth): session timeout now respects user timezone (#BUG-071)
### Security
- chore(deps): upgrade lodash to 4.17.21 (CVE-2021-23337)
### Internal
- refactor(user): split UserService into focused services
- test: increase coverage from 72% to 84%
/agile-ship-changelog generates the changelog from commit history โ grouping by type (features, fixes, security, internal) and linking to PRs. /agile-ship-release handles the broader release process including version bumping and tagging. Use changelog first to review what's included, then release to finalize.
/agile-ship-release
This command finalizes the release โ applying the version tag and preparing the release artifacts.
A release branch must merge to both main (production) and develop (so bug fixes flow back). The /agile-code-merge command handles the complete release merge workflow in one step: merge to main, merge to develop, tag, push, and clean up the branch.
/agile-code-merge release/v2.0.0
Merge โ release/v2.0.0
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Detected: release branch โ merging to main + develop
Merge to main:
Strategy: --no-ff (preserves branch history)
Commit: Merge branch 'release/v2.0.0' into main
Result .................. โ
merged
Merge to develop:
Strategy: --no-ff (preserves branch history)
Commit: Merge branch 'release/v2.0.0' into develop
Result .................. โ
merged
Tag:
Created: v2.0.0 (annotated)
Message: "Release v2.0.0"
Result .................. โ
tagged
Push:
main .................... โ
pushed
develop ................. โ
pushed
v2.0.0 .................. โ
pushed
Cleanup:
Local branch ............ โ
deleted release/v2.0.0
Remote branch ........... โ
deleted origin/release/v2.0.0
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
Release v2.0.0 merged, tagged, and cleaned up
Just like hotfixes, a release branch merges to both main and develop. /agile-code-merge detects the release/ prefix and automatically performs both merges. Skipping the develop merge would mean the CSV date fix (BUG-078) and the lodash upgrade are lost in future development.
/agile-code-merge recognizes the release/ prefix and performs the full release merge flow: merge to main with --no-ff (preserving branch history), merge to develop with --no-ff, create an annotated tag from the version in the branch name, push all changes, and delete the release branch locally and on the remote.
/agile-ship-deploy
Deploy โ v2.0.0 โ production
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Pre-deploy checks:
Tag exists .............. โ
v2.0.0
CI passed ............... โ
all green
Security scan ........... โ
0 vulnerabilities
QA sign-off ............. โ
approved
Rolling deploy:
pod-1/4 ................. โ
healthy
pod-2/4 ................. โ
healthy
pod-3/4 ................. โ
healthy
pod-4/4 ................. โ
healthy
Post-deploy validation:
Health checks ........... โ
all endpoints responding
Smoke test: login ....... โ
pass
Smoke test: tasks ....... โ
pass
Smoke test: filtering ... โ
pass (new feature)
Smoke test: export ...... โ
pass (bug fix verified)
Error rate .............. โ
0.02% (baseline: 0.03%)
Response time p99 ....... โ
180ms (baseline: 195ms)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Deploy complete: v2.0.0 is LIVE
Time: 2026-04-04 14:22 UTC
If health checks fail, error rates spike, or smoke tests don't pass after deploying, roll back immediately:
/agile-ship-rollback
โช Rollback โ v2.0.0 โ v1.9.0
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Reason: post-deploy smoke test failure
Rolling back to: v1.9.0 (last known good)
pod-1/4 ............. โ
rolled back
pod-2/4 ............. โ
rolled back
pod-3/4 ............. โ
rolled back
pod-4/4 ............. โ
rolled back
Health checks ......... โ
all endpoints responding
Error rate ............ โ
returned to baseline
Rollback complete. Production is on v1.9.0.
โ ๏ธ Investigate and fix the issue on the release branch before re-deploying.
Always have a rollback plan before deploying. /agile-ship-rollback reverts production to the previous version in seconds. It's faster and safer than debugging a broken deploy in production.
The release branch was already cleaned up by /agile-code-merge in Step 7. All that's left is notifying stakeholders:
๐ข Release Notification โ v2.0.0
Task Manager v2.0.0 is now live in production.
New features:
โข Task filtering by status
โข Role-based permissions
โข Notification preferences
โข Bulk task operations
โข Sprint velocity chart
Bug fixes: 2 resolved
Security: lodash upgraded (CVE-2021-23337)
Release notes: https://github.com/team/task-manager/releases/v2.0.0
/agile-code-branch to create a release branch from develop, freezing the feature set/agile-code-ci on the release branch for full pipeline validation/agile-security-scan to catch vulnerable dependencies before shipping/agile-ship-release/agile-code-merge to merge to both main and develop, tag, and clean up the release branch/agile-ship-deploy with health checks and smoke testsWhere does a release branch merge?