Release Milestone Preparation
Prepare a release by verifying success criteria, backwards compatibility, ticket tagging, and documentation. Automates comprehensive validation before deployment.
description: Prepare a milestone for release by verifying success criteria, checking backwards compatibility, ensuring ticket tagging, and reviewing documentation. argument-hint: <version> [--deploy-aws] [--skip-docs] allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Task, WebFetch, Skill context: full
Release Preparation Workflow
Comprehensive release preparation for a GitHub milestone.
Arguments
$ARGUMENTS: The milestone version (e.g., "v0.4.0" or "0.4.0")--deploy-aws: Deploy a test stack to AWS to verify features (optional)--skip-docs: Skip documentation review (optional)
Workflow Steps
Execute these steps in order, providing progress updates to the user.
1. Milestone Status Check
Use the /milestone skill to get the current status:
/milestone <version>
Then fetch the full narrative issue body for success criteria:
gh issue view <epic-number> --json number,title,body
Report: milestone progress, open vs closed issues, narrative theme and success criteria.
2. Explore Code Changes
Compare changes between the previous version tag and current branch:
# List commits since previous version
git log v<prev>..<current> --oneline
# Show changed files
git diff v<prev>..<current> --stat
# For public API changes, examine:
# - src/zae_limiter/__init__.py (exports)
# - src/zae_limiter/limiter.py (RateLimiter methods)
# - src/zae_limiter/models.py (data models)
# - src/zae_limiter/cli.py (CLI commands)
Report: Summary of changes organized by area (API, CLI, infra, docs).
3. Verify Backwards Compatibility
Check that changes are backwards compatible:
- New parameters: Must have defaults (optional)
- New methods: Addition only, no removals
- Schema changes: Check for migration support
- CLI changes: New flags should have defaults
Look for:
- Function signatures with new required parameters
- Removed public exports in
__init__.py - Breaking changes in models
Report: Compatibility assessment with specific findings.
4. Verify Success Criteria (Optional: AWS Deployment)
If --deploy-aws is specified OR if success criteria require runtime verification:
-
Deploy a test stack:
AWS_PROFILE=zeroae-code/AWSPowerUserAccess uv run zae-limiter deploy \ --name test-release-prep \ --region us-east-1 \ --permission-boundary "arn:aws:iam::aws:policy/PowerUserAccess" \ --role-name-format "PowerUserPB-{}" -
Write and run verification script based on success criteria from narrative
-
Clean up:
AWS_PROFILE=zeroae-code/AWSPowerUserAccess uv run zae-limiter delete \ --name test-release-prep --yes
Report: Success criteria verification results (pass/fail for each).
5. Tag Untracked Work
Find and tag any commits/PRs between versions that aren't in the milestone:
# Find PRs merged since previous version
gh pr list --state merged --json number,title,mergedAt,milestone \
--jq '.[] | select(.milestone == null or .milestone.title != "vX.Y.Z")'
# Find closed issues that may be missing milestone
gh issue list --state closed --json number,title,closedAt,milestone \
--jq '.[] | select(.milestone == null)'
For each untracked item:
- Check if it was part of the release work
- Assign to milestone if appropriate
- Update narrative issue with "Ad-hoc Tickets" section
6. Documentation Review (unless --skip-docs)
Review documentation for completeness:
- Check narrative issue for documentation requirements
- Read relevant docs files:
CLAUDE.md- developer referencedocs/- user-facing documentation
- Verify examples match current API
- Update any outdated sections
Report: Documentation status (up-to-date / needs updates).
7. Update Narrative Issue
Update the epic issue with:
- Verified success criteria (check off completed items)
- Ad-hoc tickets section if untracked work was found
- Documentation status
gh issue edit <epic-number> --body "<updated-body>"
8. Final Summary
Provide a release readiness summary:
## Release Readiness: vX.Y.Z
**Status:** Ready / Needs Work
### Checklist
- [ ] All success criteria verified
- [ ] Backwards compatible
- [ ] All work tagged to milestone
- [ ] Documentation up-to-date
- [ ] Open issues: N remaining
### Open Items (if any)
- Issue #X: <title>
### Next Steps
1. Close remaining issues (if any)
2. Close narrative epic #X
3. Create release tag: `git tag vX.Y.Z && git push origin vX.Y.Z`
Important Notes
- Always use
AWS_PROFILE=zeroae-code/AWSPowerUserAccessfor AWS operations - Use permission boundary for Lambda stacks (see
.claude/rules/aws-testing.md) - Keep the user informed of progress at each step
- Ask for confirmation before making changes to issues/PRs
- If any step fails, report the failure and ask how to proceed
Related skills
Docker Compose Architect
Designs optimized Docker Compose configurations.
Incident Postmortem Writer
Writes structured and blameless incident postmortem reports.
Runbook Creator
Creates clear operational runbooks for common DevOps procedures.