shipping-and-launch
Pre-launch checklists, staged rollouts (canary -> 10% -> 50% -> 100%), rollback plans, feature flag verification. Complements release-changelog (version bump + changelog) by covering the actual deploy
SKILL.mdskills/shipping-and-launch/SKILL.md
GitHubShipping & Launch
Problem it solves
Shipping is risky without a structured process:
- Deploying with unverified changes and hoping for the best
- No rollback plan — when something goes wrong, panic mode
- Rushed launches without smoke tests
- Feature flags that are enabled but nobody verified the off-state
- Staged rollouts done manually or skipped entirely
- No way to measure if the launch was successful
Protocol
1. Pre-launch checklist
Before any deployment, verify:
- All tests pass (unit, integration, e2e)
- Code review completed and all findings resolved
- CI pipeline is green
- Database migrations are backward-compatible
- Feature flags are in place (if needed)
- Rollback plan is documented
- Monitoring and alerting are configured
- Performance benchmarks are within budget
- Dependencies are up to date (no known vulnerabilities)
- Documentation is updated
- Changelog is updated (see release-changelog)
2. Staged rollout
Do NOT deploy to 100% of users at once. Use progressive delivery:
- Canary (1-2%) — Deploy to internal users or a small percentage. Verify core functionality.
- Ring 1 (10%) — Expand. Watch monitoring closely for errors, latency, and usage patterns.
- Ring 2 (25-50%) — Broader rollout. Verify all features work at scale.
- Production (100%) — Full rollout only after all previous rings pass.
Between each stage, wait at least:
- Canary: 10-30 minutes
- Ring 1: 1-4 hours
- Ring 2: 4-24 hours
- Production: Monitor for 24-48 hours before declaring success
3. Rollback plan
Every deployment must have a documented rollback plan:
## Rollback Plan
- **What triggers rollback**: Error rate >1%, P95 latency increase >50%, any P0 alert
- **Rollback command**: `kubectl rollout undo deployment/X` or `git revert HEAD && deploy`
- **Rollback verification**: Monitor dashboards for return to baseline
- **Data migration reversal**: Run `./scripts/rollback-db.sh` (if applicable)
- **Communication**: Notify #team channel, tag oncall
Test the rollback plan before the launch. If you can't roll back, you can't ship.
4. Feature flags
Before shipping a feature behind a flag:
- Off-state verification: Verify the system works normally with the flag OFF
- On-state verification: Verify the feature works with the flag ON
- Flag cleanup: Schedule a task to remove the flag after the rollout is complete
- Kill switch: Ensure the flag can be toggled off quickly without a deploy
5. Post-launch monitoring
After full rollout:
- Monitor dashboards for 24-48 hours
- Watch for: error rate, latency, traffic patterns, resource usage
- Compare against baseline metrics from before the launch
- Document any incidents or issues found
- Declare launch complete only after monitoring period passes
Detection triggers
Activate when:
- Preparing for a deployment or release
- User says "ship", "deploy", "launch", "roll out"
- A release branch is created
- Feature flags are being enabled
- After a release (post-launch monitoring)
When NOT to use
- Development deployments to local/staging
- Trivial hotfixes that need immediate deployment (use minimal checklist only)
- User explicitly says "just ship it, skip the process"
Cross-references
release-changelog — Run release-changelog first (version bump, changelog, tag), then shipping-and-launch (deploy, rollout, monitor).
ci-cd-automation — CI/CD pipelines automate the deployment process. This skill defines the human process around the automation.
incremental-implementation — Feature flags from incremental implementation are used in staged rollouts. Each slice ships independently.
git-workflow-conventional-commits — The release commit should follow conventional commit format. Use
chore(release):for release commits.code-review — Pre-launch checklist includes code review completion.
test-driven-development — Pre-launch checklist includes test suite passing.
anti-premature-termination — Do not declare the launch complete until the monitoring period passes and everything is verified.
project-backup-status — Backup before launch to safeguard against destructive deployment mistakes.