`pnpm launch:review` builds a machine-readable launch packet from the latest artifacts. It does not rerun heavy gates; it verifies that the evidence already collected is fresh, internally consistent, and safe to use for a launch decision.
Commands
Staging / controlled beta review:
pnpm launch:review
Controlled beta go/no-go summary:
pnpm launch:beta:readiness
Fail-fast staging check:
pnpm launch:review:check
Production launch review:
pnpm launch:review:production
Refresh evidence and review in one ordered run:
pnpm launch:evidence -- --base-url=https://<deploy-host> --iiif-tile-url=https://<iiif-tile>
pnpm launch:evidence:production -- --base-url=https://<shareable-url> --public-read-base-url=https://<shareable-url> --iiif-tile-url=https://<iiif-tile>
The evidence runner starts with `pnpm hardening:pen-dr` so security-audit and
Postgres DR artifacts are fresh before deployment preflight and launch review
read them. It continues after individual failures, writes
`artifacts/launch/launch-evidence-latest.json`, and then runs the launch review
so operators can see every red step in one packet.
Use `--step-timeout-ms=<milliseconds>` for bounded evidence runs that should
record a failed step and still write the launch evidence packet when a nested
command runs too long.
Every failed or skipped step in `launch-evidence-latest.json` includes
`nextEvidenceNeeded` plus a `remediation` object naming the command to rerun and
the artifact that must turn green. Skipped k6 samples are therefore preserved as
operator-visible launch evidence debt instead of being silently treated as a
production-ready SLO proof.
When `--fail-fast` stops after the first failed step, the remaining planned
steps are still written as `skipped` records with their remediation fields so the
packet preserves the full launch-readiness checklist instead of leaving later
checks missing.
Artifacts
- latest packet: `artifacts/launch/launch-review-latest.json`
- latest evidence runner packet: `artifacts/launch/launch-evidence-latest.json`
- latest controlled beta packet: `artifacts/launch/beta-readiness-latest.json`
- per-run packet: `artifacts/launch/runs/launch-review-<timestamp>.json`
- per-run evidence runner packet: `artifacts/launch/runs/launch-evidence-<timestamp>.json`
- per-run controlled beta packet: `artifacts/launch/runs/beta-readiness-<timestamp>.json`
For launch evidence runner packets, inspect the per-step remediation fields when
`status` is `fail` or `skipped`:
blocker.
- `nextEvidenceNeeded`: the exact proof still required for that launch lane.
- `remediation.command`: the command an operator should rerun after fixing the
- `remediation.artifact`: the artifact path that should show the new evidence.
Inputs
The launch packet reads:
- `artifacts/launch/deployment-preflight-latest.json`
- `artifacts/exit-gate/era-c-exit-gate-latest.json`
- `artifacts/security/pnpm-audit-summary.json`
- `config/security-audit-baseline.json`
- `artifacts/dr-drill/latest.json`
- `artifacts/smoke/public-trust/summary.json`
- crawler preview smoke evidence: `artifacts/launch/crawler-preview-latest.json` from `pnpm smoke:crawler-preview`
- a11y evidence: `artifacts/launch/a11y-latest.json` from `pnpm a11y:check`
- explore smoke evidence: `artifacts/launch/explore-smoke-latest.json` from `pnpm smoke:explore:matrix`
The evidence paths can be overridden with:
- `METAMUSEUM_A11Y_EVIDENCE_PATH`
- `METAMUSEUM_EXPLORE_SMOKE_EVIDENCE_PATH`
If an operator needs to supply a manual evidence file, use this minimal shape:
{
"generatedAt": "2026-06-10T00:00:00.000Z",
"status": "pass",
"summary": "Operator pasted the passing command output here."
}
Command evidence may use `status: "warn"` for staging-only blockers, such as a missing researcher smoke token. Use `pnpm launch:smoke-token` to generate/update the staging token without printing it, then copy `METAMUSEUM_TEST_ROLE_OVERRIDE_TOKEN` into both the staging server and smoke runner. Production launch review treats warning evidence as not passing.
Production Rules
Production launch review fails when:
- deployment preflight is missing, stale, wrong-target, warning, or failing
- Era C exit gate is missing, stale, or failed
- security audit exceeds the committed baseline
- DR drill is missing, stale, failing, or lacks verified Postgres restore proof
- public-trust smoke screenshots are missing or have pixel-diff failures
- crawler-preview smoke is missing or fails Open Graph, Twitter, canonical URL, or preview image fetchability checks
- a11y or explore smoke evidence is missing or not passing
Staging review can warn on production-only blockers so controlled beta can proceed only to collect the missing evidence.
Controlled Beta Readiness
`pnpm launch:beta:readiness` reads the latest launch review and deployment preflight artifacts, then classifies the staging decision as:
- `blocked`: launch-review blockers or deployment-preflight failures remain.
- `rehearsal-ready`: deployment and hardening are not blocked, but live beta still needs required smoke/deployment evidence.
- `live-beta-ready`: deployment, hardening, public-trust, crawler-preview, a11y, and explore smoke evidence are green; remaining warnings are accepted controlled-beta evidence collection limits.
Era C 30-day SLO, uptime, activity-adoption, and KPI gaps are accepted warnings only for controlled beta. They remain production blockers.