Build · Create · Engineering
Release readiness gate checklist
Categorized, criterion-bearing release gates with a consistent blocking verdict, marrying governance with automation instead of a change-board bottleneck.
You receive: A structured gate checklist (JSON) that passes the category-coverage, gate-shape, and recomputed blocking-verdict checks.
Part of Keep App Running
Example
A sample of what this play produces. Your result is generated for your inputs.
Service
stud.com production deploy (main trunk)
Gates
| Id | Category | Check | Pass Criterion | Blocking | Evidence Field |
|---|---|---|---|---|---|
| gate-tests-vitest | tests | Full local gate suite (npm run gate:local) is green: judge tiers, vitest, eslint, typecheck, schema drift, next build | Every gate:local step exits 0 on the release SHA, same steps CI runs, locked 1:1 by gate-local-sync.test.ts | true | gate_local_run_log_url |
| gate-tests-judge-tiers | tests | Judge tier harness passes on the release SHA in an isolated process | All judge tier cases accepted, zero timeouts, process-isolated per spec 4.6 | true | judge_tier_report_url |
| gate-security-review | security | Per-diff security review of every change on the release branch | Security review complete with zero unresolved high or critical findings | true | security_review_report_url |
| gate-security-secrets | security | Secrets posture: no credentials in the diff or GitHub CI; DATABASE_URL lives only in Vercel build env | Secret scan clean and the gate remains cred-free (no DB creds in CI) | true | secret_scan_result_url |
| gate-perf-build | performance | Production next build completes with no new warnings and bundle size within budget | next build green, first-load JS budget not exceeded versus the prior release | true | build_output_log_url |
| gate-perf-smoke | performance | Post-deploy smoke: homepage and a play page respond from production | curl https://stud.com/ and one /plays/<uuid> page return 200 within 3s | false | smoke_check_log_url |
| gate-compliance-voice | compliance | Voice lint and token lints pass on all user-facing copy in the release | voice_lint, tokens:check and lint:tokens all green (no em dashes, D-023 vocabulary, design-token SSOT intact) | true | voice_lint_report_url |
| gate-compliance-money | compliance | Money or legal surface changes carry the D-022 named authorization and any owed counsel note | Release notes name D-022 for any money/legal diff; counsel-review debt logged before paid fulfillment | true | release_authorization_note_url |
| gate-rollback-path | rollback | Rollback path verified: prior known-good SHA identified and the preview/ SPA fallback deployable | Prior production SHA recorded with its Vercel deployment id; rollback rehearsed within the last 30 days | true | rollback_plan_doc_url |
| gate-rollback-migrations | rollback | Schema changes ship with committed migration files and a reverse plan | check-schema-drift green; every schema.ts edit has a generated migration and a documented down path | true | migration_review_doc_url |
Blocking Count
9
Overall Gate
blocked
Verdict Note
Nine blocking gates stand between this SHA and production, so the checklist reads blocked until each blocking gate posts passing evidence. The verdict is recomputed from the gate set, never asserted.
Opens soon
STUD opens runs for everyone soon, on every play at once.
Scope of the check
What's verified: STUD verifies the submitted checklist (JSON) is complete and internally consistent: every gate carries a check, a pass criterion, a blocking flag, and an evidence field, each required category has at least your minimum number of blocking gates, and the asserted blocking count and overall verdict are recomputed and must match (the checklist cannot read 'pass' while blocking gates exist). STUD does NOT verify the cited evidence is true or that the release is actually safe; it checks the gate set's structure and the recomputed verdict.
Get early access to STUD the day it goes live.