Aller au contenu

Retrospective — PD-281

Resume story

  • Story : PD-281 — Z-lint : distinguer state vs type/category dans Anchor enum + completer types Z manquants
  • Domaine : legal-compliance
  • Projet : doc (ProbatioVault-doc)
  • Date : 2026-03-01
  • Gates : G3 GO (v1, 8.94/10) | G5 GO (v2, 8.50/10) | G8 GO (v1, 9.125/10)

Learnings de cette story

Depuis les gates

Gate Verdict Score Tags Note
G3 GO (v1) 8.94 #formal-verification, #z-lint, #enum-discrimination Distinguer state machines (status) et classifications (event_type) elimine ~80% des faux positifs Z-lint
G5 GO (v2) 8.50 #formal-verification, #z-lint, #plan-review Corrections v2 ciblees (TimestampBatchStatus, normes filesystem, pseudo-code couple) : RESERVE->GO (+0.75 delta). ChatGPT persiste sur faux positifs Jest/ESM hors contexte doc-only
G8 GO (v1) 9.13 #formal-verification, #z-lint, #doc-only Projet doc-only obtient Gate 8 GO v1 (9.125/10). Reviewers ChatGPT persistent sur grilles backend

Depuis le REX

  1. Projets doc-only : grilles d'evaluation inadaptees — 7/12 ecarts ChatGPT rejetes comme faux positifs (Jest, .spec.ts, @Roles, REST). Cout de tri disproportionne.
  2. Gate 3 GO en v1 = marqueur qualite — premiere story doc avec Gate 3 GO en v1 (8.94/10). Learnings injectes (3) ont contribue.
  3. Filtre discrimination au niveau couple (entite, colonne) — le pseudo-code initial operait au niveau entite seule (incorrect pour multi-enum). Detecte en Gate 5 AMB-02.
  4. Divergence documentaire non corrigee — Spec §5.1 (normes) reste incorrecte malgre detection Gate 5. Le processus ne prevoit pas de correction Spec apres Gate 3 GO.
  5. Temps record — 2.5h effectives pour workflow complet (11 etapes). Perimetre doc-only Python/Shell.

Pattern 1 — Faux positifs LLM sur projets non-backend (NOUVEAU)

  • Frequence : PD-281 (1 occurrence, mais 7 faux positifs en une seule story)
  • Impact : Cout de tri en acceptabilite et Gate 8. Pas de NON_CONFORME mais inflaction artificielle du nombre d'ecarts.
  • Recommandation : Ajouter un flag project_type: doc-only dans les prompts de review (7a/7b/7c) et gate (8) pour conditionner les criteres d'evaluation.

Pattern 2 — #plan learnings recurrents (14 stories)

  • Frequence : 14 stories avec tag #plan (PD-174, PD-19, PD-243, PD-248, PD-264, PD-276, PD-277, PD-279, PD-281...)
  • Impact : Gate 5 est la gate la plus souvent en RESERVE/NON_CONFORME (correction v2+ requise)
  • Recommandation : Le pseudo-code dans les plans doit systematiquement operer au niveau de granularite le plus fin (couple entite+colonne, pas entite seule).

Pattern 3 — #compliance convergence (7 stories)

  • Frequence : 7 stories avec tag #compliance (BATCH-RETRO, PD-233, PD-244, PD-278, PD-279, PD-44, PD-5)
  • Impact : Les stories legal-compliance convergent bien (Gate 3 GO en v1 frequente)
  • Tendance : positive — learnings #compliance sont bien capitalises

Pattern 4 — #formal-verification emergence (2 stories, mais croissant)

  • Frequence : PD-280, PD-281 (Sprint 9). Nouveau tag, pas encore 3 stories.
  • Impact : Les stories formelles (TLA+, Prolog, Alloy, Z-lint) ont des besoins specifiques non couverts par les grilles standard.
  • Recommandation : Surveiller — si une 3eme story #formal-verification confirme le pattern, creer des templates de review dedies.

Recommandations

Priorite haute

  • Ajouter project_type dans les prompts de review : Modifier templates/prompts/7a Review Code.md, 7b Review Tests.md, 7c Review Security.md et 8 Revue Acceptabilite.md pour desactiver les criteres Jest/TypeScript/REST/@Roles quand project_type: doc-only. Impact : elimination de 7 faux positifs systematiques par story doc.

Priorite normale

  • Propager la reference epique automatiquement : Quand WORKFLOW-STATE.md contient l'identifiant epique, l'injecter dans les prompts de spec et tests pour eviter les placeholders "A clarifier" / "EPIC-XX".
  • Phase 1.5 Sonar : detection auto du type de projet : Pour les projets doc sans sonar-project.properties, marquer Phase 1.5 N/A automatiquement.
  • Pseudo-code plan : granularite minimale : Ajouter dans templates/prompts/4 Plan Implementation.md une instruction "Le pseudo-code doit operer au niveau de granularite le plus fin disponible (couple entite+colonne, pas entite seule)".
  • Correction Spec canonique apres Gate 5 : Quand une divergence documentaire (type AMB) est identifiee en Gate 5, proposer une mise a jour de la Spec avant de continuer a l'etape 6.

Signal CLAUDE.md

Section .claude/rules/procedures.md — Etape 7

Suggestion : Ajouter un paragraphe sur les projets doc-only :

Projets doc-only (type=doc) : Les checks Phase 1 sont limites a Python syntax (py_compile), Shell syntax (bash -n), et Z-lint/Prolog/TLA+ selon le perimetre. Phase 1.5 Sonar est N/A. Les reviews LLM Phase 2 doivent etre configurees avec project_type: doc-only pour desactiver les criteres Jest/TypeScript/REST.

Section templates/prompts/7a Review Code.md

Suggestion : Ajouter en tete du template :

Si project_type: doc-only est specifie, les criteres suivants sont N/A : couverture Jest/Vitest, assertions expect(...), mapping .spec.ts, endpoints REST, @Roles/@Guard, Sonar Quality Gate.


Document genere le 2026-03-01. Story PD-281, projet ProbatioVault-doc.