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