Aller au contenu

PD-EXP-01 — Comparaison de patterns de prompt pour les gates PMO

Date : 2026-02-18 Statut : ✅ Complété — 4 phases exécutées Auteur : Claude (orchestration) + GPT-5.3-codex (vérification croisée)


1. Résumé exécutif

Question : L'ordre d'injection des instructions de gate (Q) et des documents à analyser (C) influence-t-il la qualité des revues PMO ?

Réponse : Oui, mais différemment selon le modèle revieweur.

Phase Producteur Vérificateur Vainqueur G3 Score
Phase 1.5 Claude GPT CQCQ 9.56
Phase 2.5 GPT Claude QC 9.19

Conclusions clés :

  1. CQCQ domine quand Claude est le revieweur (+164% TP/call vs CQ statu quo)
  2. QC est marginalement meilleur quand GPT est le revieweur (+7% TP/call vs CQ, delta faible)
  3. CQCQ est contre-productif pour GPT : 8.5 TP/call vs 10.5 pour QC (−19%)
  4. Le pattern gagnant est modèle-dépendant — pas de vainqueur universel

Recommandation par cas d'usage :

Contexte d'utilisation Pattern recommandé Δ vs statu quo CQ
Revues Claude (confrontations, review interne) CQCQ +164% TP/call, +25 pts précision
Gates production GPT (étapes 3, 5, 8) QC +10% TP/call, delta modéré
G8 (Closure) tous modèles CQ statu quo Signal plat, pas de gain significatif

Décision GO/NO-GO :

Action Décision Justification
Templates gates production G3/G5 → QC GO conditionnel Δ = +0.59 quality score (7%), valider sur G5
Templates confrontations Claude → CQCQ GO Signal fort convergent Phase 1.5
Templates G8 → CQCQ NO-GO Signal plat, CQCQ non bénéfique pour GPT

2. Méthodologie

2.1 Patterns testés

Pattern Structure Description
CQ Documents → Instructions Contexte avant question (statu quo)
QC Instructions → Documents Instructions avant contexte
CQCQ Doc+Instr × 2 Répétition complète
QCQ Instr → Doc → Rappel Instructions encadrant les documents

