launch-readiness
Produce a go/no-go launch readiness report for a merged change before it goes live — one row per check (rollback path, alert and runbook per new failure mode, NFR targets measured, comms drafted, data/privacy sign-off), each with an owner, evidence link, and met / not met / n/a-because status, ending in a PROCEED / PROCEED WITH CONDITIONS / REVISE / BLOCKED verdict. Use when the user asks "are we ready to launch", "go/no-go", "production readiness review", "launch checklist", or "can we ship this to users".
Other ways to install
With the sibling skills it hands off to:
The whole pack it belongs to:
By hand, from a clone of the repo:
In Claude Code, with the dev-team plugin installed, invoke it as:
Try it
A realistic prompt from the skill's acceptance evals:
Are we ready to launch? PR #412 adds a `loyalty_points` column to `customers`, backfills it from order history, and shows points on the checkout page. Going to 100% of users Thursday. Load test hit p99 180ms against a 250ms target (link: grafana/d/lt-412). We have a dashboard but haven't added alerts yet. Support hasn't been told.
What a good result looks like
Example output
schema change that comes out REVISE · the skill's own worked example, source
Go/no-go for release
orders-v4.2. It splitsorders.addressintoshipping_address_idpointing at a newaddressestable. We followed the migration plan (docs/migrations/orders-address.md): expand and backfill are done in staging, and dual-write is behind the flagorders.address_split. Rollback is "turn the flag off". It was rehearsed in staging on 2026-09-28 (log: ci/run/88213). The p99 target for order reads is 120ms, and the canary at 5% shows 96ms (grafana/d/orders-canary). The existingorders-5xxalert covers this. Release notes are drafted in PR #977. Plan is 5% → 50% → 100% over three days.
Launch readiness — orders-v4.2 (address split)
Change: release orders-v4.2 · Reach: 5% → 50% → 100% over 3 days · Release owner: Orders tech lead Assessed: 2026-10-01 · Inputs: migration plan, staging rollback log, canary dashboard, PR #977
New failure modes
| # | Failure mode | Who is hurt | Reversible? |
|---|---|---|---|
| F1 | Dual-write diverges: an order is saved with an addresses row that doesn't match orders.address | Customers shipped to the wrong address | Partly. Data can be fixed, parcels already sent cannot |
| F2 | The read path picks the new column before the backfill is complete for that tenant | Customers who see a blank address at checkout | Yes, by turning the flag off |
| F3 | The extra join pushes order reads past p99 under full load | All checkout users | Yes, by turning the flag off |
Checks
| # | Check | Covers | Status | Evidence | Owner |
|---|---|---|---|---|---|
| 1 | Rollback | all | met | Flag-off rehearsed in staging, ci/run/88213. While the old column is still written, flag-off loses no data | Orders on-call |
| 2 | Detection | F1–F3 | not met | orders-5xx catches F3 errors only. Nothing detects F1 divergence or F2 blank reads, because both return 200 | Orders on-call |
| 3 | Response | F1–F3 | not met | There is no runbook entry for divergence. orders-5xx has a runbook entry, but it does not mention the flag | Orders on-call |
| 4 | Quality targets | F3 | met | Canary p99 96ms against a 120ms target at 5%, grafana/d/orders-canary | Orders tech lead |
| 5 | Data & privacy | — | n/a — no new personal data. Address data moves between tables, and retention and processors are unchanged | Migration plan §2 | Data protection lead |
| 6 | Comms | — | met | Release notes drafted in PR #977. No customer-visible change | Orders tech lead |
| 7 | Exposure | — | met | Staged 5% → 50% → 100% behind orders.address_split | Release owner |
Open items
- Row 2: add a reconciliation metric for dual-write divergence, and an alert on any non-zero count, plus an alert on blank-address reads. Orders on-call, before the 5% → 50% step. Hand off to
observability-plan. - Row 3: add a runbook entry for "divergence alert fires" (flag off, then run the reconciler), and add the flag to the
orders-5xxentry. Orders on-call, same deadline. Hand off torunbook-generator.
Verdict
REVISE. Row 2 is not met: the two failure modes that do lasting damage (F1, F2) return 200, so nothing would detect them. Fix rows 2 and 3, then run readiness again.
Why this is a good output: the rollback is genuinely in place, so the verdict is REVISE and not BLOCKED. The report notices that an existing alert covering the change only catches the failure that is easiest to undo. It does not draft the alert or runbook itself; it names the gap, the owner and the hand-off.
How it's checked
Measured against plain Claude Code (2026-10-23): it met 79% of its checks, against 51% without it, and a blind judge preferred it. How skills are checked
21 assertions across 3 acceptance evals, and 8 trigger queries. Every skill's checks
What the output must do
When it should and shouldn't activate
Should activate:
- Are we ready to launch this to users on Monday?
- Run a go/no-go check on the checkout redesign before we turn it on
- Do a production readiness review for the new search service
- Give me a launch checklist for this release and tell me what's missing
Should leave to another skill:
- Is this PR safe to merge?
- Plan the phased rollout and backfill for moving users to the new auth provider
- Write the release notes for everything since v2.3
- Write the runbook for the payments service
Hands off to
- migration-plan — when the change has no tested rollback path. Plan the phases and the rollback, and name the point of no return, before readiness is judged again.
- observability-plan — when a new failure mode has no alert. Define the SLI and the burn-rate alert that would detect it.
- runbook-generator — when an alert exists but has no runbook entry. Write the procedure the on-call follows when that alert fires.
Related skills
nfr-spec, release-notes, council-review, pre-merge-review
Source
SKILL.md · the whole folder on GitHub.