# CI quality-gate orchestration `config/ci/gates.json` is the executable registry for all 26 gates. The Gitea adapter runs each gate as an independent matrix check with full fan-out and no soft-fail wiring. The dependency graph is: ```text MERGE_READY -> RELEASE_READY -> PROD_PROMOTION_READY -> FIELD_SLO_READY DOCUMENTATION_READY (off-chain) ``` Pull requests and `develop` pushes evaluate merge readiness. Version tags evaluate merge then release readiness. Production and field evaluation require an explicit workflow dispatch. The field tier cannot pass until the 28-day sample threshold decision is recorded. Documentation readiness consumes the canonical project-note evidence in which both scoped diagrams already received 100/100 `PASS_SCOPED`; the repo ledger preserves the evidence scope and canonical digests. All jobs upload the shared `artifacts/` tree even after failure. Numeric retention remains an organization/provider decision; the workflow intentionally does not invent `retention-days`. The relative minimums are recorded in the registry: merge evidence through the PR decision, coherent release evidence through the next release promotion, drill evidence through the next production promotion, and field evidence through aggregation. Repository variables required by higher tiers: - `HOSTING_BASE_URL` for live header verification - `FIELD_WEB_VITALS_INPUT` for the privacy-approved field sample document - `MIN_ELIGIBLE_SAMPLES` after the baseline decision Branch protection must mark each `FE-GATE-* / ` check required for its declared tier. This repository cannot configure server-side protection by committing a file.