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
- L'utilisateur a demandé. S'il n'a pas demandé de prouver, cette compétence ne s'exécute pas.
- 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é.
- Une capture d'écran d'un seul écran n'est pas une preuve. Clique, tape, soumets, navigue.
- 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.
- Arrête tout serveur que cette compétence a démarré avant que la compétence ne se termine. Ne laisse pas
dev/previewen 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
- Liste les surfaces : UI, serveur/API, ou les deux.
- UI → Procédure 2.
- Serveur/API → Procédure 3.
- Les deux → Procédure 2, puis Procédure 3 pour l'API.
Procédure 2 : Navigateur (UI)
- 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. - 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é
- Recherche les cassures, pas seulement le chemin heureux.
- 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.
- Arrête le processus de l'étape 1 si cette compétence l'a démarré.
- Procédure 4.
Procédure 3 : Demander (serveur / API)
- 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
- Attends. Ne construis ni n'exécute rien jusqu'à ce qu'ils choisissent.
- Si ignorer : dis non prouvé. Ne dis pas que ça marche. Arrête-toi (pas de Procédure 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.
- 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.
- Si curl/script : exécute-le. Cite le code de sortie et la partie de la sortie qui prouve l'affirmation.
- Procédure 4.
Procédure 4 : Rapport optionnel
- Après une vraie preuve, demande : écrire un rapport de captures d'écran ? Par défaut non.
- Si non : arrête-toi. Le chat contient déjà les preuves.
- Si oui : écris
.agent/scratch/prove-it.md(écrase). Ajoute.agent/scratch/à.gitignores'il manque (comme les autres fichiers scratch). Inclus ce qui a été cliqué et les captures. Ouvre le fichier. Ne le valide pas. - 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
| Signal | Ce que ça signifie | Fais plutôt ça |
|---|---|---|
| Dire "terminé" parce que les tests réussissent | Cette compétence n'a pas été demandée, ou la preuve a été ignorée | Affirme seulement "prouvé" après la Procédure 2 ou 3. |
| Une capture d'écran, aucun clic | Pas un parcours utilisateur | Procédure 2 étape 2. |
Construire examples/foo avant qu'ils choisissent | Application non demandée | Procédure 3. Attends. |
| Ajouter Playwright / un nouveau serveur | Nouvelle dépendance | Commande de démarrage existante uniquement. |
Laisser pnpm dev en cours | Observateur laissé allumé | Verrou strict 5. |
| "Ignorer, mais ça marche" | Ignorer transformé en affirmation | Dis non prouvé. |
Fichier de rapport dans docs/ | Documentation produit | .agent/scratch/prove-it.md. |
| Ouvrir le rapport quand ils ont dit non | Fichier non demandé | Procédure 4 par défaut non. |
| Prouver seulement la page pour une nouvelle API publique | Partie serveur ignorée en silence | Procé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.