Aller au contenu

PD-EXP-01 — Prompt Pattern Experiment

Expérience de benchmarking des 4 ordres de prompt (CQ, QC, CQCQ, QCQ) sur les gates PMO.

Livrable principal : ../PD-EXP-01-prompt-patterns.md


Structure de l'archive

PD-EXP-01/
  README.md                         ← ce fichier
  scripts/                          ← scripts Python et Shell pour re-exécution
    run_experiment.py               ← Phase 1 : appels Claude -p (120 calls)
    run_experiment_llm.py           ← Phase 1 variant (Ollama)
    build_missing_cq_prompts.py     ← construction des prompts CQ manquants
    build_p2_verify_prompt.py       ← Phase 2.5 : construction prompts FP pour GPT→Claude
    rebuild_p2_verify_g3.py         ← Phase 2.5 : fix extraction format GPT (utilisé en production)
    analyze_fp_results.py           ← analyse Phase 1.5 (Claude produit, GPT vérifie)
    analyze_phase2.py               ← analyse Phase 2 (GPT produit)
    analyze_phase25_fixed.py        ← analyse Phase 2.5 (GPT produit, Claude vérifie)
    verify_fp_llama.py              ← vérification FP via Ollama (prototype)
    run_fp_verify_opencode.sh       ← Phase 1.5 : boucle OpenCode FP verify
    run_fp_verify_claude.sh         ← Phase 2.5 : boucle Claude -p FP verify
    run_phase2_opencode.sh          ← Phase 2 : boucle OpenCode production
  data/
    phase1-claude-results.json      ← résultats agrégés Phase 1 (Claude produit)
    phase2-opencode-results.json    ← résultats agrégés Phase 2 (GPT produit)
    fp-verify-results.json          ← résultats FP verify Phase 1.5
    phase1.5-fp/                    ← 18 résultats bruts Claude→GPT verify
    phase2.5-fp/                    ← 8 résultats bruts GPT→Claude verify (G3 uniquement)
  logs/
    experiment-claude.log           ← log Phase 1 (Claude -p)
    fp-verify-opencode.log          ← log Phase 1.5 (OpenCode verify)
    phase2-opencode.log             ← log Phase 2 (OpenCode production)
    phase2-fp-verify.log            ← log Phase 2.5 (Claude verify)

Pour refaire les benchmarks

Prérequis

  • claude CLI disponible dans $PATH (ou adapter le chemin dans les scripts)
  • opencode disponible (pour les appels GPT)
  • Stories sources accessibles dans les projets ProbatioVault (chemins dans run_experiment.py)

Étape 1 — Préparer le répertoire de travail

mkdir -p /tmp/gate-exp/{prompts,results,results-opencode,results-claude,verify-prompts}
cd /tmp/gate-exp
# Copier les scripts depuis l'archive
cp /path/to/PD-EXP-01/scripts/*.py .
cp /path/to/PD-EXP-01/scripts/*.sh .

Étape 2 — Phase 1 (Claude -p, 120 calls)

python3 run_experiment.py
# Output → /tmp/gate-exp/results-claude/
# Durée estimée : ~30 min (120 appels × ~15s)

Étape 3 — Phase 1.5 (FP verification Claude→GPT)

Les prompts de vérification sont construits automatiquement par run_fp_verify_opencode.sh :

bash run_fp_verify_opencode.sh
# Output → /tmp/gate-exp/results-verify-opencode/
# Durée estimée : ~45 min (18 appels OpenCode)

Étape 4 — Phase 2 (GPT produit, 116 calls OpenCode)

bash run_phase2_opencode.sh
# Output → /tmp/gate-exp/results-opencode/
# Durée estimée : ~3-4h (116 appels OpenCode)

Étape 5 — Phase 2.5 (FP verification GPT→Claude, G3 seulement)

python3 rebuild_p2_verify_g3.py
# Output → /tmp/gate-exp/results-verify-claude-fixed/
# Durée estimée : ~10 min (8 appels Claude -p)

Étape 6 — Analyse des résultats

python3 analyze_fp_results.py      # Phase 1.5
python3 analyze_phase2.py          # Phase 2
python3 analyze_phase25_fixed.py   # Phase 2.5

Résultats (2026-02-18)

Phase Modèle producteur Vérificateur Pattern gagnant Score
1.5 Claude GPT CQCQ 9.56
2.5 GPT Claude QC 9.19

Conclusion : le pattern gagnant dépend du modèle producteur. CQCQ est optimal pour Claude, QC pour GPT.

Voir le livrable complet : ../PD-EXP-01-prompt-patterns.md


Notes pour re-benchmarking

  • Adapter les chemins absolus dans les scripts (ex: CLAUDE_BIN, RESULTS_DIR)
  • Les stories sources peuvent avoir évolué → impacts possibles sur G3/G5/G8
  • Ajouter de nouvelles stories au tableau pour augmenter la significativité statistique
  • Envisager 3 runs/pattern pour contrôler la variance stochastique (température 0.1 mais non 0.0)
  • Timestamp les résultats : phase1-claude-results-YYYYMMDD.json