# P1 Quality Gate (edited by glg)

Dokumen ini menjadi baseline gate release untuk horizon P1 (1-3 bulan).

## Stage Wajib
- `quality`: compile sanity (`compileall`) untuk source utama.
- `static_analysis`: lint/type/security gate bertahap.
- `unit`: verifikasi logic unit yang deterministic.
- `integration`: verifikasi interaksi lintas komponen kritikal.
- `smoke`: sanity check runtime konfigurasi.
- `gui_stability`: validasi sekuens GUI lintas modul untuk mendeteksi crash native/lifecycle.
- `perf_smoke`: smoke test non-fungsional (load/soak/burst) dengan durasi pendek.

## Perintah Lokal
Jalankan seluruh gate:

```bash
python scripts/ci/run_quality_gate.py --stage all
```

Jalankan stage tertentu:

```bash
python scripts/ci/run_quality_gate.py --stage perf_smoke
```

## Catatan Scope
- `static_analysis` saat ini menegakkan:
  - `ruff` fatal (`E9,F63,F7,F82`) pada modul runtime kritikal `auth/sinkronisasi/penjualan`.
  - `mypy` fatal-only pada modul runtime kritikal (error budget nol untuk kategori fatal).
  - `bandit` tanpa temuan severity HIGH.
- `perf_smoke` bukan benchmark produksi penuh.
- Tujuan `perf_smoke` adalah fail-fast terhadap regresi performa kasar sebelum release.
- Benchmark dan capacity planning besar tetap perlu pipeline terpisah.

## Status Terkini (2026-04-16)
- Mypy non-fatal modul runtime kritikal: `0` error, turun dari baseline `61`.
- Temuan Bandit `B608`: `0` (tertutup sistemik via helper query builder + refactor query dinamis model/service).
- Validasi stabilitas: `3` siklus CI berturut-turut lulus untuk stage `static_analysis`, `quality`, `unit`.
