A concrete go/no-go checklist derived directly from this project’s own
2026-09-01 production-readiness audit (docs/PRODUCTION_READINESS_REPORT.md)
— not a generic template. Work through this per deployment, not once
globally: a new database connection, a new environment, or a new set of
users each re-open several of these items.
DB_USER is a genuinely read-only database role. Verify with
python scripts/test_db_connection.py — it must report no
write-privilege warning. This is the real safety boundary underneath
the SQL validator (SECURITY.md); the app cannot enforce it from
inside itself. (This exact check failed against this project’s own
reference environment during the audit — don’t assume it’s fine
without checking.)config/sensitive_columns.yaml ships empty — see
docs/GOVERNANCE.md’s “Data classification policy” for how, and
docs/RISK_REGISTER.md’s R-002..env is not committed, not baked into a container image layer,
and not exposed by docker compose config output shared anywhere.
See docs/DEPLOYMENT.md’s “Production secrets.”docs/RISK_REGISTER.md’s R-001). The
optional API_AUTH_TOKEN is a hook, not a substitute — see
docs/DEPLOYMENT.md’s “Reverse proxy and auth.”SECURITY.md in full, specifically “What is
explicitly not guaranteed” and “Bottom line” — this project
explicitly states it has not been through an independent security
review.pytest,
ruff check ., black --check ., mypy . — all four, not a
subset. (All four were red at the start of this project’s own
2026-09-01 audit; verify your working tree, not this document’s
claim about a past state.)python scripts/run_benchmark.py --check-regression.
See docs/EVALUATION.md for how to interpret the output — a 35%
final-accuracy baseline is the documented starting point, not a
target to feel good about matching.p95_latency_seconds ≈ 80s in the reference benchmark run — a
single local Ollama instance serializes requests; see
docs/DEPLOYMENT.md’s “Horizontal scaling considerations” for why
scaling app/API replicas alone doesn’t fix this.docker-compose.yml — GET
/health (docs/API.md) actually verifies DB/Ollama/Chroma
reachability; point real alerting at it, don’t just trust the
container stays “running.”docs/monitoring_summary.py (or your own equivalent) has somewhere
to run periodically — see docs/GOVERNANCE.md’s review cadence.
It’s a script today, not a scheduled job; scheduling it is a
per-deployment decision this project doesn’t make for you.Dockerfile’s base image to a specific digest
(docs/DEPLOYMENT.md’s “Reproducible builds”) if you want a
stricter reproducibility guarantee than a floating tag provides.requirements.txt’s own comment) against
whatever Python version your deployment actually runs — CI runs 3.11
and passes, which is reassuring but not the same as an explicit
driver-by-driver check (docs/RISK_REGISTER.md’s R-004).DB_TYPE=mssql in Docker, confirm the
Microsoft ODBC driver layer (docs/DEPLOYMENT.md’s mssql section)
actually connects — it’s an extra manual step this project’s base
image deliberately doesn’t include.docs/COMPLIANCE.md and docs/RESPONSIBLE_AI.md against
your organization’s own requirements, if you have any beyond what
this project self-assesses.Named here so no one discovers these the hard way:
docs/RISK_REGISTER.md’s R-001).docs/RISK_REGISTER.md’s R-006).docs/DEPLOYMENT.md’s “Horizontal scaling considerations”).docs/DEPLOYMENT.md’s “If you outgrow this.”docs/RISK_REGISTER.md’s R-005).