Teste avec un vrai utilisateur et livre ta v1
Rejoins-le pour progresser et valider tes étapes.
Se connecter pour rejoindreBRIEFING MISSION
Pendant deux semaines, tu as senti que ton app marchait. « Senti », ce n'est pas une preuve, c'est un espoir. Cette mission transforme ton ressenti en oracle : un petit programme qui répond OUI ou NON à la question « est-ce que mon app tient ? ». Tu arrêtes de tout retester à la main à chaque changement · une commande, un verdict. Le jour où tu casses quelque chose sans le voir, c'est le script rouge qui te le dit, pas un utilisateur fâché trois jours plus tard. C'est le passage de « ça marche chez moi » à « voilà la preuve, vérifie toi-même », exactement la discipline de La preuve comme oracle : on a fini quand la preuve existe, jamais avant. Un système qui ne tourne que dans ta tête et sur ta machine n'est pas un système, c'est une chance qui n'a pas encore tourné.
OBJECTIFS MISSION
Consigne et checklist
README.md « From scratch » qui permet à un inconnu de relancer ton app depuis zéro sur une machine vierge.La mission sera considérée comme réussie si…
- Un script de conformance vérifie tes 3 à 4 preuves clés (la page répond, un aller-retour de donnée, une action protégée qui refuse sans login), une assertion par preuve, et sort en code 0 quand tout passe.
- Au moins une preuve vérifie le CONTENU et pas seulement le statut HTTP (la donnée relue est bien celle qui a été créée, pas juste « 200 reçu »).
- Tu prouves que le test mord : en cassant une preuve exprès, le check vire au ROUGE avec un code de sortie 1, puis revient au vert une fois ton code remis.
- Un
README.mdcontient une section « From scratch » autonome : prérequis, variables d'environnement à remplir dans.env, commandes dans l'ordre, URL où l'app répond, et comment lancer le script de conformance. - Tu as fait le test ultime de reproductibilité : cloner ton propre repo dans un dossier vide, suivre ton README à la lettre sans improviser, et finir sur le script de conformance au vert.
Pour aller plus loin
- Transforme ta conformance en garde-fou permanent : un seul fichier qui tourne avant chaque déploiement et bloque la mise en ligne s'il est rouge. C'est le pont direct vers la mise en production de la S3.
- Ajoute une preuve « négative » qui te tient à cœur, au-delà des quatre de base : un mauvais payload renvoie bien une erreur 400, une route inconnue renvoie 404. Un oracle qui sait dire NON au bon moment vaut de l'or.
ETAPES
La mission est découpée en étapes progressives :
- 1Étape 1 — Liste tes preuves clés (l'inventaire d'abord). Avant d'écrire une seule ligne de test, fais l'inventaire de ce qui DOIT marcher dans ton app. Pas tout · les 3 ou 4 vérités qui, si elles tombent, rendent ton app inutile. Pour une app web typique : la page d'accueil répond (statut HTTP 200) ; une donnée fait l'aller-retour complet (je crée, je relis, je la retrouve avec le bon contenu) ; l'action protégée refuse sans login (401 ou 403, jamais 200) ; un état vide s'affiche proprement (« 0 item » plutôt qu'un écran blanc qui plante). Écris-les noir sur blanc, ce sont tes futures assertions.
- 2Étape 2 — Demande le script de conformance à Claude Code. Donne ce prompt, en remplaçant la liste par TES preuves de l'étape 1 :
Écris un script de conformance `conformance.py` qui démarre (ou suppose démarrée) mon app, puis vérifie ces preuves clés, une assertion par preuve :
1. GET / renvoie 200.
2. Aller-retour donnée : POST sur /items crée une row, GET /items la retrouve (vérifie le CONTENU, pas juste le statut).
3. L'action protégée /admin refuse sans session : statut 401 ou 403, JAMAIS 200.
4. État vide : sur une base neuve, GET /items renvoie une liste vide sans erreur.
Chaque check affiche OK <nom> en vert ou FAIL <nom> en rouge, avec le détail. Le script sort en code 0 si tout passe, code 1 si un seul check échoue. Une assertion qui passe toujours (ex : assert True) est INTERDITE : chaque check doit pouvoir échouer pour de vrai. N'invente pas d'endpoint, utilise les vrais de mon app. Installe ce qu'il faut avec uv add.Si ton app n'est pas en Python, dis-le à Claude (« mon app est en Node, utilise un test runner type vitest » ou « écris-moi un script bash avec curl »). Le langage importe peu, c'est le verdict OUI/NON qui compte. Relis ce que Claude te rend AVANT de l'exécuter : vérifie qu'il tape sur tes vrais endpoints et qu'aucun check n'est un assert True déguisé.
- 1Étape 3 — Lance le script et regarde le verdict.
uv run conformance.pyTu veux voir une sortie de ce genre, et le script doit sortir en code 0 :
OK page d'accueil répond (200)
OK aller-retour donnée (créée puis relue)
OK action protégée refuse sans login (403)
OK état vide propre (0 item)
4/4 · tout est vertSi un check est rouge dès maintenant, tant mieux : tu viens de découvrir un vrai trou dans ton app avant un utilisateur. Corrige l'app (pas le test), relance, et reviens au vert.
- 1Étape 4 — Casse une preuve exprès (prouve que le test teste). Un test qui ne peut jamais échouer ne prouve rien. Vérifie que le tien mord. Commente la vérification du login dans ton app, relance le script, et regarde le check « action protégée » passer au ROUGE avec un code de sortie 1.
uv run conformance.py
echo "Exit code: $?"Tu dois voir le FAIL et un Exit code: 1. Remets ensuite ton code en place, relance, retour au vert et Exit code: 0. Un seul changement à la fois, et tu remets le code en place avant de continuer. Maintenant tu as confiance dans ton oracle : tu l'as vu dire NON.
- 1Étape 5 — Écris le README « From scratch ». C'est la moitié de la remise, pas un bonus. Le script prouve que ça marche chez toi ; le README prouve que ça peut marcher ailleurs. Donne ce prompt à Claude :
Enrichis (ou crée) le README.md de mon projet avec une section « From scratch » qui permet à quelqu'un qui n'a jamais vu ce repo de tout relancer depuis le clone, sur une machine vierge. Mentionne : les prérequis (versions, outils à installer), la liste EXACTE des variables d'environnement à remplir dans .env (sans les valeurs secrètes), les commandes dans l'ordre, l'URL où l'app répond, et comment lancer le script de conformance pour vérifier que tout tient. Écris des commandes littérales, copiables. Ne suppose RIEN d'installé sur la machine d'arrivée.- 1Étape 6 — Fais le test ultime de reproductibilité. Comme dans La preuve comme oracle : tu clones ton propre projet dans un dossier vide, tu suis ton README à la lettre sans rien improviser, et tu finis sur le script de conformance au vert.
cd /tmp
git clone <url-de-ton-repo> test-from-scratch
cd test-from-scratch
# ... tu suis ton README, étape par étape, sans rien improviserLa règle d'or : si une commande n'est pas dans ton README, tu n'as pas le droit de la taper. Chaque écart que tu rencontres (une commande manquante, une variable oubliée, un outil pas listé) n'est pas un échec, c'est le test qui fait son travail. Tu retournes dans le README, tu ajoutes la marche manquante, et tu recommences le clone à froid jusqu'à ce que ça passe sans réfléchir. Note chaque raté dans ton JOURNAL : ce sont les trous que seul un clone à froid révèle.
La suite est réservée aux membres du parcours
Rejoins 3 semaines pour créer une App en partant de 0 pour débloquer la suite, les templates et suivre ta progression.