Qualité, CI & audits

Ce projet affiche ses notes, y compris les mauvaises. La qualité n'y est pas un badge : c'est un ensemble de barrières qui cassent la build, et un journal public des preuves.

Pipeline CI

Chaque push exécute .github/workflows/ci.yml : gates d'hygiène → ktlint → detekt → tests (:core + :app) → couverture (koverVerify) → Android lint → assemblage debug et release minifié (R8). L'APK release est un artefact CI : la configuration ProGuard est prouvée à chaque push.

Les 9 gates (ci/checks.sh)

GateCe qu'elle interdit
BinairesAPK/AAB ou sorties de build versionnés
Scripts jetablespatchs one-off à la racine (l'édit direct est la règle)
gradlewperte du bit exécutable
VersionversionName/versionCode non single-sourcés
Fréquenceun « 44100 » littéral hors AudioConfig
Pureté :corele moindre import Android dans :core
Couleursun littéral Color(0x…) hors theme/Color.kt
Textedu texte utilisateur en dur dans un fichier Compose
Résurrectionle retour de code mort purgé (Webview/INTERNET compris)

Tests & couverture

  • 202 tests JVM, dont 158 dans :core à ≥ 90 % de couverture de ligne (gate CI).
  • Snapshots dorés DSP : spectre complet à graine fixe, tolérance 1e-9 — toute dérive numérique est détectée.
  • Tests analytiques : calibration 0/−20/−60 dBFS, réponses Butterworth (−3,01 dB aux coupures, −48 dB/oct), scalloping de Hann (−1,42 dB mi-bin, corrigé +0,32 dB).
  • Tests GPS par scénarios : constantes, rampes, freinage −6 m/s², pertes 1–60 s, σ 0,05–5 m/s, outliers multiples, RMSE lissé < causal < brut, migration sidecar v1/v2/v3.
  • Convention de nommage : les tests portent l'ID du constat d'audit qu'ils gèlent ou corrigent (c1_…, gps2_…) — traçabilité totale.

Limite assumée : zéro test instrumenté à ce jour (la couverture CI ne mesure que :core) ; la vérification appareil est faite manuellement à chaque phase et consignée avec preuves dans AAA-TRACKING.md.

La culture d'audit

  • V13.1-audit.md — 74 constats avec preuves fichier:ligne (gelé) ; l'origine de toute la refonte.
  • audit-gps.md — audit dédié de la chaîne de vitesse (GPS-01…GPS-15, gelé).
  • V14-ui-ux-audit.md — audit de la couche présentation : 34 constats sur 11 axes (A− couleur, D typographie, F iconographie), lisible en ligne.
  • V13.2-audit.md — audit de l'état courant : 31 constats, notes par domaine, verdict affiché (B− ingénierie, C instrument).
  • AAA-TRACKING.md — journal d'exécution : chaque phase, chaque commit, chaque déviation (DEV-1…DEV-52) et chaque preuve de gate. Zéro décision invisible.

État actuel, sans maquillage

L'audit courant est clair : la classe de défauts de mesure de la V13.1 est close, mais aucun chiffre affiché n'est encore validé contre une vérité terrain. Constantes GNSS provisoires, indice d'émergence non calibré, zéro test instrumenté, release non signée : c'est écrit, c'est suivi, c'est le travail des prochaines phases (GPS-5, plan 5.x). Un instrument AAA se prouve sur le terrain — pas dans une page web.