Ajouter REVIEW.md : niveaux de risque calibrés et règles de revue par zone #456

Closed
opened 2026-10-17 12:18:06 +00:00 by maximus · 1 comment
Owner

Premier travail du pilote « évolution de /pr-review » (constats 1 et 2). Contexte et mesures de départ : docs/evolution-pr-review.md, PR maximus/agent-defenseurs#190, section 4.

Problème

/pr-review applique la même revue à toutes les PR, qu'elles touchent un changelog ou les jetons OAuth, et le savoir propre à ce dépôt vit dans le skill global, où il vieillit sans que personne le voie (la section « CI coverage gap » du skill est fausse ici depuis #232).

Travail

  1. Calibrer les niveaux (C1). Rejouer le classement par chemins sur les 39 PR mergées de référence (#344 à #452). Le classement d'essai donne 3 bas, 19 normal, 17 haut : trop de niveau haut. Cible : au plus 20 % de niveau haut. Pistes : src-tauri/src/lib.rs haut seulement si le diff touche un bloc Migration ; package.json, package-lock.json, Cargo.lock hauts seulement si une dépendance change, pas pour un bump de version de l'app. Les motifs d'essai sont dans la section 4.3 du document.
  2. Créer REVIEW.md à la racine (B1), quatre sections :
    • Niveaux : motifs de chemins calibrés par niveau (bas, normal, haut), règle « le niveau le plus haut l'emporte ».
    • Ce qui compte par zone : vie privée (aucun nouvel appel réseau, connect-src de tauri.conf.json) ; précision financière (parsing des montants, encodages CSV) ; migrations (jamais modifier une migration existante, consolidated_schema.sql, profils secondaires ADR 0021) ; jetons et licence (ADR 0004, 0006, 0017, 0020) ; dépendances (.cargo/audit.toml ADR 0018, garde windows-sys ADR 0023) ; release et updater (release.yml, scripts/build-latest-json*, clé publique) ; i18n FR/EN.
    • Commandes de vérification : npm run build, npm test, cargo check --manifest-path src-tauri/Cargo.toml --all-targets, cargo test --manifest-path src-tauri/Cargo.toml --all-targets ; runner de capacité 1 ; la CI des PR empilées tourne (pas de filtre branches:).
    • Pièges de revue propres au projet, repris de ~/.claude/skills/pr-review/SKILL.md.
  3. Renvoyer à REVIEW.md depuis CLAUDE.md (B2), une ligne.

Critères d'acceptation

  • REVIEW.md existe à la racine avec les quatre sections.
  • Le classement des 39 PR de référence avec les motifs du fichier est consigné dans la PR (répartition et liste des PR de niveau haut), avec au plus 20 % de niveau haut, ou un écart justifié.
  • Chaque règle de zone cite sa source (section du CLAUDE.md ou ADR).
  • CLAUDE.md renvoie à REVIEW.md.
  • Aucun code applicatif touché.
Premier travail du pilote « évolution de `/pr-review` » (constats 1 et 2). Contexte et mesures de départ : [`docs/evolution-pr-review.md`](https://git.lacompagniemaximus.com/maximus/agent-defenseurs/src/branch/docs-evolution-pr-review/docs/evolution-pr-review.md), PR maximus/agent-defenseurs#190, section 4. ## Problème `/pr-review` applique la même revue à toutes les PR, qu'elles touchent un changelog ou les jetons OAuth, et le savoir propre à ce dépôt vit dans le skill global, où il vieillit sans que personne le voie (la section « CI coverage gap » du skill est fausse ici depuis #232). ## Travail 1. **Calibrer les niveaux (C1).** Rejouer le classement par chemins sur les 39 PR mergées de référence (#344 à #452). Le classement d'essai donne 3 bas, 19 normal, 17 haut : trop de niveau haut. Cible : au plus 20 % de niveau haut. Pistes : `src-tauri/src/lib.rs` haut seulement si le diff touche un bloc `Migration` ; `package.json`, `package-lock.json`, `Cargo.lock` hauts seulement si une dépendance change, pas pour un bump de version de l'app. Les motifs d'essai sont dans la section 4.3 du document. 2. **Créer `REVIEW.md` à la racine (B1)**, quatre sections : - **Niveaux** : motifs de chemins calibrés par niveau (bas, normal, haut), règle « le niveau le plus haut l'emporte ». - **Ce qui compte par zone** : vie privée (aucun nouvel appel réseau, `connect-src` de `tauri.conf.json`) ; précision financière (parsing des montants, encodages CSV) ; migrations (jamais modifier une migration existante, `consolidated_schema.sql`, profils secondaires ADR 0021) ; jetons et licence (ADR 0004, 0006, 0017, 0020) ; dépendances (`.cargo/audit.toml` ADR 0018, garde `windows-sys` ADR 0023) ; release et updater (`release.yml`, `scripts/build-latest-json*`, clé publique) ; i18n FR/EN. - **Commandes de vérification** : `npm run build`, `npm test`, `cargo check --manifest-path src-tauri/Cargo.toml --all-targets`, `cargo test --manifest-path src-tauri/Cargo.toml --all-targets` ; runner de capacité 1 ; la CI des PR empilées tourne (pas de filtre `branches:`). - **Pièges de revue** propres au projet, repris de `~/.claude/skills/pr-review/SKILL.md`. 3. **Renvoyer à `REVIEW.md` depuis `CLAUDE.md` (B2)**, une ligne. ## Critères d'acceptation - [ ] `REVIEW.md` existe à la racine avec les quatre sections. - [ ] Le classement des 39 PR de référence avec les motifs du fichier est consigné dans la PR (répartition et liste des PR de niveau haut), avec au plus 20 % de niveau haut, ou un écart justifié. - [ ] Chaque règle de zone cite sa source (section du `CLAUDE.md` ou ADR). - [ ] `CLAUDE.md` renvoie à `REVIEW.md`. - [ ] Aucun code applicatif touché.
maximus added the
status:ready
type:infra
source:human
labels 2026-10-17 12:18:06 +00:00
maximus added
status:in-progress
and removed
status:ready
labels 2026-10-18 12:20:59 +00:00
Author
Owner

Décision de Max du 2026-10-17, prise pendant /fix-issue 456 par une question AskUserQuestion, reproduite telle quelle.

Calibration des niveaux : une PR qui ne fait que monter la version d'un paquet déjà présent dans Cargo.lock ou package-lock.json (correctifs d'advisory #344, #448, #417), niveau haut ou normal ?

Avec les autres motifs affinés, restent en haut : licence (#386-#388), migrations et profils (#394, #436), release (#414, #416, #418).

À savoir : les 39 PR du document viennent d'un tri par date de mise à jour. La plage #344-#452 compte 51 PR mergées, dont 4 PR de licence de niveau haut absentes des 39. Je consigne les deux ensembles dans la PR.

Options proposées :

  • « Normal (Recommended) » : « Haut seulement si un manifeste change (dépendance, features, plage) ou si le lock ajoute ou retire un paquet. 8/39 en haut (21 %), 12/51 (24 %). Ces PR gardent les règles de la zone Dépendances (version corrigée, diff du lock borné, audit, garde windows-sys), sans « Max doit lire ». »
  • « Haut » : « Lecture littérale de l'issue : toute version de dépendance qui change. 11/39 en haut (28 %), 16/51 (31 %). Chaque correctif d'advisory attend ta lecture avant le merge. »
  • « Autopilot » : « Continue avec ta meilleure interprétation (Normal, écart documenté dans la PR). »

Réponse de Max : Normal (Recommended).

Seconde décision, le 2026-10-18 : le contrôle du plan a refusé trois fois (limite du skill). Une fois les derniers points appliqués, Max a choisi « Continuer », d'où le commit fa1abb1 annoté « plan check bypassed ».

PR : #460.

Décision de Max du 2026-10-17, prise pendant `/fix-issue 456` par une question `AskUserQuestion`, reproduite telle quelle. > Calibration des niveaux : une PR qui ne fait que monter la version d'un paquet déjà présent dans `Cargo.lock` ou `package-lock.json` (correctifs d'advisory #344, #448, #417), niveau haut ou normal ? > > Avec les autres motifs affinés, restent en haut : licence (#386-#388), migrations et profils (#394, #436), release (#414, #416, #418). > > À savoir : les 39 PR du document viennent d'un tri par date de mise à jour. La plage #344-#452 compte 51 PR mergées, dont 4 PR de licence de niveau haut absentes des 39. Je consigne les deux ensembles dans la PR. Options proposées : - « Normal (Recommended) » : « Haut seulement si un manifeste change (dépendance, features, plage) ou si le lock ajoute ou retire un paquet. 8/39 en haut (21 %), 12/51 (24 %). Ces PR gardent les règles de la zone Dépendances (version corrigée, diff du lock borné, audit, garde windows-sys), sans « Max doit lire ». » - « Haut » : « Lecture littérale de l'issue : toute version de dépendance qui change. 11/39 en haut (28 %), 16/51 (31 %). Chaque correctif d'advisory attend ta lecture avant le merge. » - « Autopilot » : « Continue avec ta meilleure interprétation (Normal, écart documenté dans la PR). » Réponse de Max : **Normal (Recommended)**. Seconde décision, le 2026-10-18 : le contrôle du plan a refusé trois fois (limite du skill). Une fois les derniers points appliqués, Max a choisi « Continuer », d'où le commit `fa1abb1` annoté « plan check bypassed ». PR : #460.
maximus added
status:review
and removed
status:in-progress
labels 2026-10-18 12:23:01 +00:00
maximus added
status:approved
and removed
status:review
labels 2026-10-18 12:43:27 +00:00
maximus added
status:review
and removed
status:approved
labels 2026-10-18 12:56:04 +00:00
maximus added
status:approved
and removed
status:review
labels 2026-10-18 13:11:11 +00:00
maximus removed the
status:approved
label 2026-10-18 13:17:56 +00:00
maximus referenced this issue from a commit 2026-10-18 13:23:23 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/Simpl-Resultat#456
No description provided.