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
- Analyse syntaxique du prompt
parse - Détection de l’intention
intent - Analyse de la structure
structure - Extraction des exigences
requirements - Détection des ambiguïtés
ambiguity - Détection du contexte manquant
missing_context - Qualité des instructions
instruction_quality - Analyse des contraintes
constraints - Analyse du format de sortie
output_format - Analyse des tokens
tokens - Détection des redondances
redundancy - Analyse de sécurité et d’injection
security - Stratégie d’optimisation
strategy - Transformation du prompt
transform - Validation
validation - Évaluation de la qualité
evaluation - 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.
| Code | Dimension | Se déclenche quand |
|---|---|---|
missing_objective | Complétude | Aucun mot de tâche, phrase impérative ou question. |
too_short | Précision | Moins de 5 mots porteurs de sens. |
vague_language | Clarté | « quelque chose », « des trucs », « etc. », « et ainsi de suite ». |
unquantified_size | Précision | « court », « quelques », « détaillé » sans nombre. |
unclear_reference | Complétude | « ceci » ou « ce qui précède » sans rien d’inclus à quoi se référer. |
missing_language | Précision | Code demandé sans langage ni framework. |
hedged_instruction | Clarté | « essaie de », « si possible », « peut-être ». |
long_sentence | Clarté | Une phrase de plus de 40 mots en prose. |
negative_only_constraints | Clarté | 3 interdictions ou plus et aucune exigence positive. |
contradictory_instructions | Cohérence | Formats, longueurs, limites de mots, outils ou langues en conflit. |
near_duplicate_instruction | Cohérence | Deux phrases avec un recouvrement de mots ≥ 80 %. |
missing_output_format | Spécification de sortie | Aucun format de sortie nommé. |
missing_length_guidance | Spécification de sortie | Tâche de contenu ou de résumé sans limite de longueur. |
wall_of_text | Structure | Plus de 120 mots sans sections, listes ni sauts. |
duplicate_instruction | Efficacité | Une phrase répétée à l’identique. |
filler_phrases | Efficacité | Politesse et intensifs qui ne changent pas la tâche. |
prompt_injection_signature | Sécurité | Signature pondérée d’injection/jailbreak (critique à partir d’un risque ≥ 60). |
sensitive_data | Sécurité | Identifiants (critique) ou données personnelles (avertissement). |
undelimited_variable | Sécurité | {{var}} ou ${var} hors de balises, de blocs de code ou de triples guillemets. |
destructive_operation | Sé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
| Mode | Transformations |
|---|---|
| conservative | Normaliser 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.
- Nettoyer. La même suppression du remplissage et des doublons qu’en mode balanced.
- 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.
- 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.
- 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.