- TypeScript strict-mode passes (
cd mcp && npx tsc --noEmit) - Python wheel builds (
cd mcp/python && python -m build) if Python changed - At least one demo example runs end-to-end against my branch
- If I changed an engine, the audit log_id either intentionally changed (documented) or is the canonical reference
- README / DISTRIBUTION.md updated if I added a public-surface change
- The reasoning chain on every claim is non-negotiable. If you find a code path that emits an empty reasoning field, that's a bug.
- The ECS formula must be rendered visibly in the output along with the dimension values. No opaque score totals.
- Audit
log_ids must be deterministic over canonicalised JSON. Timestamps never enter the hash. - Server-side input validation lives in Zod (TypeScript). Python client stays thin.