Release Gate Test Policy
Last Updated: 2026-02-28
Audience: Release owners, reviewers, backend maintainers
Purpose: Standardize release confidence around maintained critical-path suites.
Blocking gate (for high-risk stabilization PRs)
Use one command for repeatability:
bash
cd backend
npm run test:release:gateThis executes the curated maintained gate in order:
test:invariantstest:langchain:regressions- Selected integration tests:
tests/integration/time-tools.jest.test.tstests/integration/tools-remaining.jest.test.tstests/integration/protocol-flows.jest.test.ts
If this gate fails, release is blocked until fixed or explicitly waived by release owner with written rationale.
Fast pre-check (optional, non-blocking by itself)
For local iteration before full gate:
bash
cd backend
npm run test:release:gate:quickThis runs invariants + LangChain regressions only.
Known-unmaintained suites policy
- Known-broken or unowned legacy suites are non-blocking for release decisions.
- They must not be used as the single release-quality signal.
- Any failure in those suites should create a follow-up remediation item with:
- owner
- ETA
- decision on retirement vs repair
Until repaired and explicitly promoted, they remain informational only.
Promotion rule for legacy suites
A legacy suite can become blocking only when all are true:
- It passes consistently in at least 3 consecutive gate runs.
- It has a named owner.
- It has clear failure triage instructions in docs/runbook.
Evidence logging for PRs
For high-risk PRs, include in PR notes:
test:release:gatecommand output status- date/time of run
- commit SHA
- any explicit waiver and release-owner approval