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¶
- Projets doc-only : grilles d'evaluation inadaptees — 7/12 ecarts ChatGPT rejetes comme faux positifs (Jest, .spec.ts, @Roles, REST). Cout de tri disproportionne.
- Gate 3 GO en v1 = marqueur qualite — premiere story doc avec Gate 3 GO en v1 (8.94/10). Learnings injectes (3) ont contribue.
- 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.
- 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.
- Temps record — 2.5h effectives pour workflow complet (11 etapes). Perimetre doc-only Python/Shell.
Patterns recurrents (domaine legal-compliance)¶
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-onlydans 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_typedans les prompts de review : Modifiertemplates/prompts/7a Review Code.md,7b Review Tests.md,7c Review Security.mdet8 Revue Acceptabilite.mdpour desactiver les criteres Jest/TypeScript/REST/@Roles quandproject_type: doc-only. Impact : elimination de 7 faux positifs systematiques par story doc.
Priorite normale¶
- Propager la reference epique automatiquement : Quand
WORKFLOW-STATE.mdcontient 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
docsanssonar-project.properties, marquer Phase 1.5 N/A automatiquement. - Pseudo-code plan : granularite minimale : Ajouter dans
templates/prompts/4 Plan Implementation.mdune 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 avecproject_type: doc-onlypour desactiver les criteres Jest/TypeScript/REST.
Section templates/prompts/7a Review Code.md¶
Suggestion : Ajouter en tete du template :
Si
project_type: doc-onlyest specifie, les criteres suivants sont N/A : couverture Jest/Vitest, assertionsexpect(...), mapping.spec.ts, endpoints REST, @Roles/@Guard, Sonar Quality Gate.
Document genere le 2026-03-01. Story PD-281, projet ProbatioVault-doc.