TL;DR
  • Use three outcomes: Ship, Wait, Block.
  • Base the call on coverage you can point to, not demo energy.
  • Block when data exposure, ungated write actions, or missing fallbacks are unknown on user-facing paths.
  • Wait when coverage is partial but blast radius can stay limited.
  • Ship only when critical probes are done and open issues are severity-ranked with owners.
  • A named person must own residual risk. A group shrug does not count.

Why AI launches need an explicit gate

AI features fail in ways that look fine in a happy-path review:

A binary “LGTM” from a walkthrough does not capture that. A small set of honest questions does. The goal is not bureaucracy. The goal is a decision someone can defend a week later.

The three outcomes

Ship

Use when:

Ship can still include Medium items. It should not quietly include Critical data or write-path issues.

Wait

Use when:

Wait is active. It needs a date and an owner. “Wait forever” is a soft Block that never resolves.

Block

Use when any of these are true and unaccepted:

Block is not a moral judgment. It is a blast-radius judgment.

The criteria we use in plain language

These match the spirit of our interactive helper. Adjust wording to your product, not the other way around.

1. Adversarial and ambiguous prompts

2. Private context and data exposure

3. Failures and fallbacks

4. Write / send / delete actions

5. Add your product-specific fifth

Examples:

Write the fifth criterion down so the gate is not vibes.

Worked examples (generic patterns)

These are patterns, not client stories.

Example A: Internal Q&A over company docs

Call: Wait or Block on broad access until ACL / retrieval isolation is probed. Internal-only with trusted users may be Wait with a time box.

Example B: Support copilot that drafts replies

Call: Wait until fallback is designed. Ship may be fine after that if send stays human-gated.

Example C: Agent that can create tickets and update fields

Call: Block for external users until write gates and failure states are real. Demo energy does not change this.

Example D: AI feature behind a beta flag for 50 internal users

Call: Wait is often honest here: keep the flag, fix fallbacks this week, do not widen to external customers until fallbacks and a retest pack exist. Internal beta is not a free pass if writes or private data are involved; it is a smaller audience with the same failure modes.

Documenting the decision so it survives the week

A useful release note is short:

Store it where launch conversations already happen. If the only record is a meeting memory, you will re-litigate every day.

Who owns the final call

Someone with authority to delay launch. QA and testing partners can advise. Calendar pressure should not own severity.

Good practice:

If sales and eng disagree, the release owner decides with evidence, not volume.

After a Wait: how to avoid limbo

Wait fails when it becomes endless. Protect it:

  1. Write the exit criteria on day one (“Wait lifts when X and Y are retested”)
  2. Keep the audience limit enforced in product, not only in a doc
  3. Review open Critical/High twice a week until the gate flips
  4. If exit criteria slip more than once, consider Block for the wider audience

Wait is a controlled experiment. Limbo is hope without controls.

After a Block: how to move again

Block is not permanent. Make it temporary by design:

The fastest path out of Block is usually reducing blast radius, then proving the new boundary.

Free tool

Run the same gate language interactively:

Launch go / no-go helper (free, no signup)

Use it in a launch channel thread so the decision is visible. Pair with the launch checklist so Wait items have owners.

How GenCodeQA uses this in engagements

We do not replace your release owner. We give evidence for their call:

If the honest gate says Block and the calendar says Ship, the calendar is the problem. We will say that plainly. We will not invent fake urgency, and we will not soften Critical findings to protect a date.

Common false confidence

When to get a second pair of eyes

If your team disagrees on Ship vs Wait, an independent pass often settles the argument faster than another internal demo.

Book a free testing triage

Bring: product type, model setup, what you have tested, and the go / no-go answers you already disagree about.

FAQ

Who should own the final call?

Someone with authority to delay launch. Advisors can recommend. They should not be the only signature on residual risk.

Can we ship with known Medium findings?

Sometimes, with owners and monitoring. Critical / High on data and write paths usually means Wait or Block.

Does go / no-go replace a checklist?

No. Checklist organizes work. Go / no-go decides. Use both.

What if we only ship to 5% of users?

That can turn a Block into a Wait if the 5% is intentional, monitored, and the open Critical issues are understood. Percentage alone is not a gate.

Should we document accepted risk?

Yes. Name, date, what was accepted, what would reopen a Block. Memory is a bad compliance system.