Create Release Checklist
Overview
Generate a structured, actionable release checklist that covers the full deployment lifecycle from code freeze to post-deploy verification. The output is a markdown file with checkboxes and owner assignments saved to .chalk/docs/engineering/.
Workflow
Read project context — Check for .chalk/docs/engineering/ files to understand:
- Architecture and deployment topology (monolith vs. microservices, deploy targets)
- Existing monitoring and alerting setup
- Database migration patterns
- Feature flag infrastructure
- Previous release checklists (to inherit any project-specific items)
- CI/CD pipeline configuration
Determine the version — From $ARGUMENTS:
- If a version is provided, use it
- If not, check
package.json, pyproject.toml, Cargo.toml, or equivalent for the current version and suggest the next one based on the changes (semver)
- Run
git log --oneline <last-tag>..HEAD to understand what is being released
Analyze the release scope — Categorize the changes since the last release:
- Run
git log --oneline <last-tag>..HEAD to list all commits
- Identify: new features, bugfixes, breaking changes, dependency updates, migrations
- Flag high-risk changes: database migrations, API contract changes, new external integrations, auth changes
- Check for any open PRs that should be included or excluded
Generate the checklist — Build the checklist using the template in the Output section. Customize it based on:
- The project's tech stack (skip irrelevant sections)
- The risk level of the release (more gates for riskier releases)
- The project's deployment infrastructure (Kubernetes, serverless, bare metal, etc.)
- Whether this is a major, minor, or patch release
Find the next file number — Read filenames in .chalk/docs/engineering/ to find the highest numbered file. The next number is highest + 1.
Write the checklist — Save to .chalk/docs/engineering/<n>_release_checklist_<version>.md where <version> uses underscores instead of dots (e.g., v1_2_0).
Confirm — Tell the user the checklist was created with its path. Highlight any high-risk items that need extra attention.
Output
The checklist file follows this structure:
# Release Checklist: <version>
Last updated: <YYYY-MM-DD> (initial creation)
**Release date**: <target date or TBD>
**Release manager**: <assign or TBD>
**Risk level**: Low | Medium | High
**Summary**: <1-2 sentences describing what this release contains>
## Changes in This Release
<!-- Auto-generated from git log -->
- <commit summaries grouped by type: features, fixes, chores>
## Pre-Release
### Code Freeze
- [ ] Feature branch merged to release branch — **Owner: TBD**
- [ ] All PRs for this release are merged — **Owner: TBD**
- [ ] No open blockers in the issue tracker — **Owner: TBD**
- [ ] Version number bumped in source files — **Owner: TBD**
- [ ] Changelog updated with user-facing changes — **Owner: TBD**
### Dependency Audit
- [ ] `npm audit` / `pip audit` / equivalent shows no critical vulnerabilities — **Owner: TBD**
- [ ] All new dependencies reviewed for license compatibility — **Owner: TBD**
- [ ] Lock file is committed and up to date — **Owner: TBD**
### Migration Review
- [ ] Database migrations tested on a copy of production data — **Owner: TBD**
- [ ] Migrations are backward-compatible (can roll back without data loss) — **Owner: TBD**
- [ ] Migration execution time estimated for production data volume — **Owner: TBD**
- [ ] Data backups scheduled before migration runs — **Owner: TBD**
## Testing
### Staging Deployment
- [ ] Deployed to staging environment successfully — **Owner: TBD**
- [ ] Staging environment matches production configuration — **Owner: TBD**
- [ ] Environment variables and secrets configured — **Owner: TBD**
### Test Execution
- [ ] Full test suite passes in CI — **Owner: TBD**
- [ ] Smoke tests pass on staging — **Owner: TBD**
- [ ] Regression test suite passes — **Owner: TBD**
- [ ] Performance baseline measured (response times, memory, CPU) — **Owner: TBD**
- [ ] Load testing completed if this release changes hot paths — **Owner: TBD**
### Manual Verification
- [ ] Critical user flows tested end-to-end on staging — **Owner: TBD**
- [ ] New features verified against acceptance criteria — **Owner: TBD**
- [ ] UI changes verified across supported browsers/devices — **Owner: TBD**
- [ ] Accessibility audit for UI changes — **Owner: TBD**
## Deploy
### Feature Flags
- [ ] New feature flags configured with correct default states — **Owner: TBD**
- [ ] Feature flag rollout plan documented (percentage ramp, timeline) — **Owner: TBD**
- [ ] Kill switch verified for high-risk features — **Owner: TBD**
### Monitoring
- [ ] Monitoring dashboards updated for new features — **Owner: TBD**
- [ ] Alerting thresholds reviewed and adjusted — **Owner: TBD**
- [ ] Error rate baseline recorded pre-deploy — **Owner: TBD**
- [ ] Key business metrics baseline recorded pre-deploy — **Owner: TBD**
### Deployment Execution
- [ ] Deploy window communicated to the team — **Owner: TBD**
- [ ] Deploy executed (canary -> percentage rollout -> full) — **Owner: TBD**
- [ ] Health checks passing on all instances — **Owner: TBD**
- [ ] Error rates stable within normal thresholds — **Owner: TBD**
- [ ] Response times within acceptable range — **Owner: TBD**
- [ ] Smoke tests pass on production — **Owner: TBD**
## Rollback
### Trigger Criteria
Define the conditions under which you will roll back:
- Error rate exceeds <X>% (baseline + threshold)
- P99 latency exceeds <X>ms
- Critical user flow failure (login, checkout, etc.)
- Data integrity issue detected
### Rollback Procedure
- [ ] Rollback command documented and tested: `<command>` — **Owner: TBD**
- [ ] Database rollback procedure documented (if migrations were run) — **Owner: TBD**
- [ ] Feature flags can be disabled independently of code rollback — **Owner: TBD**
- [ ] Rollback does not require data migration reversal — **Owner: TBD**
- [ ] Rollback verified on staging before production deploy — **Owner: TBD**
### Data Considerations
- [ ] Data written by new code is compatible with old code after rollback — **Owner: TBD**
- [ ] No irreversible data transformations in this release — **Owner: TBD**
- [ ] Cache invalidation plan for rollback scenario — **Owner: TBD**
## Communication
### Internal
- [ ] Engineering team notified of deploy window — **Owner: TBD**
- [ ] Support team briefed on new features and known issues — **Owner: TBD**
- [ ] Support documentation updated with new feature guides — **Owner: TBD**
- [ ] On-call engineer identified for the deploy window — **Owner: TBD**
### External
- [ ] Release notes drafted for users — **Owner: TBD**
- [ ] API changelog updated if public API changed — **Owner: TBD**
- [ ] Migration guide written if breaking changes affect consumers — **Owner: TBD**
- [ ] Status page updated if maintenance window needed — **Owner: TBD**
## Post-Deploy Verification
- [ ] Monitor error rates for 1 hour post-deploy — **Owner: TBD**
- [ ] Verify key metrics are stable (conversion rate, active users, etc.) — **Owner: TBD**
- [ ] Confirm feature flag rollout proceeding as planned — **Owner: TBD**
- [ ] Collect initial user feedback if applicable — **Owner: TBD**
- [ ] Schedule post-mortem if any issues occurred — **Owner: TBD**
- [ ] Tag the release in git: `git tag -a <version> -m "Release <version>"` — **Owner: TBD**
Customization by Risk Level
Low Risk (patch release, minor bugfixes)
- Migration Review section can be skipped if no schema changes
- Load testing is optional
- Canary deploy can be shortened or skipped
- Rollback section is still required but can be simplified
Medium Risk (minor release, new features)
- Full checklist applies
- Feature flag section is mandatory for new features
- Manual verification required for all new user flows
High Risk (major release, breaking changes, large migrations)
- All sections are mandatory with no shortcuts
- Add a "War Room" section: who is on-call, communication channel, escalation path
- Require sign-off from at least two engineers before deploy
- Extend post-deploy monitoring to 24 hours
- Schedule a dry-run deploy to staging with production-like traffic
Day-of-Week Guidance
- Monday-Wednesday: Preferred deploy days. Full team available for monitoring.
- Thursday: Acceptable for low-risk releases only. Ensure Friday coverage.
- Friday: Do not deploy unless it is a critical hotfix with a rollback plan already tested. The team will not be at full capacity if issues arise over the weekend.
- Weekends/Holidays: Emergency hotfixes only. Require explicit approval and on-call staffing.
Anti-patterns
- Skipping staging — "It works on my machine" is not a deployment strategy. Every release goes through staging, no exceptions.
- No rollback plan — If you cannot describe how to undo this release in under 5 minutes, you are not ready to ship it.
- Untested migrations — Running a migration on production for the first time is reckless. Test on a copy of production data, measure execution time, and have a reversal plan.
- Deploying on Friday — Unless it is a critical hotfix, wait until Monday. Weekend incidents with a skeleton crew lead to extended outages and burnout.
- Not notifying support — Support teams field user complaints. If they do not know what changed, they cannot help users, and they will escalate everything to engineering.
- No monitoring for new features — If you ship a feature without a dashboard or alerts, you will not know it is broken until users tell you. Instrument first, ship second.
- Big-bang deploys — Ship behind feature flags and ramp gradually. A 1% rollout that catches a bug saves 99% of your users from experiencing it.
- Skipping the post-deploy check — "It deployed successfully" is not the same as "it works in production." Verify user flows, check error rates, and watch metrics for at least an hour.
- Undocumented rollback — "We will figure it out if we need to" is not a rollback plan. Write down the exact commands and test them before you need them.
1---2name: create-release-checklist-23description: Generate a comprehensive release checklist when the user asks to prepare a release, create a release plan, or ship a version4---5
6# Create Release Checklist
7
8## Overview
9
10Generate a structured, actionable release checklist that covers the full deployment lifecycle from code freeze to post-deploy verification. The output is a markdown file with checkboxes and owner assignments saved to `.chalk/docs/engineering/`.
11
12## Workflow
13
141. **Read project context** — Check for `.chalk/docs/engineering/` files to understand:
15 - Architecture and deployment topology (monolith vs. microservices, deploy targets)
16 - Existing monitoring and alerting setup
17 - Database migration patterns
18 - Feature flag infrastructure
19 - Previous release checklists (to inherit any project-specific items)
20 - CI/CD pipeline configuration
21
222. **Determine the version** — From `$ARGUMENTS`:
23 - If a version is provided, use it
24 - If not, check `package.json`, `pyproject.toml`, `Cargo.toml`, or equivalent for the current version and suggest the next one based on the changes (semver)
25 - Run `git log --oneline <last-tag>..HEAD` to understand what is being released
26
273. **Analyze the release scope** — Categorize the changes since the last release:
28 - Run `git log --oneline <last-tag>..HEAD` to list all commits
29 - Identify: new features, bugfixes, breaking changes, dependency updates, migrations
30 - Flag high-risk changes: database migrations, API contract changes, new external integrations, auth changes
31 - Check for any open PRs that should be included or excluded
32
334. **Generate the checklist** — Build the checklist using the template in the Output section. Customize it based on:
34 - The project's tech stack (skip irrelevant sections)
35 - The risk level of the release (more gates for riskier releases)
36 - The project's deployment infrastructure (Kubernetes, serverless, bare metal, etc.)
37 - Whether this is a major, minor, or patch release
38
395. **Find the next file number** — Read filenames in `.chalk/docs/engineering/` to find the highest numbered file. The next number is `highest + 1`.
40
416. **Write the checklist** — Save to `.chalk/docs/engineering/<n>_release_checklist_<version>.md` where `<version>` uses underscores instead of dots (e.g., `v1_2_0`).
42
437. **Confirm** — Tell the user the checklist was created with its path. Highlight any high-risk items that need extra attention.
44
45## Output
46
47The checklist file follows this structure:
48
49```markdown
50# Release Checklist: <version>
51
52Last updated: <YYYY-MM-DD> (initial creation)
53
54**Release date**: <target date or TBD>
55**Release manager**: <assign or TBD>
56**Risk level**: Low | Medium | High
57**Summary**: <1-2 sentences describing what this release contains>
58
59## Changes in This Release
60
61<!-- Auto-generated from git log -->
62- <commit summaries grouped by type: features, fixes, chores>
63
64## Pre-Release
65
66### Code Freeze
67- [ ] Feature branch merged to release branch — **Owner: TBD**
68- [ ] All PRs for this release are merged — **Owner: TBD**
69- [ ] No open blockers in the issue tracker — **Owner: TBD**
70- [ ] Version number bumped in source files — **Owner: TBD**
71- [ ] Changelog updated with user-facing changes — **Owner: TBD**
72
73### Dependency Audit
74- [ ] `npm audit` / `pip audit` / equivalent shows no critical vulnerabilities — **Owner: TBD**
75- [ ] All new dependencies reviewed for license compatibility — **Owner: TBD**
76- [ ] Lock file is committed and up to date — **Owner: TBD**
77
78### Migration Review
79- [ ] Database migrations tested on a copy of production data — **Owner: TBD**
80- [ ] Migrations are backward-compatible (can roll back without data loss) — **Owner: TBD**
81- [ ] Migration execution time estimated for production data volume — **Owner: TBD**
82- [ ] Data backups scheduled before migration runs — **Owner: TBD**
83
84## Testing
85
86### Staging Deployment
87- [ ] Deployed to staging environment successfully — **Owner: TBD**
88- [ ] Staging environment matches production configuration — **Owner: TBD**
89- [ ] Environment variables and secrets configured — **Owner: TBD**
90
91### Test Execution
92- [ ] Full test suite passes in CI — **Owner: TBD**
93- [ ] Smoke tests pass on staging — **Owner: TBD**
94- [ ] Regression test suite passes — **Owner: TBD**
95- [ ] Performance baseline measured (response times, memory, CPU) — **Owner: TBD**
96- [ ] Load testing completed if this release changes hot paths — **Owner: TBD**
97
98### Manual Verification
99- [ ] Critical user flows tested end-to-end on staging — **Owner: TBD**
100- [ ] New features verified against acceptance criteria — **Owner: TBD**
101- [ ] UI changes verified across supported browsers/devices — **Owner: TBD**
102- [ ] Accessibility audit for UI changes — **Owner: TBD**
103
104## Deploy
105
106### Feature Flags
107- [ ] New feature flags configured with correct default states — **Owner: TBD**
108- [ ] Feature flag rollout plan documented (percentage ramp, timeline) — **Owner: TBD**
109- [ ] Kill switch verified for high-risk features — **Owner: TBD**
110
111### Monitoring
112- [ ] Monitoring dashboards updated for new features — **Owner: TBD**
113- [ ] Alerting thresholds reviewed and adjusted — **Owner: TBD**
114- [ ] Error rate baseline recorded pre-deploy — **Owner: TBD**
115- [ ] Key business metrics baseline recorded pre-deploy — **Owner: TBD**
116
117### Deployment Execution
118- [ ] Deploy window communicated to the team — **Owner: TBD**
119- [ ] Deploy executed (canary -> percentage rollout -> full) — **Owner: TBD**
120- [ ] Health checks passing on all instances — **Owner: TBD**
121- [ ] Error rates stable within normal thresholds — **Owner: TBD**
122- [ ] Response times within acceptable range — **Owner: TBD**
123- [ ] Smoke tests pass on production — **Owner: TBD**
124
125## Rollback
126
127### Trigger Criteria
128Define the conditions under which you will roll back:
129- Error rate exceeds <X>% (baseline + threshold)
130- P99 latency exceeds <X>ms
131- Critical user flow failure (login, checkout, etc.)
132- Data integrity issue detected
133
134### Rollback Procedure
135- [ ] Rollback command documented and tested: `<command>` — **Owner: TBD**
136- [ ] Database rollback procedure documented (if migrations were run) — **Owner: TBD**
137- [ ] Feature flags can be disabled independently of code rollback — **Owner: TBD**
138- [ ] Rollback does not require data migration reversal — **Owner: TBD**
139- [ ] Rollback verified on staging before production deploy — **Owner: TBD**
140
141### Data Considerations
142- [ ] Data written by new code is compatible with old code after rollback — **Owner: TBD**
143- [ ] No irreversible data transformations in this release — **Owner: TBD**
144- [ ] Cache invalidation plan for rollback scenario — **Owner: TBD**
145
146## Communication
147
148### Internal
149- [ ] Engineering team notified of deploy window — **Owner: TBD**
150- [ ] Support team briefed on new features and known issues — **Owner: TBD**
151- [ ] Support documentation updated with new feature guides — **Owner: TBD**
152- [ ] On-call engineer identified for the deploy window — **Owner: TBD**
153
154### External
155- [ ] Release notes drafted for users — **Owner: TBD**
156- [ ] API changelog updated if public API changed — **Owner: TBD**
157- [ ] Migration guide written if breaking changes affect consumers — **Owner: TBD**
158- [ ] Status page updated if maintenance window needed — **Owner: TBD**
159
160## Post-Deploy Verification
161
162- [ ] Monitor error rates for 1 hour post-deploy — **Owner: TBD**
163- [ ] Verify key metrics are stable (conversion rate, active users, etc.) — **Owner: TBD**
164- [ ] Confirm feature flag rollout proceeding as planned — **Owner: TBD**
165- [ ] Collect initial user feedback if applicable — **Owner: TBD**
166- [ ] Schedule post-mortem if any issues occurred — **Owner: TBD**
167- [ ] Tag the release in git: `git tag -a <version> -m "Release <version>"` — **Owner: TBD**
168```
169
170## Customization by Risk Level
171
172### Low Risk (patch release, minor bugfixes)
173- Migration Review section can be skipped if no schema changes
174- Load testing is optional
175- Canary deploy can be shortened or skipped
176- Rollback section is still required but can be simplified
177
178### Medium Risk (minor release, new features)
179- Full checklist applies
180- Feature flag section is mandatory for new features
181- Manual verification required for all new user flows
182
183### High Risk (major release, breaking changes, large migrations)
184- All sections are mandatory with no shortcuts
185- Add a "War Room" section: who is on-call, communication channel, escalation path
186- Require sign-off from at least two engineers before deploy
187- Extend post-deploy monitoring to 24 hours
188- Schedule a dry-run deploy to staging with production-like traffic
189
190## Day-of-Week Guidance
191
192- **Monday-Wednesday**: Preferred deploy days. Full team available for monitoring.
193- **Thursday**: Acceptable for low-risk releases only. Ensure Friday coverage.
194- **Friday**: Do not deploy unless it is a critical hotfix with a rollback plan already tested. The team will not be at full capacity if issues arise over the weekend.
195- **Weekends/Holidays**: Emergency hotfixes only. Require explicit approval and on-call staffing.
196
197## Anti-patterns
198
199- **Skipping staging** — "It works on my machine" is not a deployment strategy. Every release goes through staging, no exceptions.
200- **No rollback plan** — If you cannot describe how to undo this release in under 5 minutes, you are not ready to ship it.
201- **Untested migrations** — Running a migration on production for the first time is reckless. Test on a copy of production data, measure execution time, and have a reversal plan.
202- **Deploying on Friday** — Unless it is a critical hotfix, wait until Monday. Weekend incidents with a skeleton crew lead to extended outages and burnout.
203- **Not notifying support** — Support teams field user complaints. If they do not know what changed, they cannot help users, and they will escalate everything to engineering.
204- **No monitoring for new features** — If you ship a feature without a dashboard or alerts, you will not know it is broken until users tell you. Instrument first, ship second.
205- **Big-bang deploys** — Ship behind feature flags and ramp gradually. A 1% rollout that catches a bug saves 99% of your users from experiencing it.
206- **Skipping the post-deploy check** — "It deployed successfully" is not the same as "it works in production." Verify user flows, check error rates, and watch metrics for at least an hour.
207- **Undocumented rollback** — "We will figure it out if we need to" is not a rollback plan. Write down the exact commands and test them before you need them.