Release Readiness Checklist
Conduct an interactive release readiness review, walking through each checklist category and producing a markdown summary at the end.
Workflow
- Detect build system - Check for Makefile and available targets
- Determine version - Analyze changes to recommend semantic version bump
- Walk through checklist - Review each category interactively with the user
- Generate summary - Output markdown checklist with status and action items
Step 0: Detect Build System
Check if the project has a Makefile or Justfile with standard targets:
# List Makefile targets
make -qp 2>/dev/null | grep -E "^[a-zA-Z_-]+:" | cut -d: -f1 | sort -u
# List Justfile recipes
just --list 2>/dev/null
Common targets/recipes to look for: build, test, lint, format, check, audit, clean
If Makefile or Justfile exists with these targets, prefer them over language-specific commands throughout the checklist:
| Task | Makefile | Justfile | Fallback |
|---|---|---|---|
| Lint | make lint | just lint | npm run lint, ruff check |
| Test | make test | just test | pytest, npm test |
| Build | make build | just build | npm run build, cargo build |
| Format | make format | just format | prettier, black |
| Audit | make audit | just audit | npm audit, pip-audit |
Step 1: Determine Version Type
Analyze the changes since the last release to recommend a version bump:
MAJOR (X.0.0) - Breaking changes
├── API contract changes (removed/renamed endpoints, changed request/response schemas)
├── Database schema changes requiring migration
├── Removed or renamed public interfaces/exports
├── Changed default behaviors that could break existing integrations
└── Dependency upgrades with breaking changes that surface to users
MINOR (x.Y.0) - New features, backward-compatible
├── New API endpoints or features
├── New optional parameters or configuration
├── Deprecations (without removal)
├── Performance improvements
└── New dependencies that don't affect public API
PATCH (x.y.Z) - Bug fixes, backward-compatible
├── Bug fixes
├── Security patches
├── Documentation updates
├── Internal refactoring (no behavior change)
└── Dependency updates (non-breaking)
Examine recent commits, changelog entries, or ask the user about changes to determine the appropriate version bump.
Step 2: Interactive Checklist Review
Walk through each category below. For each item:
- Ask the user for status (done, not applicable, needs work)
- Offer to help resolve blockers
- Track items that need attention
Categories
Code Quality
- All code changes reviewed and approved
- No TODO/FIXME comments blocking release
- No debug code or console statements in production paths
- Linting passes with no errors
- Type checking passes (if applicable)
Testing
- All tests pass
- Test coverage meets project threshold
- Critical paths have integration tests
- Manual testing completed for new features
- Regression testing for bug fixes
Documentation
- CHANGELOG updated with all notable changes
- README updated if features/setup changed
- API documentation reflects changes
- Migration guide written (for breaking changes)
Security
- No secrets or credentials in codebase
- Git history scanned for exposed secrets (see references/secrets-scanning.md)
- Dependencies scanned for vulnerabilities
- Security-sensitive changes reviewed
- Authentication/authorization changes tested
Versioning
- Version bumped according to semver (see references/semver.md)
- Version consistent across all package files
- Git tag prepared (not pushed)
- Previous version tagged and accessible
CI/CD
- All CI checks pass on release branch
- Pipeline configuration follows best practices (see references/ci-cd-best-practices.md)
- Build artifacts generated successfully
- Deployment pipeline tested in staging
- Rollback procedure documented and tested
Release Artifacts
- Release notes drafted
- Changelog entry finalized
- Distribution packages built
- Checksums/signatures generated (if applicable)
Operational Readiness
- Monitoring and alerting configured
- Rollback plan documented
- On-call team notified
- Communication plan ready (announcements, notifications)
See references/checklist-details.md for detailed explanations of each item.
Step 3: Generate Summary
After completing the review, output a markdown summary:
# Release Readiness Report
**Project:** [name]
**Proposed Version:** [X.Y.Z]
**Date:** [YYYY-MM-DD]
**Status:** [Ready / Blocked]
## Version Determination
[Explanation of why this version number was chosen based on semver]
## Checklist Summary
| Category | Status | Blockers |
|----------|--------|----------|
| Code Quality | ✅/⚠️/❌ | [issues] |
| Testing | ✅/⚠️/❌ | [issues] |
| Documentation | ✅/⚠️/❌ | [issues] |
| Security | ✅/⚠️/❌ | [issues] |
| Versioning | ✅/⚠️/❌ | [issues] |
| CI/CD | ✅/⚠️/❌ | [issues] |
| Release Artifacts | ✅/⚠️/❌ | [issues] |
| Operational Readiness | ✅/⚠️/❌ | [issues] |
## Action Items
- [ ] [Blocking items that must be resolved]
- [ ] [Recommended items to address]
## Approval
- [ ] Release approved by: _______________
- [ ] Release date/time: _______________
Resources
- references/semver.md - Semantic versioning rules and examples
- references/checklist-details.md - Detailed explanations for each checklist item
- references/secrets-scanning.md - Guide to scanning for exposed secrets in git history
- references/ci-cd-best-practices.md - GitHub Actions and GitLab CI pipeline best practices