Communitygithub.com

Prouve-le / Prove It

Utilisez lorsque l'utilisateur exécute /prove-it ou dit 'prouve-le', 'prouve les changements', 'montre-moi dans le navigateur', ou demande de prouver un changement UI ou API. Ne l'utilisez pas simplement parce que l'agent s'apprête à dire terminé, pour du travail de types uniquement, ou pour de la documentation sans comportement à prouver.

Qu'est-ce que Prove It ?

Prouve-le est une compétence conçue pour les agents IA (comme Claude Code, Cursor, Codex) qui force une validation rigoureuse des modifications UI et API avant de les déclarer fonctionnelles. Elle ne se déclenche pas automatiquement et nécessite une demande explicite de l'utilisateur (commande /prove-it ou phrase comme 'prouve-le'). La compétence classe d'abord la surface à prouver (UI, serveur/API, ou les deux), puis applique des procédures strictes : l'UI est testée dans le navigateur via des actions réelles (clic, saisie, soumission), le serveur/API nécessite de demander à l'utilisateur comment prouver (via un exemple existant, curl, ou un app test). Elle interdit les affirmations non vérifiées, les captures d'écran uniques sans interaction, les nouvelles dépendances non approuvées, et demande d'arrêter tout serveur de développement à la fin. Un rapport optionnel peut être généré dans .agent/scratch/prove-it.md, mais la preuve par défaut reste le chat.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AlemTuzlak/skills/tree/HEAD/skills/prove-it

Demander à votre IA préférée

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

Documentation

Prouve-le

Prouve le changement comme un humain l'utiliserait. Ne prétends pas que ça marche sans cette preuve.

Cette compétence ne se charge pas automatiquement sur « terminé ». L'utilisateur doit la demander. Elle ne charge pas d'autres compétences.

Quand l'utiliser

Charge-la lorsque l'utilisateur :

  • exécute /prove-it
  • dit "prouve-le", "prouve les changements", "montre-moi dans le navigateur", ou une idée similaire (même dans le premier message)

Ignore si l'utilisateur ne l'a pas demandé. Ignore le travail de types uniquement, les commentaires, les fichiers lock, la documentation sans comportement.

Verrous stricts

  1. L'utilisateur a demandé. S'il n'a pas demandé de prouver, cette compétence ne s'exécute pas.
  2. Ne dis pas que ça marche, que c'est terminé ou réparé à moins que cette compétence ne l'ait réellement prouvé. Ignorer signifie non prouvé.
  3. Une capture d'écran d'un seul écran n'est pas une preuve. Clique, tape, soumets, navigue.
  4. Pas de nouveau package, dépendance, exemple d'application ou exécuteur de navigateur à moins que l'utilisateur ait choisi cette option et dit oui.
  5. Arrête tout serveur que cette compétence a démarré avant que la compétence ne se termine. Ne laisse pas dev / preview en cours.

UI vs serveur

  • UI (page, composant, route, formulaire, état visible) : prouve dans le navigateur.
  • Serveur / API / bibliothèque sans écran : demande comment prouver. Ne choisis pas en silence.
  • Les deux : navigue l'UI, et demande comment prouver la partie serveur.

Procédures

Procédure 1 : Classifier

  1. Liste les surfaces : UI, serveur/API, ou les deux.
  2. UI → Procédure 2.
  3. Serveur/API → Procédure 3.
  4. Les deux → Procédure 2, puis Procédure 3 pour l'API.

Procédure 2 : Navigateur (UI)

  1. Si l'application n'est pas en cours d'exécution, démarre uniquement une commande existante (dev, preview, le démarrage documenté du dépôt). Si aucune n'existe, dis que l'UI ne peut pas être prouvée. Propose d'ignorer, ou que l'utilisateur démarre l'application.
  2. Utilise-la comme un utilisateur :
    • clique, tape, soumets, navigue
    • chaque route/page qui partage cet état
    • UI vide et d'erreur si ce changement en a
    • bureau et une fenêtre étroite si la mise en page ou le CSS a changé
  3. Recherche les cassures, pas seulement le chemin heureux.
  4. Dans le chat, dis ce que tu as fait et ce que tu as vu. Ne dis pas « ça a l'air bien » sans étapes.
  5. Arrête le processus de l'étape 1 si cette compétence l'a démarré.
  6. Procédure 4.

