Skip to main content

Quality Gate Guide

Run the appropriate gate before every push — not just before opening a PR.

Which gate to run

  • Any change (code or docs): make flux-quality-gates-static (~30s)
  • Code changes, no cluster: make flux-quality-gates-tc (~2-3 min)
  • Code changes, cluster running: make flux-quality-gates-static then make flux-smoke-test (~1-2 min)
  • Docs-only, fastest feedback loop: make flux-docs-lint (~5s)
flux-quality-gates-static runs in parallel: format, lint (ruff, eslint, markdownlint), type check (mypy, tsc), import validation, async hygiene, observability check, canonical schema validation, API types freshness, and frontend unit tests. flux-quality-gates-tc adds backend unit + integration tests via Testcontainers (no cluster needed).

Common mistake: skipping docs lint

Every PR that touches .md files must pass make flux-docs-lint before push. This is already included in flux-quality-gates-static — you only need to run it standalone for docs-only changes. Use make flux-docs-lint-fix to auto-fix most issues (blank lines around lists/headings/fences, language specifiers on code blocks).

Auto-fix before committing

make flux-format         # ruff format + prettier
make flux-docs-lint-fix  # markdownlint auto-fix