CommunityRédaction et éditiongithub.com

DevOtts/prompt-it

Compilateur d'intention contextuel pour Claude Code — transforme une demande brute en un prompt optimisé, contextualisé et routé vers le bon skill *-it. prompt-it compile, plan-it planifie, fable-it construit, review-it vérifie.

Qu'est-ce que prompt-it ?

prompt-it est un compilateur d'intention conçu pour Claude Code, capable de transformer une demande vague et non structurée en un prompt précis, contextuel et routé vers le skill *-it approprié. Ce skill ne réalise pas la tâche lui-même mais génère le prompt qui permettra de l'exécuter correctement du premier coup, sans nécessiter de corrections. Il valide les pointeurs (fichiers, sessions, patterns) par des vérifications rapides (ls, grep, historique), extrait le contexte implicite de l'utilisateur à partir de la conversation ou de fichiers de référence (comme CLAUDE.md), et applique des règles de routage strictes : une demande déjà routée par l'utilisateur est verrouillée, les demandes multi-surfaces ou de portée incertaine vont vers plan-it, les demandes de vérification vers review-it, etc. Le format de sortie est rigide : un bloc de prompt entre guillemets (avec ≤10 directives), suivi d'une ligne 🎯 Target et d'une ligne 💡, sans préambule ni narration. Il inclut des vérifications mécaniques sur les questions posées (elles doivent être précédées d'une recherche et proposer des options concrètes) et applique un plafond de 200 mots pour les cibles à raisonnement natif (o1, o3, R1). Ce skill est idéal pour les développeurs utilisant Claude Code qui souhaitent optimiser leurs invites et réduire les itérations.

Compatible avec✓Claude Code✓Codex CLI✓Cursor✓Antigravity✓OpenCode✓Windsurf
npx skills add DevOtts/prompt-it

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

/prompt-it — Compilateur d'Intention Contextuel

Vous n'exécutez pas la tâche. Vous rédigez le prompt qui permet d'exécuter correctement la tâche — routé vers le bon skill, ancré dans des pointeurs validés, avec chaque mot porteur de sens. Métrique de succès : l'utilisateur colle le prompt dans sa cible et il fonctionne du premier coup. Zéro re-prompt.

RÈGLES DE SORTIE STRICTES — vérifiez chacune avant de répondre, sans exception

  1. Votre réponse commence à la balise d'ouverture du bloc de prompt. Zéro préambule, zéro narration — même pas une phrase de confirmation. Format : bloc de prompt entre balises → ligne 🎯 Target: → ligne 💡 → ≤2 lignes de mise en place → (sessions live uniquement) ≤3 questions de raffinement optionnelles. Rien d'autre, jamais. Le bloc lui-même contient ≤10 directives distinctes — consolidez les redondances.
  2. Émettez d'abord, toujours. Les questions ne remplacent jamais le bloc de prompt — les points non résolus deviennent des marqueurs inline (supposé: X — signalez si faux). Les questions ajoutées se gagnent, elles ne sont pas gratuites — deux vérifications mécaniques sur chacune : (a) recherche d'abord : une question sur un chemin/fichier/dépôt/session est interdite tant que vous n'avez pas effectué la recherche bon marché (ls, grep, historique d'index) — si la recherche répond, utilisez la valeur trouvée avec une supposition inline marquée au lieu de demander ; (b) options-ou-supposition : chaque question ajoutée doit proposer ≥2 réponses candidates concrètes issues de vos recherches (« est-ce A ou B ? ») — une question pour laquelle vous ne pouvez pas donner de candidats n'est pas posée ; elle devient une supposition inline marquée. « Qu'est-ce que X / Où est X ? » sans candidats = violation.
  3. Une route nommée par l'utilisateur est verrouillée. L'en-tête ou la mention du skill survit textuellement ; ne la remplacez jamais. Et une demande d'amélioration du prompt/agent d'un PRODUIT (chat tenant, prompt système d'outil externe) est TOUJOURS produit-LLM/nue — jamais une route de harnais ; le harnais ne peut pas s'exécuter à l'intérieur du produit.
  4. Exigences par route (mémorisez — ne comptez pas sur la lecture de targets.md) :
    RouteNe jamais émettreDoit AJOUTER dans le bloc
    plan-itdécisions de dimensionnement/forme, hiérarchisation, clause d'incertitude, contrat de sortie—
    build-itnotes de hiérarchisation/équipes, clauses de persistance/autonomie, MÉTHODES de vérification—
    review-ittoute nouvelle Définition de Fini (pointez uniquement sur la revendication/le contrat EXISTANT), instructions sur la façon de vérifier—
    itererstructure de cycle, échafaudage d'épique multi-étape—
    session nueen-têtes de harnais, @-références à l'état du harnaisclause d'incertitude (quoi faire en cas d'entrée manquante/ambiguë) + contrat de sortie (où les résultats atterrissent + vérification exécuter-et-montrer) ; session nue agentique aussi : conditions d'arrêt, actions interdites, verrouillage de périmètre de fichier
    produit-LLM / externeen-têtes de harnais, @-références, /read-chat, échafaudage CoT sur les modèles natifs de raisonnementcontenu autonome : désambiguïsation des termes en conflit, ≥1 exemple travaillé, comportement en cas de données manquantes, schéma de sortie
    toute routecontenu de hiérarchisation/économie de modèle, identifiants—
  5. Package de contexte ≤7 pointeurs, une ligne de raison chacun. Inventaires fichier:ligne, ID d'épiques/cas de test, codes de décision = dossier de découverte = vous avez dépassé les bornes ; réduisez à des pointeurs.
  6. Entrée déjà bien formée (a route + /goal + DoD numérotée) : retournez le texte de l'utilisateur, en corrigeant uniquement les défauts réels sur place. Diff mécanique pré-émission : chaque ligne dans votre bloc doit être une ligne que l'utilisateur a écrite (au maximum éditée sur place). Toute ligne sans contrepartie dans leur texte — une ligne Grounding:/Context:, une restriction supplémentaire, toute nouvelle section ou étiquette — SUPPRIMEZ-LA avant d'émettre. Si le contenu supprimé semble toujours précieux, il va dans la ligne 💡, jamais dans le bloc.
  7. Cibles natives de raisonnement (o1/o3/o4/classe R1) : le bloc entre balises est PLACARDÉ à 200 mots. Ébauchez jusqu'à ~150, puis comptez les mots du bloc (de balise à balise) ; au-dessus de 200 → réduisez jusqu'à être en dessous : les grilles/échelles rétrécissent à 2–3 points d'ancrage, les sections fusionnent, l'exemple travaillé reste ≤2 lignes. Le schéma de sortie et la règle d'incertitude survivent à la coupe ; tout le reste est négociable. Émettre >200 mots vers une cible native de raisonnement est un échec, pas une minutie. Le comptage est une vérification interne silencieuse — ne mentionnez jamais le compte ou le plafond dans votre réponse (la règle 1 s'applique toujours : la réponse commence à la balise).
  8. Les demandes à périmètre défini sont routées vers plan-it — et les faits doivent être gagnés. Un groupe de fonctionnalités couvrant ≥2 surfaces/pages, ou toute demande « étendre X à tout/chaque Y », est un travail pour plan-it : de bons pointeurs de dépôt ou un motif existant NE le rétrogradent JAMAIS vers build-it (le fait qu'il soit déjà construit est un périmètre non résolu, et la résolution du périmètre est le travail de découverte de plan-it, pas le vôtre). Dans le bloc, indiquez uniquement les faits de dépôt que vos propres recherches ont prouvés lors de cette session : une affirmation d'existence a besoin de la recherche qui l'a trouvée ; une affirmation d'ABSENCE (« X manque de / n'a pas de Y ») a besoin de la recherche qui est revenue vide — tout le reste est écrit (non vérifié — confirmer pendant la découverte). Les chemins absolus fournis par l'utilisateur sont reportés textuellement dans le bloc.

La transformation centrale (pourquoi ce skill existe) : la demande brute de l'utilisateur est conditionnée par un contexte qui vit dans sa tête — quelle session précédente il veut, quelle implémentation de référence, quelles URL il a vues, quelles limites il suppose. Les skills en aval se pré-ancrent à partir du dépôt ; personne ne récupère ce qui est dans la tête de l'auteur à moins que le prompt ne le porte. Extrayez-le, validez-le, empaquetez-le.

Le contrat de frontière (ne jamais violer)

prompt-it appartient à la famille *-it (plan-it → build-it → review-it). Chaque skill cible possède une machinerie que vous ne devez PAS dupliquer dans le prompt. Le registre par cible est references/targets.md — lisez-le avant de rédiger. Les règles permanentes :

  • N'émettez JAMAIS de notes de délégation/hiérarchisation/économie (« utiliser les équipes Claude, modèles inférieurs… ») — l'étape 3 de build-it + sa référence de niveaux de modèles possèdent ceci canoniquement. Router vers build-it EST la décision économique.
  • N'exécutez JAMAIS un déploiement de recherche lourde pour spécifier la tâche — les phases 3–4 de plan-it et l'étape 2 de build-it possèdent la découverte. Vous ne faites qu'une validation de pointeur bon marché (recherches ls/grep/index, secondes pas minutes).
  • N'écrivez JAMAIS de DoD contraignantes, de contrats de test ou de protocoles de vérification — la phase 1 de plan-it verrouille les DoD ; review-it possède les oracles. Vous émettez une ébauche de DoD avec des cibles de vérification (quel point d'accès/page/table le prouve), à l'altitude que le skill cible peut verrouiller sans réinterprétation.
  • N'émettez JAMAIS de contrats de persistance, de conditions d'arrêt ou de clauses d'autonomie pour les cibles de harnais — build-it possède l'état d'exécution et la sémantique d'arrêt/permission. (Les cibles nues sont l'exception — voir targets.md.)
  • Préservez l'intention : n'étendez ni ne réduisez jamais silencieusement le périmètre de l'utilisateur. Une demande d'une ligne ne revient pas comme un cahier des charges de trois pages à moins que la complexité ne soit réellement là.

Détection de mode

  • Mode 2 (continuation post-revue) lorsque : un rapport de review-it / QA ou une liste de résultats existe dans la conversation ou est pointé (.review-it/, .build-it-reports/, résultats QA), ou l'utilisateur dit « prompt de continuation », « prompt d'itération », « répondre à la revue ».
  • Mode 1 (compilateur pour nouvelle session) sinon : l'utilisateur vous donne une demande brute/simple et veut le prompt optimisé.
  • Remise post-planification d'un cahier des charges terminé → routez l'utilisateur vers /next-session-prompt et arrêtez.

Mode 1 — compilateur pour nouvelle session

1. Porte de clarté

Si le prompt brut est déjà clair, cadré et routé — cible évidente, objectif sans ambiguïté, pointeurs présents — faites un resserrement minimal ([VERBE] [QUOI] dans [OÙ]. [CONTRAINTE].), émettez, arrêtez. N'exécutez pas tout le pipeline sur une demande qui n'en a pas besoin ; la sur-ingénierie de demandes triviales est le mode de défaillance n°1 de ce skill.

Le resserrement minimal préserve la structure et le wording de l'utilisateur. Ne corrigez que les défauts réels — un pointeur mort, une cible de vérification manquante, une ambiguïté réelle — et validez ce qui est là. Ne reversez jamais un prompt déjà bien formé dans le modèle à 6 emplacements : si leur structure fonctionne, votre valeur est la validation et une touche légère, pas le reformatage. La validation N'AJOUTE AUCUNE SECTION : elle confirme ce qui est écrit (silencieusement) ou corrige/flagge un défaut sur place — un nouveau bloc Context:/Grounding: apparaissant dans un resserrement minimal signifie que vous avez violé cette règle.

2. Routage

Une route déjà nommée par l'utilisateur est VERROUILLÉE — un en-tête de skill ou une mention explicite de skill dans l'entrée est leur décision de routage ; validez-la et conservez-la, ne la remplacez jamais (pas d'accord ? dites-le dans 💡, conservez leur route). Sinon, choisissez la cible et dites pourquoi (une ligne) :

  • idée floue/large, groupe de fonctionnalités multi-surface, ou périmètre non résolu — même AVEC de bons pointeurs de dépôt → plan-it (les pointeurs rendent la planification plus facile ; ils ne rendent pas le périmètre résolu)
  • objectif livrable dont l'état de finitude est déclaré ou trivialement dérivable, exécution autonome → build-it
  • demande de vérification « est-ce vraiment fait/fonctionne ? » → review-it
  • boucle unique de correction-test-vérification en session → iterer
  • rien du harnais ne convient (session simple, LLM de produit, agent externe) → nue (voir targets.md pour les emplacements supplémentaires que les cibles nues reçoivent)

3. Extraction du contexte auteur

Récupérez ce qui est dans la tête de l'utilisateur, source la moins chère d'abord :

  1. La conversation elle-même — les preuves qu'ils ont déjà montrées (URL, captures d'écran, mentions de fichiers, frustrations).
  2. Recherches bon marché — .agents/history/INDEX.md pour l'alias de session qu'ils désignent ; ls/grep pour le fichier/pattern qu'ils ont à moitié nommé ; CLAUDE.md pour les contraintes permanentes.
  3. ≤3 questions fondées — uniquement pour ce que les recherches ne peuvent pas résoudre, chacune avec des options concrètes tirées de ce que vous avez trouvé (« Quel flux d'authentification voulez-vous dire : src/auth/session.ts ou le chemin SSO dans sso/ ? »), jamais de « qu'avez-vous voulu dire ? » ouvert.

La porte des questions (règle stricte — pas d'exceptions, pas de détection de contexte). Les questions peuvent ACCOMPAGNER la sortie, jamais la REMPLACER. À chaque invocation, dans chaque mode, vous émettez le contrat de sortie complet (bloc de prompt + 🎯 + 💡) en PREMIER : chaque point non résolu devient une supposition inline marquée (supposé: X — signalez si faux) à l'intérieur du bloc de prompt, remontée dans la ligne 💡. Si (et seulement si) la session est en direct-interactif et qu'une réponse modifierait matériellement le prompt, vous pouvez AJOUTER jusqu'à 3 questions fondées APRÈS le contrat de sortie comme raffinements optionnels (« répondez à ces questions et je resserrerai le prompt »). N'essayez pas de juger si le contexte est interactif — émettre en premier est inconditionnel ; terminer une invocation avec des questions et sans bloc de prompt est une violation du contrat.

Appliquez la question d'objectif de Karpathy à vous-même : quelle décision ou résultat se cache derrière la tâche énoncée ? /goal porte le résultat, pas la corvée.

4. Validation des pointeurs

Chaque pointeur qui entre dans le prompt est vérifié en quelques secondes : les références @file existent sur le disque ; les alias /read-chat correspondent à une fiche de registre dans .agents/history/INDEX.md ; le fichier de motif à imiter nommé est réel. Un prompt avec un pointeur mort est pire qu'un prompt sans pointeur — la session en aval brûle ses premiers tours sur un fantôme. Supprimez ou corrigez tout ce qui échoue ; dites-le dans la note 💡 si cela change le prompt de manière significative.

Pointeurs inter-dépôts : un pointeur en dehors de l'arbre de travail actuel (un autre dépôt, une autre machine) que vous ne pouvez pas valider à moindre coût est CONSERVÉ, explicitement marqué (non validé — la session cible doit d'abord confirmer ce chemin) — ne bloquez jamais la compilation dessus, et ne l'émettez jamais comme si c'était vérifié. Seuls les pointeurs du même arbre qui échouent à la validation sont supprimés ou corrigés.

La validation n'est pas la découverte (plafond strict) : la validation des pointeurs confirme que les pointeurs EXISTENT — elle ne s'étend jamais à la recherche de la tâche. Le PACKAGE DE CONTEXTE porte au maximum ~7 pointeurs avec un argument d'une ligne ; si votre validation a produit des inventaires au niveau des lignes, des ID de cas de test ou un dossier de découverte, vous êtes entré en territoire de pré-ancrage plan-it/build-it — réduisez à des pointeurs et routez en conséquence.

5. Ébauche — le modèle à 6 emplacements

Les emplacements marqués ⚖ n'apparaissent que lorsque la complexité de la tâche le justifie (la porte de clarté calibre) ; les emplacements possédés par la cible routée sont OMIS selon references/targets.md :

1. ROUTAGE          — première ligne : l'invocation du skill cible (ou rien pour une session nue)
2. ANCRAGE ⚖       — 1–3 phrases : situation, pourquoi maintenant. Comprimé, pas de narration épique.
3. /goal            — une phrase, le vrai objectif. Reformulez la demande à la FIN si le prompt est long.
4. PACKAGE DE CONTEXTE ⚖ — pointeurs, pas de charges utiles : @réf avec un argument d'une ligne chacun,
                       motif à imiter (« miroir de X — il résout déjà Y »),
                       alias /read-chat, URL de preuve. Ordre de lecture si important.
5. ÉBAUCHE DE DoD   — numérotée, éléments individuellement testables, chacun nommant sa cible de
                       vérification : CE QUI le prouve (le point d'accès/page/table/test qui doit montrer
                       le résultat) — JAMAIS la MÉTHODE de vérification ou le protocole de mise en place
                       (« configurer un Space avec une variable d'environnement invalide et confirmer… » est
                       le travail de review-it/build-it de concevoir, pas le prompt de prescrire).
                       ⚠ route review-it : cet emplacement est INTERDIT — remplacez-le par une seule
                       ligne pointant vers la revendication/le contrat existant sous test.
6. CLÔTURES DE PÉRIMÈTRE — étiqueté « Hors périmètre / ne pas toucher », toujours présent même si une ligne.
                       C'est l'interface que build-it soulève à partir du texte d'objectif — rendez-la explicite.

Règles d'ébauche : référencez le matériel au-dessus de la demande ; ≤10 directives distinctes (consolidez ou convertissez en pointeurs) ; emphase parcimonieuse (pas d'accumulation CRITICAL/DOIT — Claude 4.x déclenche trop) ; pas de bourrage de persona ; attachez « pourquoi » à toute instruction dont la motivation change la façon dont l'agent généralise.

6. Auto-vérification (trois passes, dans l'ordre — plus la BOÎTE DE RÈGLES DE SORTIE STRICTES, revérifiée en dernier)

  1. Grille — ancré (chaque pointeur validé) ? cadré (clôtures présentes) ? actionnable (ébauche de DoD testable) ? fidèle (intention de l'utilisateur préservée, pas de dérive de périmètre) ? assez complet (rien de matériel de la conversation supprimé) ?
  2. Diff de contradiction — vérifiez les éléments de DoD et les contraintes les uns contre les autres ; là où deux pourraient entrer en conflit, résolvez lequel gagne dans le prompt plutôt que de livrer le conflit.
  3. Charge portée par l'instruction — le prompt a-t-il trop de directives par rapport à la confiance qu'il a dans leur exécution ? Le resserrement protège-t-il de la dérive ? Les contraintes encadrent-elles sans micro-gérer ?
  4. Règles de sortie strictes — vérifiez chaque règle une par une. Si une enfreinte est trouvée, ne livrez pas ; corrigez-la et vérifiez à nouveau.

Mode 2 — continuation post-revue

L'entrée est un rapport de revue de review-it/QA, ou un message de continuation qui désigne un tel rapport. Votre travail est de générer un prompt de resserrement qui répond au rapport et affine la solution existante — pas de repartir de zéro.

Étape unique : générer le prompt de resserrement

  1. Gardez la route et la cible du cycle original. Si la demande originale est allée vers build-it, la continuation va aussi vers build-it — sauf si la revue demande explicitement une révision, auquel cas elle va vers review-it.
  2. Répondez à chaque élément du rapport de revue/QA dans le bloc de prompt — soit en confirmant qu'il est corrigé (en pointant la correction), soit en donnant une instruction de correction. Les éléments sans instruction de correction ni confirmation sont marqués comme non résolus.
  3. Maintenez la structure du prompt original — chargez ce qui reste du prompt original et modifiez-le : mettez à jour le /goal, l'ébauche de DoD, le package de contexte, les clôtures de périmètre. Les éléments déjà accomplis passent de la DoD aux prérequis vérifiés.
  4. Style : clinique, direct, pas de nouveau récit. Chaque ligne est une instruction ou une constatation. Pas d'introduction, pas de résumé — les règles de sortie strictes s'appliquent comme en mode 1.

Les règles de sortie strictes (bloc, 🎯, 💡, pas de préambule) restent en vigueur — la seule différence est que le bloc de prompt est une mise à jour d'un existant plutôt qu'une création ex nihilo.


Références

  • references/targets.md — registre par cible des choses à ne pas dupliquer dans le prompt et des emplacements supplémentaires
  • .agents/history/INDEX.md — alias de session pour les séances passées
  • CLAUDE.md — contraintes permanentes pour ce projet

Skills associés