Procédure 3 : Demander (serveur / API)

  1. Arrête-toi. Montre 2-3 options. Mets une proposition raisonnable en premier. Inclut toujours ignorer.
    • exemple / playground / démo existant
    • application exemple qui utilise la nouvelle API (seulement s'ils confirment l'emplacement + tout nouveau package/dépendance)
    • curl ou un petit script contre un serveur en cours d'exécution
    • ignorer
  2. Attends. Ne construis ni n'exécute rien jusqu'à ce qu'ils choisissent.
  3. Si ignorer : dis non prouvé. Ne dis pas que ça marche. Arrête-toi (pas de Procédure 4).
  4. Si playground existant : exécute-le, puis prouve dans le navigateur s'il a une UI, ou montre la sortie de la commande si c'est un script.
  5. Si application exemple : demande où. Préfère un exemple existant. N'ajoute pas de package ou dépendance à moins qu'ils aient dit oui. Puis exécute-la et prouve.
  6. Si curl/script : exécute-le. Cite le code de sortie et la partie de la sortie qui prouve l'affirmation.
  7. Procédure 4.

Procédure 4 : Rapport optionnel

  1. Après une vraie preuve, demande : écrire un rapport de captures d'écran ? Par défaut non.
  2. Si non : arrête-toi. Le chat contient déjà les preuves.
  3. Si oui : écris .agent/scratch/prove-it.md (écrase). Ajoute .agent/scratch/ à .gitignore s'il manque (comme les autres fichiers scratch). Inclus ce qui a été cliqué et les captures. Ouvre le fichier. Ne le valide pas.
  4. Ignorer la preuve → pas de rapport.

Procédure 5 : Arrêter

Après la preuve ou l'ignorance, arrête-toi. Ne commence pas de travail non lié à partir de cette compétence.

