Atelier Claude Code · E00 → E14 · projet Jàng

Rendu de l'atelier

atelier complet, refait avec Jàng

Chaque épisode a été exécuté avec le vrai Claude Code (version 2.1.285), avec les prompts de l'atelier adaptés à Jàng et le contenu réel de votre dépôt : HMW, persona Aminata, maquette « cahier corrigé », base Dify. Le projet fil rouge (E07 à E10 et E14) est l'app web Jàng, à la place de PromptLens.

15/15 épisodes faits47 sessions Claude Code4 défis faitsCoût API estimé des sessions : ≈ 19 $
Jàng

Le projet Jàng : application et vidéos

E00

Vérifier l'installation

Demandé : versions, mise à jour, pas de clé API, compte Pro, dossier claude-lab.

$ claude --version
2.1.285 (Claude Code)
$ node --version
v22.22.2
$ npm view @anthropic-ai/claude-code version
2.1.285
$ [ -n "$ANTHROPIC_API_KEY" ] && echo "CLE API PRESENTE" || echo "pas de cle API"
pas de cle API
/status dans Claude Code sur le Mac de Cheikh
/status sur le Mac de Cheikh : compte Claude Pro (champs personnels masqués).
Résultat de verif-mac.sh
Vérification de l'installation sur le Mac de Cheikh.
E01

Premier lancement et premier prompt

Demandé : dossier 01-hello avec git, modèle opusplan, une carte de visite web en un seul fichier, sans rien inventer.

Carte de visite Jàng, thème clair
La carte après le premier prompt.
Carte finale avec bouton WhatsApp et bouton de thème
Version finale : bouton WhatsApp (défi E01) et bouton de thème (défi E02).
/usage dans Claude Code
/usage : quota du compte Pro et ce qui l'a consommé.
E02

Modes de permission et retour arrière

Demandé : commit, plan sans modification, précision, application validée, puis retour arrière et git status propre.

Carte avec thème sombre avant le retour arrière
Le changement appliqué, juste avant le retour arrière.
$ git status --short
 M jang-card.html
# retour arrière
$ git restore jang-card.html
$ git status
On branch main
nothing to commit, working tree clean

$ git log --oneline
79b5bc5 bouton WhatsApp (defi E01)
506f25e theme clair/sombre (defi E02)
bbc16e6 carte Jang

En mode non interactif, Maj+Tab et Échap Échap n'existent pas. Leurs équivalents ont été utilisés : --permission-mode plan, puis acceptEdits, et git restore. Sur ton PC, refais une fois Échap Échap pour voir le menu.

E03

Landing page sans skill, puis avec frontend-design

Demandé : même page deux fois, d'abord sans skill, puis avec le plugin officiel frontend-design, et comparer.

Landing V1 sans skill
V1 sans skill : propre mais générique.
Landing V2 avec frontend-design
V2 avec frontend-design : cahier Seyès, calcul entouré au stylo rouge, bulle WhatsApp. Voir la V2 en ligne · la V1.
Résultat du quiz sur mobile
Quiz V2 à 360 px : Physique → Dipôle RC → unités → JNG-PC-10.

Direction artistique expliquée par Claude

Toute la page est une feuille Seyès dessinée en CSS avec une marge rouge ; bleu bic pour l'élève, rouge correcteur pour les erreurs, vert WhatsApp pour la conversation.

Résumé de sa réponse en 5 lignes (typographie, palette, mise en page, animation, détail signature), qui est dans _journal/E03-2-v2-frontend-design.txt.

E04

Les commandes utiles et CLAUDE.md

Demandé : /init, CLAUDE.md réduit à moins de 60 lignes, /diff, /compact, /clear, mémoire utilisateur.

/init est désactivé dans mon environnement : j'ai envoyé sa consigne sous forme de prompt. Chez toi, tape simplement /init.

E05

Ta voix de marque en une commande : /jang-brand

Demandé : une skill personnelle avec l'identité de la marque, puis un email, un post LinkedIn et un flyer cohérents.

Flyer A4 appel aux professeurs
Flyer A4 final.
Email de suivi au professeur
Email HTML aux couleurs de la marque.
E06

Plugins : analyse des concurrents, puis plan marketing

Demandé : plugins playwright et marketing en local, visite de sites concurrents avec captures, rapport, plan marketing, puis désactivation du plugin marketing.

Haut du plan marketing
Haut du plan marketing : chaque section renvoie à ses preuves.
E07

Le CLAUDE.md du projet fil rouge : l'app web Jàng

Demandé : nouveau dépôt, branche phase-1, CLAUDE.md planifié en mode plan puis écrit (moins de 120 lignes), /context, commit.

