Use one evidence pack and one decision format for every deployment review. This gives release managers and incident leads a recommendation that can be checked quickly, rather than a loose summary of graphs and error reports. You will end with continue, pause, or rollback, plus the evidence and threshold behind it.
The model prepares the assessment. The named release decision-maker remains responsible for the decision.
Key point
Decide against thresholds, not impressions
Write the threshold, observed value, measurement window and source beside every finding. If one is missing, the finding is not decision evidence.
1. Freeze the decision question
Before collecting data, write the decision record for this deployment. Put it in the release ticket, incident channel, or handover document. Do not ask the model to infer what acceptable means after the fact.
Record these fields:
- Deployment: service, environment, release identifier, deployment start and end time.
- Decision point: the exact time at which you are deciding whether the deployment remains live.
- Baseline window: the comparable period before deployment.
- Observation window: the period after deployment that you are assessing.
- Scope: regions, tenants, endpoints, user journeys, or worker queues included.
- Decision owner: the person who can approve a pause or rollback.
- Thresholds: pre-agreed rules for errors, latency, availability, business events and user impact.
Use thresholds that state both the trigger and the required action. For example, write rollback if checkout 5xx rate exceeds the agreed threshold for the agreed sustained period. Do not write rollback if errors are high.
Watch out
Do not move a threshold during the review
If a threshold is no longer suitable, record that as a separate process issue. Do not quietly change it to make the current deployment pass.
2. Build a small, time-bounded evidence pack
Collect the smallest set of material needed to test each threshold. A large dump of dashboards, logs and chat messages makes it easier for the model to find an alarming but irrelevant detail.
Create a document called deployment-evidence.md. Start with the decision record, then add evidence in this order:
- A metrics table with baseline, observed value, threshold, time window and dashboard or query name.
- Error report excerpts grouped by error signature, with first-seen time, count, affected component and whether the error existed before deployment.
- User impact evidence, such as support reports, failed journey counts, synthetic checks, status reports or account-team reports.
- Deployment events, including feature-flag changes, configuration changes, restarts and mitigations.
- Known gaps, such as delayed telemetry, missing region data or an untested journey.
Use UTC or one explicitly named time zone throughout. Preserve timestamps. If an error report says only recently, replace it with the actual observed range or label it as unverified.
| Evidence type | Include | Leave out |
|---|---|---|
| Metrics | Value, baseline, threshold, window, source | Unlabelled dashboard screenshots |
| Errors | Signature, count, first seen, affected scope | Raw logs without a question they answer |
| User impact | Journey, number affected, evidence time | Anecdotes with no time or scope |
| Changes | Deployment and mitigation timestamps | Unrelated changes from other teams |
If you use an API or attach material through a product workflow, the supported inputs and limits are version-dependent. Check the current xAI documentation before building the process around a particular format or volume.
3. Ask for a threshold-by-threshold assessment
Paste the evidence pack into a new conversation. Ask the model to assess it, not to make unsupported operational claims. Require a structured answer so that omissions are visible.
Use this prompt, replacing the bracketed text:
You are preparing a deployment decision record. Assess only the evidence below.
For each pre-agreed threshold:
- state the threshold exactly
- state the observed value and measurement window
- identify whether the threshold is met, breached, or cannot be assessed
- cite the evidence section and timestamp
- separate correlation from confirmed causation
Then produce one recommendation: continue, pause, or rollback.
A rollback recommendation requires a stated breached threshold or a stated safety condition.
A continue recommendation requires no breached threshold and no unresolved evidence gap that blocks assessment.
A pause recommendation is for missing, contradictory, or still-developing evidence.
Do not invent values, sources, user impact, or causal links. Put unknowns in a section called Evidence gaps.
[Paste deployment-evidence.md]
A pause result is useful. It means the evidence cannot yet support either keeping the release live or reversing it. Treat it as a request for a defined next check, not as a vague delay.
Note
Keep causal language narrow
The error began after deployment is a timing observation. The deployment caused the error needs corroborating evidence, such as a reproducible change, rollback result, trace, or controlled comparison.
4. Check the recommendation before sharing it
Read the output against the source document. Do not start by reading the final recommendation. Start with each threshold row and verify the model copied the number, unit, time window and comparison correctly.
Use this review table:
| If you see this | Treat it as | What to do |
|---|---|---|
| A number without a source or window | Unsupported evidence | Remove it or add the source and window |
| A breached threshold with the wrong unit | Calculation or reading error | Recheck the original metric and rerun the assessment |
| A causal statement based only on timing | Unproven attribution | Change it to correlation or add corroborating evidence |
Continue with missing critical telemetry |
Incomplete decision | Change to pause until the gap is resolved |
Rollback without a breached rule or safety condition |
Unsupported recommendation | Ask for the exact trigger or revise the recommendation |
Check
The review worked when a reader can trace every decision claim
For every claim, they should be able to find the threshold, observed value, time window and source without opening a second document.
Then add a short decision block at the top of the release ticket:
Recommendation: [continue | pause | rollback]
Decision owner: [name]
Decision time: [UTC timestamp]
Reason: [one sentence naming the threshold outcome]
Evidence gaps: [none, or list]
Next review: [time and required evidence]
This block prevents a handover from turning a qualified assessment into an unqualified instruction.
5. Make it a release habit
Reuse the same deployment-evidence.md headings and prompt for every material deployment. Keep threshold wording stable across releases. After each decision, compare the recommendation with what happened next: whether errors rose, stabilised, or disappeared after mitigation or rollback.
Do not use that later outcome to rewrite the original evidence. Add it as a post-decision note. This lets you improve thresholds and evidence collection without pretending the earlier decision was clearer than it was.
When the assessment does not work
If the model mixes time windows, asks it to rebuild the metrics table using only the stated timestamps. If it gives a confident recommendation despite missing data, repeat the prompt with the missing fields listed first and require pause where critical evidence is absent. If the source data conflicts, do not average the conflict away. Mark the affected threshold as unassessable, identify the owner of each data source, and set the next review time.
If the recommendation still cannot be traced to a threshold and source, do not use it for the deployment decision. Return to the evidence pack, correct the record, and have the decision owner assess the unresolved risk directly.