Arbre de décision

  • L'utilisateur n'a pas demandé à prouver → cette compétence ne s'applique pas.
  • UI → Procédure 2 → 4 → 5.
  • Serveur/API → Procédure 3 → 4 → 5 (ignorer s'arrête à 3).
  • Les deux → 2 puis 3, puis 4 → 5.
  • Pas de commande de démarrage et application non en cours → dis que l'UI ne peut pas être prouvée. Ignorer ou l'utilisateur la démarre.
  • L'utilisateur dit ignorer → non prouvé. Aucune affirmation de succès.

Signaux d'alerte

SignalCe que ça signifieFais plutôt ça
Dire "terminé" parce que les tests réussissentCette compétence n'a pas été demandée, ou la preuve a été ignoréeAffirme seulement "prouvé" après la Procédure 2 ou 3.
Une capture d'écran, aucun clicPas un parcours utilisateurProcédure 2 étape 2.
Construire examples/foo avant qu'ils choisissentApplication non demandéeProcédure 3. Attends.
Ajouter Playwright / un nouveau serveurNouvelle dépendanceCommande de démarrage existante uniquement.
Laisser pnpm dev en coursObservateur laissé alluméVerrou strict 5.
"Ignorer, mais ça marche"Ignorer transformé en affirmationDis non prouvé.
Fichier de rapport dans docs/Documentation produit.agent/scratch/prove-it.md.
Ouvrir le rapport quand ils ont dit nonFichier non demandéProcédure 4 par défaut non.
Prouver seulement la page pour une nouvelle API publiquePartie serveur ignorée en silenceProcédure 3 pour l'API.

Gestion d'erreurs

  • Pas d'outils navigateur : dis que l'UI ne peut pas être prouvée ici. Propose d'ignorer, ou qu'ils cliquent pendant que tu attends sur une URL. Ne simule pas une capture d'écran.
  • La commande de démarrage échoue : cite l'erreur. Ne dis pas que l'UI fonctionne. Propose d'ignorer ou une correction, puis prouve à nouveau.
  • La preuve échoue (le clic fait la mauvaise action, curl n'est pas 200) : dis non prouvé. Nomme ce qui a échoué. Ne dis pas que c'est terminé.
  • Ils choisissent une application exemple puis refusent un nouveau package : utilise curl, un exemple existant, ou ignorer. N'ajoute pas le package quand même.
  • L'écriture du fichier scratch échoue : garde la preuve dans le chat. Dis que le fichier de rapport n'a pas été écrit.

Ne vois rien d'autre. Le chat est la preuve par défaut. Le fichier markdown est optionnel.

Individual skills in this repo

This repo contains 14 individual skills — each has its own dedicated page.

AlemTuzlak/skills

Use when the user wants to write a blog post about a feature, product change, PR, git diff, or any technical topic - accepts marketing briefs, PRs, git refs, codebase paths, or freeform descriptions as input

AlemTuzlak/skills

Use when the user wants to generate a changelog, release notes, or document what changed between versions, tags, or PRs

AlemTuzlak/skills

Use when writing, editing, or organizing documentation, when planning what docs a feature needs, and whenever planning or implementing a new feature or change in a repo (docs ship with the code). Also use when tempted to write docs without showing the discovered readers to the user, without asking for tone, or without loading simple-english and i-have-adhd. Triggers on "write docs for X", "document this feature", "add a guide", "update the docs", "reorganize the docs", "plan feature X", "implement X", or /docs.

AlemTuzlak/skills

Use when a bug is in play: a test fails, CI is red, an API returns the wrong result, a stack trace appears, or the user says it is broken or fix this. Don't use for a new feature with no failure, for types-only work, or for docs.

AlemTuzlak/skills

Use when the user invokes /i-have-adhd, says they have ADHD, or asks for ADHD-friendly output. Also used as a required writing filter by the docs skill. Don't use for marketing copy or after the user says "stop adhd mode" or "normal mode".

AlemTuzlak/skills

Use when a settled change must be turned into an ordered stack of small blocks before anyone implements. Don't use for unsettled intent, typos, comments, formatting, docs-only work, or writing the implementation itself.

AlemTuzlak/skills

Use when the user wants to write a product update email, feature announcement newsletter, or digest email for users or subscribers

AlemTuzlak/skills

Use when the user wants to turn a raw talking-head / screen-share recording into a finished, edited, annotated video plus a full content package. Removes silences, flags mistakes for the user to cut, transcribes, adds transcript-synced overlays (code, on-screen code highlights, word highlights, lists, comparisons, diagrams, section labels, punch-in zooms), renders with original audio, then generates blog/socials/YouTube content. Triggers on "produce a video", "edit my video", "annotate my recording", "/produce-video".

AlemTuzlak/skills

Use when the user wants to write, draft, or author an RFC (Request for Comments) / technical design doc for a feature, change, or architectural decision. Interactively interviews the user, grounds the proposal in the actual codebase, presents 2-3 concrete API/code-snippet approaches to choose from, then writes a review-ready RFC. Triggers on "write an RFC", "draft an RFC", "RFC for X", "design doc for X", or /rfc.

AlemTuzlak/skills

Use when the user wants to deeply learn a new topic from scratch. Runs a pre-interview (current knowledge, end-goal proficiency, depth, practice load, background, scope), researches online (articles, niche-influencer blogs, canonical docs, subtopic landscape), then produces a structured markdown course with mandatory visual diagrams, evidence-based learning-science features (retrieval practice, spaced callbacks, worked-example fading, concept ledger, jargon gate, analogy hygiene), and a self-contained interactive HTML mini-course. Triggers on /teach-me, "teach me about X", "I want to learn X", "deep dive on X", "create a course on X", "study X with me".

AlemTuzlak/skills

Use when the change intent is already settled and the agent must map what a behavior change touches before an implementation plan or any code. Use for new features, bug fixes, and refactors that move a boundary. Don't use for typos, comments, formatting, lockfile-only diffs, docs with no code, or while the user is still deciding what they want.

AlemTuzlak/skills

Use when the user wants to transcribe a video or audio file to text with word-level timestamps — spins up a self-contained local Whisper (whisper.cpp) Docker service bundled in this skill and returns transcript.txt, transcript.srt, and word-level transcript.words.json. Also used as a building block by /produce-video. Triggers on "transcribe this video", "get a transcript", "transcribe-video".

AlemTuzlak/skills

Use when the user wants to write a video script for a product demo, feature walkthrough, launch video, or social media video about a feature or product change

AlemTuzlak/skills

Use when the user wants YouTube metadata for a video — a click-worthy title, an SEO/above-the-fold description, tags, and timestamped chapters. Accepts a transcript (ideally timestamped SRT), a topic, a PR, or a freeform description. Used standalone and by /produce-video. Triggers on "youtube title", "youtube description", "youtube chapters", "youtube tags", "youtube metadata", "youtube-copy".

Skills associés