Référence du moteur

Fonctionnement du moteur

Tout ce que contient cette page est généré à partir des données du moteur lui-même (RULES, DIMENSIONS, SEVERITY_PENALTY, STAGE_LABELS) et ne peut donc pas diverger du code.

Pipeline

  1. Analyse syntaxique du prompt parse
  2. Détection de l’intention intent
  3. Analyse de la structure structure
  4. Extraction des exigences requirements
  5. Détection des ambiguïtés ambiguity
  6. Détection du contexte manquant missing_context
  7. Qualité des instructions instruction_quality
  8. Analyse des contraintes constraints
  9. Analyse du format de sortie output_format
  10. Analyse des tokens tokens
  11. Détection des redondances redundancy
  12. Analyse de sécurité et d’injection security
  13. Stratégie d’optimisation strategy
  14. Transformation du prompt transform
  15. Validation validation
  16. Évaluation de la qualité evaluation
  17. Comparaison des tokens et du coût comparison

Les étapes 1 à 12 s’exécutent à chaque analyse. Les étapes 13 à 17 s’exécutent lors d’une optimisation. Seul l’analyse syntaxique peut échouer, et uniquement pour un prompt vide. Les constats de sécurité sont signalés mais n’arrêtent jamais le pipeline.

Catalogue de règles

Chaque règle renvoie à une page de référence avec un exemple qui la déclenche, l’explication du moteur et une version corrigée.

CodeDimensionSe déclenche quand
missing_objectiveComplétudeAucun mot de tâche, phrase impérative ou question.
too_shortPrécisionMoins de 5 mots porteurs de sens.
vague_languageClarté« quelque chose », « des trucs », « etc. », « et ainsi de suite ».
unquantified_sizePrécision« court », « quelques », « détaillé » sans nombre.
unclear_referenceComplétude« ceci » ou « ce qui précède » sans rien d’inclus à quoi se référer.
missing_languagePrécisionCode demandé sans langage ni framework.
hedged_instructionClarté« essaie de », « si possible », « peut-être ».
long_sentenceClartéUne phrase de plus de 40 mots en prose.
negative_only_constraintsClarté3 interdictions ou plus et aucune exigence positive.
contradictory_instructionsCohérenceFormats, longueurs, limites de mots, outils ou langues en conflit.
near_duplicate_instructionCohérenceDeux phrases avec un recouvrement de mots ≥ 80 %.
missing_output_formatSpécification de sortieAucun format de sortie nommé.
missing_length_guidanceSpécification de sortieTâche de contenu ou de résumé sans limite de longueur.
wall_of_textStructurePlus de 120 mots sans sections, listes ni sauts.
duplicate_instructionEfficacitéUne phrase répétée à l’identique.
filler_phrasesEfficacitéPolitesse et intensifs qui ne changent pas la tâche.
prompt_injection_signatureSécuritéSignature pondérée d’injection/jailbreak (critique à partir d’un risque ≥ 60).
sensitive_dataSécuritéIdentifiants (critique) ou données personnelles (avertissement).
undelimited_variableSécurité{{var}} ou ${var} hors de balises, de blocs de code ou de triples guillemets.
destructive_operationSécuritérm -rf /, DROP TABLE, tout supprimer, curl | sh.

Version des signatures d’injection : 2026.11.1. La correspondance de signatures signale un risque, pas une preuve : elle peut manquer des attaques inédites et signaler un texte qui cite une attaque pour en parler.

Notation

  • Pénalité par constat : critique 30, avertissement 10, info 3.
  • Global = 100 − la somme de toutes les pénalités, borné entre 0 et 100 et plafonné à 50 si un constat est critique.
  • Chaque dimension = 100 − les pénalités des constats de cette dimension. La structure ne s’applique qu’aux prompts de 120 mots ou plus.
  • Niveaux : 85+ solide, 70–84 bon, 50–69 à améliorer, moins de 50 faible.