## Never
- Never commit `.env*` or `functions/.secret.local`.
- Never call Dify from the client. Never expose `DIFY_API_KEY` in the bundle, logs or responses.
- Never invent exercises, reference answers, users or figures. Use real data or a clearly
  marked placeholder.
- Never change an exercise ID without updating the knowledge base in the same change.
- Never touch Firebase rules (Firestore, Storage, Hosting headers for access) without asking.
  Never leave test-mode rules.
E08

Protéger les clés, puis construire l'app

Demandé : .gitignore, .env.example, règles deny et test du refus, puis la phase 1 de l'app en une passe planifiée, et le défi d'export.

Onglet Exercices de l'app à 360 px
Onglet Exercices, à 360 px.
Onglet Mon carnet après rechargement
Mon carnet : « Réussi » et « À revoir » toujours là après rechargement.
E09

L'analyse IA, sans jamais exposer la clé

Demandé : ajouter l'IA en gardant la clé côté serveur. L'atelier utilise Gemini avec Firebase. Jàng a déjà un vrai moteur, le workflow Dify « jang » de la séance S5.

Correction dans l'app
Correction dans l'app. Le texte vient du faux Dify utilisé pour le test.
E10

La boucle d'amélioration Ralph

Demandé : sur une branche jetable, laisser Claude améliorer l'app en 2 tours automatiques (critique, 3 corrections, vérification, note).

Avant et après la boucle Ralph
Avant (à gauche) et après (à droite) les 2 tours.
E11

Une skill externe et un petit agent Python

Demandé : installer une skill externe, créer un environnement Python isolé, puis un agent sans mémoire et le même avec mémoire.

Sorties du notebook : agent sans mémoire puis avec mémoire
Sorties réelles du notebook : la même question « Et le deuxième ? » échoue sans mémoire et réussit avec l'historique de session.
E12

L'agent personnel : SOUL.md, playbook et mémoire

Demandé : la structure Personal OS (CLAUDE.md, SOUL.md, vault, 4 skills), l'interview pour SOUL.md, puis /ingest et le graphe dans Obsidian.

Graphe des liens entre les pages du vault personal-os
Graphe du vault (10 pages, 24 liens), reconstruit par script à partir des liens [[…]], la même règle que le graphe d'Obsidian. Ce n'est pas une capture d'Obsidian. « errors » est isolé car aucun échec n'a encore été journalisé.
E13

Le brief du matin

Demandé : connecter Notion, Gmail et Agenda, puis créer /morning-brief, qui résume la journée sans jamais rien envoyer.

Premier run de /morning-brief dans Claude Code
Sortie de /morning-brief : sources, contenu par priorité, points à vérifier et fichiers du vault mis à jour.
E14

Un relecteur sécurité avant la mise en ligne

Demandé : un sous-agent en lecture seule qui audite l'app avant la mise en ligne et propose des correctifs sans rien modifier.

Déploiement du relais avec la limite de débit
Déploiement du relais jang-relay : la limite de 5 requêtes par minute apparaît dans les liaisons du Worker.
PC

Récupérer le travail sur Windows

Décompresse claude-lab-jang.zip dans ton dossier personnel, puis, dans PowerShell :

New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null
Copy-Item "$HOME\claude-lab\04-memoire-utilisateur\CLAUDE.md" "$HOME\.claude\CLAUDE.md"
Copy-Item -Recurse "$HOME\claude-lab\05-brand\_a-copier-dans-.claude\skills\jang-brand" "$HOME\.claude\skills\"
cd "$HOME\claude-lab\00-installation"; .\verif-windows.ps1

Si tu as déjà un $HOME\.claude\CLAUDE.md, ne l'écrase pas : colle le contenu à la fin. Le README.md de l'archive détaille tout. Les prompts exacts sont dans _prompts/, et la transcription de chaque session dans _journal/.

Écart avec l'atelierPourquoi
Sessions non interactives (claude -p)Je ne peux pas taper dans un terminal interactif ; même Claude Code, mêmes prompts, et les modes passés en option.
/status, /usage non capturésIls montrent le compte de la machine : ce sont tes captures à toi.
Pas de captures des concurrents (E06)Réseau bloqué pour ces sites dans mon espace.
Identité E05 fournie d'un blocTirée de votre maquette v2, au lieu des questions-réponses.
E09 avec Dify au lieu de Gemini et FirebaseJàng a déjà son moteur RAG dans Dify : le relais Cloudflare joue le rôle de la fonction serveur.
E11 à E13 non exécutés sur tes comptesIl faut ta clé API, ton interview SOUL.md, et tes connexions Notion, Gmail et Agenda.
Agent personnel hors du dépôt publicCe sont des données personnelles : l'atelier interdit de les publier.
Défis E03, E05, E06 non faitsFacultatifs dans l'atelier.