Skip to content
中文

A soft checklist before production ​

This checklist asks whether you are ready. It does not replace the hard review in Acceptance. Hard acceptance proves that interfaces and boundaries work under their contracts; this checklist confirms that you placed them inside a real business and can explain where results come from and where failures fall back.

Every item needs evidence: a log, an evaluation result, a configuration diff or a real call. Do not mark an item complete without it.

Corpus and permissions ​

CheckEvidenceIf it fails
The corpus loads and an empty corpus has an explicit stateStartup log or self-check outputFix the load path; do not treat empty data as normal
Document, section and chunk ids are unique; revision is non-emptyValidation outputFix the data; do not skip validation
Permission filters use trusted identityCode path plus one unauthorized testAdd filtering before reading or fusion
Deletion and rewrites clear indexes and citationsOne deletion or rewrite drillAdd cleanup; editing the list is not enough

Configuration and versions ​

CheckEvidenceIf it fails
The effective configuration has a version recorded in logsOne request logAdd the identifier instead of saying "current configuration"
Source and runtime copies match; no hand-edited runtime filesGenerated diff or comparisonEdit the source and regenerate
Secrets come from the environment or a secret storeConfiguration reviewMove them out of the repository and corpus
Model, embedding and index space identifiers agreeStartup self-checkRebuild the index or fix the configuration

Budgets and capabilities ​

CheckEvidenceIf it fails
Normal requests do not hit budget rejections intermittentlyCharacter counts from real samplesLeave headroom or read in passes
Over-limit requests fail explicitly instead of being truncatedOne over-limit callReject and explain
Retries have attempt and deadline boundsFailure-injection resultAdd bounds and backoff
Cancellation stops later callsOne cancellation testCheck and propagate signal at every layer

Retrieval and citations ​

CheckEvidenceIf it fails
Source recall on real questions meets the targetSmall-sample evaluationFix chunking, vocabulary or sections first
The system says "unknown" when no material existsNo-answer sample resultFix the decision and prompt boundary
Citations point at real sources with matching textSpot-check answers against sourcesRead back and verify revision and visibility
Retrieval failure and "no material" are distinctDegradation logSeparate the two states
Index updates never return deleted contentOne query after deletionClear indexes and caches; re-check visibility

Failure paths ​

CheckEvidenceIf it fails
Rate limits, timeouts and authentication failures have explicit behaviorFailure-injection recordAdd classification and handling
Failed writes can be reconciled by idempotency keyOne timeout drillAdd the key and reconciliation
Unavailable dependencies degrade or fail explicitlyOne degradation drillRemove fallbacks that pretend success
Degradation never widens permissionsUnauthorized-path testRemove branches that bypass validation

Observability ​

CheckEvidenceIf it fails
A failure can be traced to its stage, tool or retrieverOne failure logAdd fields
Success, degradation, failure and cancellation are distinguishableOne sample of eachUnify result classification
Logs contain no secrets, full prompts or unmasked dataLog spot-checkRedact or remove fields
Degradation and failure have separate countersMetrics or reportCount them instead of watching success rate only

Release and rollback ​

CheckEvidenceIf it fails
A release pins matching corpus, configuration and index versionsVersion and build recordFix versions; do not mix them
The rollback path is explicit and drilledOne rollback walkthroughDocument it and retain the old version
A new version never reads an incompatible old indexStartup self-checkValidate identity and indexRevision
The reason for the change and what was observed are recordedChange recordRecord them before releasing

Regression ​

CheckEvidenceIf it fails
Key protocols and tool selection have offline casesTest resultsAdd cases with MockGPT
Failures, cancellation and budget overflow are coveredTest resultsAdd boundary cases
Real model quality is verified separatelyManual or online evaluation recordDo not substitute offline cases for semantic acceptance

How to write the conclusion ​

State the version, the samples covered, the observed results, what was not verified and the remaining risk. Do not turn "we found no problems" into "there is no risk", and never present passing offline cases as proof of semantic quality.

Next ​

API reference, usage examples and developer guides.