Chaque rapport liste les contrôles exécutés pour chaque dimension et s’ils ont réussi, avec les éléments de preuve.

Transformations et modes

ModeTransformations
conservativeNormaliser les espaces ; supprimer les phrases strictement dupliquées.
balanced+ Supprimer le remplissage et les formules de politesse (please, basically, un I would like you to initial, salutations) ; in order to → to.
structured+ Répartir les phrases en sections Task, Context, Requirements, Output format et Input ; entourer les variables de modèle de balises.

Les blocs de code, le code en ligne, le texte cité, les URL, les blocs balisés en XML et les variables de modèle sont protégés : ils sont masqués avant toute transformation et restitués à l’octet près. Aucune transformation n’ajoute de contenu, hormis les titres de section et les délimiteurs de variables, tous deux signalés comme des modifications.

Vérification des candidats

Chaque mode produit un candidat. Un candidat n’est éligible que si :

  • chaque passage protégé est toujours présent ;
  • chaque phrase d’origine est toujours présente (après la même normalisation que celle des transformations) ;
  • chaque exigence extraite est toujours présente ;
  • il n’introduit aucun nouvel avertissement ni constat critique ;
  • pour les modes conservative et balanced, il n’a pas plus de tokens que l’original.

Le moteur choisit ensuite selon l’objectif : tokens (le moins), quality (la note la plus élevée) ou balanced (la note la plus élevée dans la limite de 115 % des tokens de l’original). L’original est toujours un candidat et l’emporte quand rien n’est meilleur.

Restructuration

restructurePrompt transforme une demande rédigée sans structure en prompt d’ingénierie en sections. C’est une opération différente de l’optimisation : optimiser retire des mots et prouve que rien n’a été perdu ; restructurer réorganise et, pour les tâches logicielles, ajoute un plan de test.

  1. Nettoyer. La même suppression du remplissage et des doublons qu’en mode balanced.
  2. Découper. Les phrases à rallonge sont découpées en propositions aux conjonctions qui ouvrent une nouvelle instruction (fix X and make Y work and don't break Z). Les paires de verbes et les listes de noms sont laissées telles quelles.
  3. Trier. Chaque proposition va dans Role, Objective, Context, Requirements, Constraints ou Expected output. Le code, les citations, les URL et les variables ne sont jamais modifiés.
  4. Ajouter la trame. Pour les tâches logicielles uniquement, des conseils fixes sont ajoutés selon l’intention détectée (débogage, nouveau code, refactoring, tests, revue, configuration, explication) et le sujet (authentification, API, base de données, interface, performances, paiements) : cas limites, tests, critères d’acceptation et format de sortie par défaut.

Chaque ligne du résultat est étiquetée prompt (la vôtre), engine (conseil ajouté) ou codebase (informations du projet fournies par l’extension VS Code), pour qu’une interface puisse montrer exactement ce qui a été ajouté. Les sections vides sont omises : une demande claire d’une ligne est renvoyée telle quelle, et un prompt qui n’est pas du code ne reçoit pas de plan de test. Les conseils que vous avez déjà donnés ne sont pas répétés, et votre propre format de sortie remplace celui par défaut. Passez scaffold: false pour réorganiser sans rien ajouter.

Les conseils forment une table fixe dans le code source du moteur, et non une sortie de modèle : la même demande produit donc toujours le même prompt. Les titres de section et les lignes de conseil sont en anglais.

Tokens et coût

Les modèles OpenAI sont comptés avec o200k_base (ou cl100k_base pour GPT-4/3.5) et indiqués comme exacts. Les autres fournisseurs utilisent o200k_base comme approximation et sont indiqués comme approximatifs. Sans tokeniseur chargé, les comptages reviennent à caractères ÷ 4, indiqués comme heuristiques. Les coûts reposent sur une table de prix de référence datée. Voir le catalogue de modèles.