launch-readiness
When to use
- A change is about to merge that crosses a release boundary (new feature on
main, version bump, public-facing comms attached).
- An ops handoff is implied — the on-call rotation, support team, or downstream consumers need to know.
- A rollback criterion has not been written down yet.
Do NOT use for routine internal merges
(finishing-a-development-branch)
or for the comms text itself (release-comms).
This skill produces the decision to ship and the rollback contract.
Cognition cluster
- Mental model 10 — Reversible vs irreversible. Map every step
of the rollout to a reversibility class; the rollback criteria
must name the irreversible steps and the abort threshold for each.
See
docs/contracts/mental-models.md § 10.
- Mental model 29 — Pre-mortems. Imagine the rollout failed in
six hours; what failed first? The pre-mortem becomes the rollback
criteria, not a separate document. See
mental-models.md § 29.
- Mental model 4 — Second-order thinking. Enumerate what
becomes harder after the launch (rollback cost, contributor
ergonomics, doc churn). See
mental-models.md § 4.
- Team + product context-spine slots. Read team for the
on-call rotation and ops handoff path; read product for the
segment / cohort exposure of the rollout. See
context-spine.
Procedure
1. Identify the launch shape
One sentence: "This change ships X to segment Y behind
rollout mechanism Z." If you cannot, the change is not
release-shaped; route to finishing-a-development-branch.
2. Inspect the pre-merge checklist
Walk the diff with the following gates:
- Tests green on the integration suite (cite the run).
- Quality gates green (static analysis / linters / type-checks).
- Migrations are reversible OR the irreversibility is explicit.
- Feature flag / kill switch named, default off unless intended.
- Doc / changelog / release notes present (hand off to
release-comms for the prose).
- Rollback path tested at least mentally; named in step 4.
Cells without evidence block the launch — surface, do not
hand-wave.
2b. Epistemics block — the diagnostic report (contract-backed)
For a consumer-facing diagnostic (not just the merge decision), emit a
report per docs/contracts/prelaunch-diagnostics.md
(schema: prelaunch-report.schema.json). Rules:
- Coverage backbone — diagnose exactly the fixed area vocabulary
(
prelaunch-areas.yml): auth · migrations · secrets · observability ·
rollback · agent-governance. No ad-hoc areas.
- Every area gets one state:
pass (cited evidence REQUIRED) ·
finding (IDs listed) · unknown (the honest default — absence of
findings is Unknown, never an automatic Pass) · not-applicable
(reason required).
- Findings carry immutable IDs (
AC-<AREA>-NNN) — retitle freely,
never re-assign; the ID is the diff key across runs.
- Verdict: any open P0 → NOT ready, regardless of every other area;
any open P1 or a launch-gate area not at pass/N-A → NOT ready. Ready is
the residual state, never the default.
- Questions section — list the questions that would change the
diagnosis; the next run converts them into evidence or findings.
- Validate + verdict via
npx tsx node_modules/@event4u/agent-config/src/scripts/prelaunch_diagnostics.ts validate <report.json>;
regression-gate against the committed baseline via
… diff <baseline> <current> --ci (contract § 4–6).
2c. Fix loop (approval-gated, read-only diagnostic)
Rank open findings by severity, then launch-gate membership; propose the
safest first approval batch (reversible, small blast radius — explicitly
not the full backlog). Status vocabulary per finding: open · fixed · accepted-risk · deferred-with-reason · suppressed-with-evidence · not-applicable — everything except open/fixed carries a reason. Rescore
whenever evidence changes. The diagnostic itself never mutates the project;
fixes flow through the normal approval-gated engines.
3. Plan the rollout
- Mechanism — flag, canary cohort, blue-green, immediate.
- Order — internal → trusted segment → general; cite the
segment per stage from the product spine slot.
- Telemetry — the metric that proves rollout health.
- Owner — named role per stage (not name); from the team
spine slot.
4. Write rollback criteria
For each stage:
- Trip wire — the metric value that fires rollback.
- Decision window — how long the trip wire must hold.
- Abort path — what the on-call does (revert PR, flip flag,
drain queue), pre-rehearsed.
- Irreversible steps — explicit list; if any irreversible step
is in scope, the launch needs a written sign-off, not implicit.
Pre-mortem rule: every trip wire must answer "what would have
caused this in six hours?" If you cannot, the trip wire is wrong.
4b. Post-deploy verification fragments (manual checks, not an auto-canary)
Right after deploy, the on-call runs these quick checks by hand. They are
checklist items, not an automated canary loop — a real canary is a runtime
and out of scope here; these are cheap "did the deploy silently break a thing
that doesn't page" probes. Include only the ones that apply to the stack:
- SSE / streaming heartbeat — if the app serves Server-Sent Events or a
long-lived stream, confirm a connection stays open and emits a heartbeat past
the proxy's idle timeout (a deploy that changes proxy/buffering config silently
kills streaming while every other endpoint looks fine).
- Static-asset content-type drift — fetch a built asset and assert the
Content-Type (JS as text/javascript/application/javascript, CSS as
text/css); a CDN/build change that serves assets as text/plain or
application/octet-stream breaks the app in the browser but returns HTTP 200.
- LCP delta — spot-check Largest-Contentful-Paint on the top route against
the pre-deploy baseline; a regression beyond the agreed delta is a trip wire
even when no error fires.
Each fragment is a one-shot check with a pass/fail an on-call can eyeball; failures
feed the § 4 trip wires. Do not build a standing canary service for them.
5. Ops handoff
- Who is paged on which alert (from team spine slot).
- Where the rollback runbook lives (link).
- Date / time of the handoff conversation; sign-off from the
receiving role.
6. Hand back
Hand the artefact below to whoever requested the launch decision;
route comms to release-comms and
post-launch metrics tracking to the team's monitoring stack.
Related Skills
WHEN to use this
- A release-shaped PR is about to merge.
- Rollback criteria need to land in writing before the merge button
is pressed.
- Ops handoff is implied and not yet executed.
WHEN NOT to use this
When the agent should load this
- "Sind wir launch-ready?"
- "Bau mir die Rollback-Kriterien für Phase X."
- "Ops-Handoff für die Release morgen."
- "Was bricht, wenn wir den Flag flippen?"
- "Pre-merge-Checklist für PR #N."
Output
- Launch shape — one-sentence statement of the change.
- Pre-merge checklist — gate · status · evidence (citation).
- Rollout plan — stages × mechanism · order · telemetry · owner.
- Rollback contract — per stage: trip wire · decision window ·
abort path · irreversible steps.
- Ops handoff — pager mapping · runbook link · sign-off.
- Outstanding — anything blocking the launch; explicit, not
collapsed.
Gotcha
- A checklist with all green and no citations is theatre; every
green needs an artefact.
- A trip wire without a decision window is unactionable — "if
errors spike" is not a trigger; "5xx > 2% for 10 min" is.
- Irreversible steps without written sign-off are the most common
post-mortem ancestor — surface, do not skip.
Do NOT
- Do NOT write the comms text here — that is
release-comms.
- Do NOT lock the rollback contract verbally — it lives in the
output block, citable.
- Do NOT let any stage own itself — every stage names a role from
the team spine slot.
- Do NOT hand the artefact to a receiver who has not signed off on
ops handoff.
1---2name: launch-readiness3description: Use before merging a release-shaped PR — pre-merge checklist, rollout plan, rollback criteria, ops handoff. Triggers on 'ready to ship', 'launch checklist', 'rollout plan for X'.4---56# launch-readiness78## When to use910- A change is about to merge that crosses a release boundary (new feature on `main`, version bump, public-facing comms attached).11- An ops handoff is implied — the on-call rotation, support team, or downstream consumers need to know.12- A rollback criterion has not been written down yet.1314Do NOT use for routine internal merges15([`finishing-a-development-branch`](../finishing-a-development-branch/SKILL.md))16or for the comms text itself ([`release-comms`](../release-comms/SKILL.md)).17This skill produces the **decision** to ship and the rollback contract.1819## Cognition cluster2021- **Mental model 10 — Reversible vs irreversible.** Map every step22 of the rollout to a reversibility class; the rollback criteria23 must name the irreversible steps and the abort threshold for each.24 See [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 10.25- **Mental model 29 — Pre-mortems.** Imagine the rollout failed in26 six hours; what failed first? The pre-mortem becomes the rollback27 criteria, not a separate document. See `mental-models.md` § 29.28- **Mental model 4 — Second-order thinking.** Enumerate what29 becomes harder *after* the launch (rollback cost, contributor30 ergonomics, doc churn). See `mental-models.md` § 4.31- **Team + product context-spine slots.** Read **team** for the32 on-call rotation and ops handoff path; read **product** for the33 segment / cohort exposure of the rollout. See34 [`context-spine`](../../../docs/contracts/context-spine.md).3536## Procedure3738### 1. Identify the launch shape3940One sentence: *"This change ships **X** to **segment Y** behind41**rollout mechanism Z**."* If you cannot, the change is not42release-shaped; route to `finishing-a-development-branch`.4344### 2. Inspect the pre-merge checklist4546Walk the diff with the following gates:4748- Tests green on the integration suite (cite the run).49- Quality gates green (static analysis / linters / type-checks).50- Migrations are reversible OR the irreversibility is explicit.51- Feature flag / kill switch named, default off unless intended.52- Doc / changelog / release notes present (hand off to53 [`release-comms`](../release-comms/SKILL.md) for the prose).54- Rollback path tested at least mentally; named in step 4.5556Cells without evidence block the launch — surface, do not57hand-wave.5859### 2b. Epistemics block — the diagnostic report (contract-backed)6061For a consumer-facing diagnostic (not just the merge decision), emit a62report per [`docs/contracts/prelaunch-diagnostics.md`](../../../docs/contracts/prelaunch-diagnostics.md)63(schema: `prelaunch-report.schema.json`). Rules:6465- **Coverage backbone** — diagnose exactly the fixed area vocabulary66 (`prelaunch-areas.yml`): auth · migrations · secrets · observability ·67 rollback · agent-governance. No ad-hoc areas.68- **Every area gets one state:** `pass` (cited evidence REQUIRED) ·69 `finding` (IDs listed) · `unknown` (the honest default — **absence of70 findings is Unknown, never an automatic Pass**) · `not-applicable`71 (reason required).72- **Findings carry immutable IDs** (`AC-<AREA>-NNN`) — retitle freely,73 never re-assign; the ID is the diff key across runs.74- **Verdict:** any open P0 → NOT ready, regardless of every other area;75 any open P1 or a launch-gate area not at pass/N-A → NOT ready. Ready is76 the residual state, never the default.77- **Questions section** — list the questions that would change the78 diagnosis; the next run converts them into evidence or findings.79- Validate + verdict via80 `npx tsx node_modules/@event4u/agent-config/src/scripts/prelaunch_diagnostics.ts validate <report.json>`;81 regression-gate against the committed baseline via82 `… diff <baseline> <current> --ci` (contract § 4–6).8384### 2c. Fix loop (approval-gated, read-only diagnostic)8586Rank open findings by severity, then launch-gate membership; propose the87**safest first approval batch** (reversible, small blast radius — explicitly88not the full backlog). Status vocabulary per finding: `open · fixed ·89accepted-risk · deferred-with-reason · suppressed-with-evidence ·90not-applicable` — everything except open/fixed carries a reason. Rescore91whenever evidence changes. The diagnostic itself never mutates the project;92fixes flow through the normal approval-gated engines.9394### 3. Plan the rollout9596- **Mechanism** — flag, canary cohort, blue-green, immediate.97- **Order** — internal → trusted segment → general; cite the98 segment per stage from the **product** spine slot.99- **Telemetry** — the metric that **proves** rollout health.100- **Owner** — named role per stage (not name); from the **team**101 spine slot.102103### 4. Write rollback criteria104105For each stage:106107- **Trip wire** — the metric value that fires rollback.108- **Decision window** — how long the trip wire must hold.109- **Abort path** — what the on-call does (revert PR, flip flag,110 drain queue), pre-rehearsed.111- **Irreversible steps** — explicit list; if any irreversible step112 is in scope, the launch needs a written sign-off, not implicit.113114Pre-mortem rule: every trip wire must answer *"what would have115caused this in six hours?"* If you cannot, the trip wire is wrong.116117### 4b. Post-deploy verification fragments (manual checks, not an auto-canary)118119Right after deploy, the on-call runs these quick checks by hand. They are120**checklist items, not an automated canary loop** — a real canary is a runtime121and out of scope here; these are cheap "did the deploy silently break a thing122that doesn't page" probes. Include only the ones that apply to the stack:123124- **SSE / streaming heartbeat** — if the app serves Server-Sent Events or a125 long-lived stream, confirm a connection stays open and emits a heartbeat past126 the proxy's idle timeout (a deploy that changes proxy/buffering config silently127 kills streaming while every other endpoint looks fine).128- **Static-asset content-type drift** — fetch a built asset and assert the129 `Content-Type` (JS as `text/javascript`/`application/javascript`, CSS as130 `text/css`); a CDN/build change that serves assets as `text/plain` or131 `application/octet-stream` breaks the app in the browser but returns HTTP 200.132- **LCP delta** — spot-check Largest-Contentful-Paint on the top route against133 the pre-deploy baseline; a regression beyond the agreed delta is a trip wire134 even when no error fires.135136Each fragment is a one-shot check with a pass/fail an on-call can eyeball; failures137feed the § 4 trip wires. Do not build a standing canary service for them.138139### 5. Ops handoff140141- Who is paged on which alert (from **team** spine slot).142- Where the rollback runbook lives (link).143- Date / time of the handoff conversation; sign-off from the144 receiving role.145146### 6. Hand back147148Hand the artefact below to whoever requested the launch decision;149route comms to [`release-comms`](../release-comms/SKILL.md) and150post-launch metrics tracking to the team's monitoring stack.151152## Related Skills153154**WHEN to use this**155156- A release-shaped PR is about to merge.157- Rollback criteria need to land in writing before the merge button158 is pressed.159- Ops handoff is implied and not yet executed.160161**WHEN NOT to use this**162163- The change is internal and routine — route to164 [`finishing-a-development-branch`](../finishing-a-development-branch/SKILL.md).165- The output is the public comms — route to166 [`release-comms`](../release-comms/SKILL.md).167- The rollout decision involves stakeholder conflict — route to168 [`stakeholder-tradeoff`](../stakeholder-tradeoff/SKILL.md) first.169- The decision is reversible-and-cheap — write a one-line note,170 skip the full artefact.171172## When the agent should load this173174- "Sind wir launch-ready?"175- "Bau mir die Rollback-Kriterien für Phase X."176- "Ops-Handoff für die Release morgen."177- "Was bricht, wenn wir den Flag flippen?"178- "Pre-merge-Checklist für PR #N."179180## Output1811821. **Launch shape** — one-sentence statement of the change.1832. **Pre-merge checklist** — gate · status · evidence (citation).1843. **Rollout plan** — stages × mechanism · order · telemetry · owner.1854. **Rollback contract** — per stage: trip wire · decision window ·186 abort path · irreversible steps.1875. **Ops handoff** — pager mapping · runbook link · sign-off.1886. **Outstanding** — anything blocking the launch; explicit, not189 collapsed.190191## Gotcha192193- A checklist with all green and no citations is theatre; every194 green needs an artefact.195- A trip wire without a decision window is unactionable — *"if196 errors spike"* is not a trigger; *"5xx > 2% for 10 min"* is.197- Irreversible steps without written sign-off are the most common198 post-mortem ancestor — surface, do not skip.199200## Do NOT201202- Do NOT write the comms text here — that is `release-comms`.203- Do NOT lock the rollback contract verbally — it lives in the204 output block, citable.205- Do NOT let any stage own itself — every stage names a role from206 the **team** spine slot.207- Do NOT hand the artefact to a receiver who has not signed off on208 ops handoff.