Définitions :

  • Q = instructions complètes (rôle + axes d'analyse + format de restitution)
  • C = contenu des documents injectés inline (spec, tests, plan selon la gate)

2.2 Stories analysées (10)

Story Domaine Complexité G3 ref G5 ref G8 ref
PD-52 blockchain complex 9.00 8.875 7.75
PD-105 mobile-ios complex 7.75 7.75 8.38
PD-19 backend-core medium 7.50 8.50 8.00
PD-44 storage high 8.00 8.50 8.30
PD-82 crypto high 8.875 8.875 8.50
PD-31 auth-identity high 8.50 8.13 8.18
PD-79 b2c-mineurs medium 8.50 8.13 7.88
PD-53 blockchain simple 8.625 8.875 9.19
PD-46 storage medium 8.75 9.00 8.625
PD-107 mobile-ios complex 8.75 8.38 8.625

2.3 Architecture en 4 phases

Phase 1 : Claude -p produit 116 reviews (4 patterns × 10 stories × 3 gates)
Phase 1.5 : GPT vérifie les issues Claude (TP/FP) — 18 calls G3
Phase 2 : GPT produit 116 reviews sur les mêmes 116 prompts
Phase 2.5 : Claude -p vérifie les issues GPT (TP/FP) — 8 calls G3 (fixed)

Chaque phase croise le modèle producteur avec un vérificateur indépendant pour éviter le biais d'auto-évaluation.

2.4 Métriques

  • Métrique primaire : Issues TP/call (vrais positifs par appel, vérifiés indépendamment)
  • Métrique secondaire : Précision TP% (proportion d'issues fondées sur les sources)
  • Score qualité : TP/call × TP% (pénalise à la fois le sous-détection et la sur-détection)

⚠️ La note de self-scoring (SCORE completeness=X.X ...) est exclue comme métrique qualité primaire car elle reflète la confiance du modèle en son propre output, pas la qualité réelle des issues remontées.


3. Résultats Phase 1 — Claude -p (116 appels)

3.1 Classement global par issue count brut

Pattern Calls Issues totales Issues/call Δ vs CQ
QC 29 727 25.1 +47%
CQCQ 29 691 23.8 +39%
QCQ 29 616 21.2 +24%
CQ 27 461 17.1 ref

Delta max-min : 8.0 → Signal FORT (critère d'arrêt : > 0.2)

3.2 Classement par gate

Pattern G3 avg G5 avg G8 avg Global
QC 28.6 36.6 8.3 25.1
CQCQ 32.4 32.1 5.1 23.8
QCQ 23.6 32.8 5.8 21.2
CQ 22.1 23.8 5.3 17.1

Observations :

  • G3 : CQCQ domine (32.4 avg) suivi de QC (28.6)
  • G5 : QC domine (36.6 avg) avec forte inflation suspectée
  • G8 : toutes très faibles (~5-8) — cohérent avec un contexte très riche limitant les écarts

3.3 Analyse PD-82 (story de référence)

Comparaison avec la review officielle G3 (28 issues, confrontation 28 issues) :

Pattern Issues Δ vs official
Official review 19 ref
Official confrontation 28 +47%
QCQ 21 +11%
QC 20 +5%
CQ 19 0%
CQCQ 40 +111% ← inflation suspectée

→ CQCQ dépasse systématiquement le plafond de la confrontation officielle : signal d'inflation potentielle confirmé par Phase 1.5.


4. Résultats Phase 1.5 — Vérification FP via GPT-5.3-codex (Claude produit)

4.1 Protocole

  • 5 story-gates sélectionnées (plus fort delta Phase 1) : PD-19-G5, PD-107-G5, PD-52-G3, PD-44-G5, PD-53-G3
  • 18 appels OpenCode (ChatGPT GPT-5.3-codex) : source docs + issues → TP/FP par issue
  • Format de réponse : ID | TP/FP | justification courte

4.2 Limitation découverte : données G5 invalides

Les prompts de vérification G5 ne contenaient que spec+tests, sans le plan d'implémentation. Les issues de Gate 5 référencent majoritairement le plan (§10.x, tâches Txx, code contracts CC-44-xx), non vérifiables sans ce document.

Tous les résultats G5 (PD-19-G5, PD-44-G5, PD-107-G5) sont invalides et exclus de l'analyse.

4.3 Résultats Gate 3 (données fiables — PD-52 + PD-53)

Pattern Vérifiées TP FP TP% TP/call Score qualité
CQCQ 44 29 15 65.9% 14.5 9.56 🏆
QCQ 36 23 13 63.9% 11.5 7.35
QC 38 17 21 44.7% 8.5 3.80
CQ 27 11 16 40.7% 5.5 2.24

Score qualité = TP/call × TP% (double pénalisation : sous-détection et faux positifs)

4.4 Inversion du classement Phase 1 → Phase 1.5

Classement Phase 1 (raw issues) Phase 1.5 (TP/call, G3)
1er QC (25.1/call) CQCQ (14.5 TP/call)
2e CQCQ (23.8/call) QCQ (11.5 TP/call)
3e QCQ (21.2/call) QC (8.5 TP/call)
4e CQ (17.1/call) CQ (5.5 TP/call)

Interprétation : QC produit plus d'issues brutes mais avec une précision faible (44.7%). CQCQ produit des issues plus fiables (65.9% de TP) avec un volume absolu supérieur en vraies issues.


5. Résultats Phase 2 — GPT-5.3-codex (116 appels)

5.1 Classement global par issue count brut

Pattern Calls Issues/call G3 avg G5 avg G8 avg
QCQ 29 8.5 12.4 12.1 0.2
QC 29 8.4 11.7 12.3 0.3
CQCQ 29 8.2 11.7 11.9 0.3
CQ 29 7.5 10.5 10.9 0.4

Delta max-min : 1.0 → Signal MODÉRÉ (vs 8.0 pour Claude Phase 1)

Observations :

  • GPT produit ~3× moins d'issues que Claude (7.5-8.5 vs 17-25 par appel)
  • G8 essentiellement nul pour GPT (0.2-0.4/call) — modèle très conservateur sur closure review
  • Les 4 patterns se distinguent peu en volume brut (delta = 1.0)

5.2 Comparaison producteur

Métrique Claude (Phase 1) GPT (Phase 2) Ratio
Issues/call moyen 21.8 8.2 0.38×
Delta max-min 8.0 1.0
G8 issues/call 6.2 0.3

6. Résultats Phase 2.5 — Vérification FP via Claude -p (GPT produit)

6.1 Protocole

  • 8 appels G3 seulement (données G5 invalides — plan manquant, même problème que Phase 1.5)
  • Stories : PD-52-G3 + PD-53-G3, 4 patterns chacune
  • Bug corrigé : format d'extraction des issues GPT (plain-text Type : X / Description : Y vs markdown bold)

6.2 Résultats détaillés

Call Total TP FP TP%
PD-52-G3-CQ 12 11 1 91.7%
PD-52-G3-QC 14 13 1 92.9%
PD-52-G3-CQCQ 13 11 2 84.6%
PD-52-G3-QCQ 12 9 3 75.0%
PD-53-G3-CQ 9 8 1 88.9%
PD-53-G3-QC 10 8 2 80.0%
PD-53-G3-CQCQ 9 6 3 66.7%
PD-53-G3-QCQ 10 8 2 80.0%

6.3 Agrégation par pattern

Pattern TP tot FP tot TP/call TP% Score qualité
QC 21 3 10.5 87.5% 9.19 🏆
CQ 19 2 9.5 90.5% 8.60
CQCQ 17 5 8.5 77.3% 6.57
QCQ 17 5 8.5 77.3% 6.57

7. Synthèse croisée : CQCQ vs QC selon le modèle

7.1 Tableau de synthèse complet (G3 — données fiables)

Phase 1.5 — Claude produit, GPT vérifie Phase 2.5 — GPT produit, Claude vérifie
Pattern Issues/call TP% Score Issues/call TP% Score Δ score
CQ (statu quo) 13.5 40.7% 2.24 10.5 90.5% 8.60
QC 19.0 44.7% 3.80 12.0 87.5% 9.19 🏆 +7% vs CQ
QCQ 18.0 63.9% 7.35 11.0 77.3% 6.57 −24% vs CQ
CQCQ 22.0 65.9% 9.56 🏆 10.5 77.3% 6.57 −24% vs CQ
Rang 1 CQCQ QC
Delta top/bot +327% +7%

Lecture :

  • Claude : le score de précision (TP%) et le volume tous deux augmentent avec CQCQ — double bénéfice
  • GPT : QC marginalement meilleur (+7%), mais CQCQ dégrade la qualité (−24%) — la répétition nuit

7.2 Inversion des classements (résumé)

7.2 Hypothèse mécanistique

Phase Modèle Comportement Explication
P1.5 Claude CQCQ >> autres Très sensible à la répétition des docs ; la double exposition C force l'attention sur toute la spec même avec long contexte
P2.5 GPT QC ≥ CQ >> CQCQ GPT moins bénéficiaire de la répétition ; la double longueur du prompt CQCQ dilue le signal utile

L'effet de répétition bénéfique documenté dans arXiv 2512.14982 (papier Google DeepMind, Q Q aide) est asymétrique entre modèles dans un contexte RAG long.

7.3 Impact production

Le workflow de governance utilise ChatGPT (GPT-5.3-codex) via OpenCode pour les gates 3, 5, 8. La recommandation de passer à CQCQ (valable pour Claude) serait contre-productive en production.


8. Analyse par gate

Gate 3 — Spec Review

Modèle Vainqueur Score Δ vs CQ
Claude (producteur) CQCQ 9.56 +327%
GPT (producteur) QC 9.19 +7%

Recommandation : QC pour production (gates GPT), CQCQ pour confrontations Claude.

Gate 5 — Plan Review

Données insuffisantes dans les deux phases (plan document manquant dans les verify prompts). À réexécuter avec le plan injecté.

Gate 8 — Closure Review

GPT produit quasi-zéro issues (0.2-0.4/call) pour tous les patterns. Contexte trop riche (spec + tests + acceptabilité) ou modèle trop conservateur. Pas de signal → statu quo CQ.


9. Analyse par complexité (Phase 1, G3)

Complexité Stories Pattern + issues G3
Simple PD-53 CQCQ (39) >> QC (21) > QCQ (15) = CQ (15)
Medium PD-19, PD-46, PD-79 QC domine
High PD-44, PD-82, PD-31 CQCQ et QC ex-aequo
Complex PD-52, PD-105, PD-107 CQCQ (50) >> QC (41) > QCQ (27) > CQ (20)

Tendance (Claude producteur) : CQCQ avantage croissant avec la complexité.


10. Comparaison avec la littérature

arXiv 2512.14982 — "Prompt Repetition Improves Non-Reasoning LLMs"

Auteurs : Leviathan, Kalman, Matias (Google DeepMind, déc. 2025) Référence : arxiv.org/abs/2512.14982

Patterns testés dans le papier

Pattern papier Équivalent PD-EXP-01 Description
Q (baseline) [C][Q] (CQ) Instructions seules
Q Q [Q][C][Q] (QCQ) Instructions répétées
Q Q Q Instructions ×3
[C][Q][C][Q] (CQCQ) Répétition complète (notre extension)

Le papier ne teste que la répétition de Q seul (sans contexte intercalé). PD-EXP-01 va plus loin en testant la répétition du couple C+Q (CQCQ) dans un contexte RAG long.

Résultats comparés

Critère Papier arXiv PD-EXP-01 G3 (Claude) PD-EXP-01 G3 (GPT)
Vainqueur Q Q (47/70 tests) CQCQ (score 9.56) QC (score 9.19)
Magnitude Flash-Lite : 21%→97% +327% TP/call vs CQ +7% TP/call vs CQ
Monotone ? Oui (Q×3 ≥ Q×2 ≥ Q) CQCQ > QCQ > QC > CQ QC > CQ > CQCQ = QCQ
Modèles reasoning Effet neutre Non testé Non testé

Mécanisme — convergence théorique (cas Claude)

Le papier explique le gain par la contrainte causale des LLMs : "Past tokens cannot attend to future tokens. Repeating the prompt enables each token to attend to every other prompt token."

Dans notre contexte (documents ~30k chars), ce mécanisme est amplifié par le phénomène "Lost in the Middle" (Liu et al. 2023) :

Pattern CQ :
[spec+tests 30k chars]────────────────────► [instructions gate]
        ↑ zone "middle" — faible attention sur les sections centrales

Pattern CQCQ :
[docs] → [instructions] → [docs AGAIN] → [instructions AGAIN]
                        Docs ré-exposés juste avant l'analyse finale
                        → attention forte sur les sections critiques

CQCQ résout simultanément :

  1. Le problème d'attention Q→Q (les instructions sont répétées après le contexte)
  2. Le problème "Lost in the Middle" (les documents sont réexposés proches des instructions finales)

Divergence modèle-dépendante

PD-EXP-01 ajoute une nuance absente du papier : l'effet de répétition est modèle-dépendant.

  • Claude Sonnet 4.5 : CQCQ dominant (+327% vs CQ) — très sensible aux re-reading effects
  • GPT-5.3-codex : QC marginalement meilleur (+7% vs CQ), CQCQ dégradé (−24%) — moins bénéficiaire de la double injection en long-context

Le papier arXiv testait des tâches MCQ courtes sans contexte RAG. Sur documents longs (~30k chars), le coût en tokens de la répétition est proportionnel au volume C, ce qui peut annuler le bénéfice pour les modèles moins sensibles à la répétition.


11. Limitations

Limitation Impact Mitigation
Self-scoring biais Classement Phase 1 trompeur si utilisé seul Corrigé : métrique TP/call Phase 1.5 et 2.5
Données G5 invalides (plan absent) Impossible de conclure sur G5 À réexécuter avec plan injecté
2 story-gates seulement pour G3 FP Statistiquement limité (n=2) Signal fort malgré petit n
Bug extraction Phase 2.5 initial Premières vérifications invalides Corrigé avec rebuild_p2_verify_g3.py
Biais inter-modèles Phase 1.5/2.5 Vérificateur partisan possible Acceptable : diversité cognitive intentionnelle
GPT quasi-nul sur G8 Modèle trop conservateur ou prompt trop riche À investiguer : split docs vs inject complet
1 run/pattern, temperature≈0.1 Variance non nulle Acceptable pour GO/NO-GO

12. Décision et recommandation

Décision par contexte d'usage

Contexte Pattern actuel Pattern recommandé Δ Décision
Gates production G3/G5 (GPT) CQ QC +7% TP/call GO conditionnel — valider G5
Confrontations Claude (etape ⅗/8) CQ CQCQ +327% TP/call GO — signal fort
Gate G8 (tous modèles) CQ CQ (inchangé) plat STATU QUO

Modification recommandée — Gates production (GPT → QC)

Structure actuelle (CQ) :

[Documents injectés]
---
[Gate template (rôle + axes + format)]
[Auto-scoring]

Structure recommandée (QC) :

[Gate template (rôle + axes + format)]
---
[Documents injectés]
[Auto-scoring]

Bénéfice attendu : +7% TP/call sur G3, à confirmer sur G5.

Modification recommandée — Confrontations Claude (CQCQ)

Structure recommandée (CQCQ) pour les phases de confrontation orchestrées par Claude :

[Documents injectés]
---
[Gate template (rôle + axes + format)]
---
[Documents injectés — répétition]
---
[Gate template condensé (rôle + axes)]
[Auto-scoring]

Bénéfice attendu : +327% TP/call, +25 pts de précision vs statu quo CQ.

Prochaines étapes

  1. G5 FP verification (obligatoire) : Re-exécuter avec plan injecté dans les verify prompts
  2. Modifier templates gates GPT : CQ → QC pour G3 et G5 (si G5 confirme)
  3. Modifier prompts confrontation Claude : CQ → CQCQ pour tous les appels claude -p

Annexe — Fichiers produits

Fichier Contenu
/tmp/gate-exp/prompts/*.md 116 prompts assemblés (4 patterns × 10 stories × 3 gates)
/tmp/gate-exp/results-claude/*.md 114 résultats Claude -p (Phase 1)
/tmp/gate-exp/results-opencode/*.md 116 résultats GPT-5.3-codex (Phase 2)
/tmp/gate-exp/verify-prompts/*.md 18 prompts de vérification FP Phase 1.5
/tmp/gate-exp/results-verify-opencode/*.txt 18 résultats GPT vérification (Phase 1.5)
/tmp/gate-exp/verify-prompts-p2-fixed/*.md 8 prompts de vérification FP Phase 2.5 (format corrigé)
/tmp/gate-exp/results-verify-claude-fixed/*.txt 8 résultats Claude vérification (Phase 2.5)
/tmp/gate-exp/analyze_phase25_fixed.py Script d'analyse Phase 2.5
docs/experiments/PD-EXP-01-prompt-patterns.md Ce document