Aller au contenu

M-Audit - Audit de cohérence

Type : écran « Audit de cohérence », carte d'action du prisme Collecte & passages de M-Accueil. Persona principal : Samuel (garder une base saine sur la durée, sur un volume que l'œil ne couvre plus). Parcours couverts : transverse. L'écran ne sert aucun parcours de bout en bout : il se consulte quand un doute naît, souvent après un import, un dépôt ou un changement de disque. Épopées couvertes : E0.S11. Issues : #1133 (écran), #1254 (vérification en ligne), #1347 (audit ciblé et navigation vers le passage), #3100 (barre de filtres) - chantiers #1131 et #3092.

Trois vérités, trois endroits. Le travail de l'observateur vit sur le disque (les fichiers audio), dans la base (ce que l'application en sait) et sur Vigie-Chiro (ce que la plateforme a reçu). Ces trois-là divergent, et le plus souvent sans rien dire : un disque débranché, un fichier renommé à la main, un dépôt inachevé. Cet écran existe pour que plus rien ne diverge en silence.

Maquette principale - des écarts détectés


VigieChiro Companion Accueil › Audit de cohérence Rechercher

2 écart(s) : 1 erreur(s) , 0 avertissement(s), 1 info(s). Relancer l'audit Vérifier en ligne Auditer ce passage

+ Vue

Rechercher (cible, détail…) + Filtre Tout effacer

GRAVITÉ CATÉGORIE PASSAGE CIBLE DÉTAIL

Information Audio incomplet 1 passage 1 Audio absent (0/3 séquence(s) sur disque).

Erreur Préfixe non conforme 1 PaRec_20260622_213000.wav Nom sans le préfixe attendu du passage.

Annotations

  • Le résumé chiffre, la table détaille (lblResume). L'en-tête ventile les constats par gravité - « 2 écarts : 1 erreur, 0 avertissement, 1 info » - avant que l'utilisateur ne lise une seule ligne. Un audit se juge d'abord à sa forme : y a-t-il des erreurs, ou seulement des informations ?
  • Le verdict porte sur l'audit ENTIER, jamais sur ce qui est filtré. Poser une puce masque des lignes ; cela ne rend pas la base saine. Le résumé, le verdict et le code de sortie de la commande jumelle continuent donc de juger l'ensemble (ADR 3092). Sans cette règle, audit-coherence --gravite INFO rendrait 0 sur un workspace abîmé, et un script d'intégration en conclurait que tout va bien.
  • Trois critères, aucun présélectionné (#3100) : Gravité, Catégorie, Passage. Un audit se lit d'abord en entier ; on filtre ensuite pour travailler. C'est pourquoi cet écran n'a pas d'entorse comparable à celle de « Sons & validation », où deux puces filtrent dès leur ajout (ADR 3099).
  • Aucune vue par défaut, contrairement aux quatre autres écrans à puces. Une vue « Bloquants seulement » se dessine sur une distribution de gravités réelle, que la base de démonstration ne produit pas encore : la proposer sans l'avoir vue à l'œuvre serait deviner ce que l'observateur regarde en premier.
  • Le critère Passage se calcule sur les autres puces. Lire la liste déjà filtrée ferait s'auto-effondrer la puce : une fois la nuit 42 cochée, le menu n'offrirait plus que 42 (ADR 3095). Un constat qui ne cite aucune nuit - un fichier orphelin, un serveur injoignable - n'entre pas dans la liste des passages : il n'y aurait rien à y désigner.
  • Les gravités et catégories se lisent en français. Les colonnes ont longtemps affiché PREFIXE_NON_CONFORME et AVERTISSEMENT : des identifiants de code au milieu d'une interface française. Chaque constante porte désormais son libellé, tiré de sa propre documentation.
  • « Auditer ce passage » (boutonAuditerPassage, #1347) reste désactivé tant qu'aucun constat citant une nuit n'est sélectionné. Un bouton désactivé n'affiche pas d'infobulle : l'explication se pose sur son enveloppe (socle #789). Après avoir réparé une nuit, on veut vérifier celle-là, pas tout le workspace.
  • Le double-clic ouvre le passage accusé. La table nommait le coupable et laissait l'utilisateur le retrouver à la main, alors que partout ailleurs une ligne de table s'ouvre au double-clic.
  • « Vérifier en ligne » ajoute les constats serveur aux constats disque / base. L'appel réseau se fait derrière un voile d'occupation (#1254) : le bouton se grise le temps du traitement plutôt qu'un setDisable posé à la main.
  • Un bandeau de compte rendu paraît quand des filtres n'ont pas pu être remis en place. Sur cet écran, le cas est la règle plutôt que l'exception : relancer l'audit renouvelle les constats, donc les passages qu'un filtre mémorisé désignait (ADR 3093).

Variante - rien à signaler


VigieChiro Companion Accueil › Audit de cohérence

Cohérence disque / base : aucun écart détecté. Relancer l'audit Vérifier en ligne

Aucun écart de cohérence détecté.

Interactions clés

Geste Effet
Relancer l'audit Recalcule les constats disque / base, hors ligne et rapide
Vérifier en ligne Ajoute les constats serveur (unités absentes, localités divergentes)
Double-clic sur une ligne Ouvre le passage que le constat accuse
Sélection d'une ligne citant un passage Active « Auditer ce passage »
« + Filtre » puis une puce Restreint l'affichage ; le résumé et le verdict ne bougent pas
« Tout effacer » Retire les puces, la recherche et le tri, et oublie la mémoire de session

Notes pour l'implémentation

  • La vue est pur câblage : AuditController lie la table et le résumé à AuditViewModel, qui expose deux listes - constats() (l'audit entier, d'où viennent le résumé et le verdict) et constatsFiltres() (ce que la table montre). Les brancher à l'envers est silencieux.
  • La table se pose sur une SortedList par-dessus la liste filtrée. Une FilteredList posée nue est non modifiable : TableView renonce alors à trier et vide son sortOrder en silence.
  • Les clés gravite, categorie et passage restent chez cet écran : elles ne sont partagées avec aucun autre, et ClesCriteres ne porte que le commun (ADR 3096). categorie n'a rien à voir avec le groupe taxonomique des autres écrans.
  • En ligne de commande : audit-coherence [--passage <id>] [--gravite <niveau>] [--categorie <nature>] [--json] [--online]. --passage cadre l'audit (il n'audite que cette nuit), là où la puce filtre l'affichage d'un audit global. Les deux répondent à « qu'est-ce qui cloche sur cette nuit ? », par deux chemins qui ne produisent pas exactement le même ensemble.