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.
Demandé : versions, mise à jour, pas de clé API, compte Pro, dossier claude-lab.
claude doctor sans erreur bloquante.verif-windows.ps1 écrit pour refaire ces contrôles sur ton PC.$ 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 lancé par Cheikh sur son Mac le 05/10 : connexion Claude Pro account, Claude Code 2.1.285, modèle Opus. Identifiants de session, organisation et e-mail masqués sur la capture. Comme Cheikh est sur Mac, verif-windows.ps1 a son équivalent 00-installation/verif-mac.sh./status sur le Mac de Cheikh : compte Claude Pro (champs personnels masqués).verif-mac.sh lancé par Cheikh le 05/10 sur son Mac (darwin-arm64) : Claude Code 2.1.289, la dernière version publiée, Node 23.2.0, git 2.53.0, pas de clé API, claude doctor « No installation issues found », dossier ~/claude-lab créé.Demandé : dossier 01-hello avec git, modèle opusplan, une carte de visite web en un seul fichier, sans rien inventer.
--model opusplan ; Claude a écrit jang-card.html en 2 tours, sans chiffres ni écoles inventés, coordonnées marquées fictives.wa.me)./usage capturé par Cheikh le 05/10, juste après le premier /morning-brief : 6 % de la session et 30 % de la semaine utilisés, 92 % des tokens d'entrée servis par le cache./usage : quota du compte Pro et ce qui l'a consommé.Demandé : commit, plan sans modification, précision, application validée, puis retour arrière et git status propre.
git status inchangé.nothing to commit, working tree clean.localStorage = {"jang-theme":"dark"}).$ 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.
Demandé : même page deux fois, d'abord sans skill, puis avec le plugin officiel frontend-design, et comparer.
JNG-PC-01…), formulaire « professeur bénévole ».√ Successfully installed plugin: frontend-design@claude-plugins-official (scope: local), et la ligne Skill(frontend-design:frontend-design) apparaît pendant la V2.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.
Demandé : /init, CLAUDE.md réduit à moins de 60 lignes, /diff, /compact, /clear, mémoire utilisateur.
/compact exécuté. Test « après /clear » : une nouvelle session cite les règles et les polices du projet sans ouvrir aucun fichier, parce que CLAUDE.md est relu à chaque démarrage./init est désactivé dans mon environnement : j'ai envoyé sa consigne sous forme de prompt. Chez toi, tape simplement /init.
Demandé : une skill personnelle avec l'identité de la marque, puis un email, un post LinkedIn et un flyer cohérents.
~/.claude/skills/jang-brand/SKILL.md (82 lignes, disable-model-invocation: true) : palette et polices de votre maquette v2, voix, mots à utiliser et à éviter, règles d'honnêteté (« corrigés en cours de validation »). Invoquée dans une nouvelle session, elle répond : « Identité Jàng chargée ».hero.jpg.Demandé : plugins playwright et marketing en local, visite de sites concurrents avec captures, rapport, plan marketing, puis désactivation du plugin marketing.
scope: local ; le plugin marketing a été désactivé à la fin (√ Successfully disabled plugin: marketing).marketing:campaign-plan et /jang-brand : positionnement, 3 piliers, calendrier sur 4 semaines, 7 améliorations de la landing, 5 idées d'acquisition, 3 actions immédiates.Demandé : nouveau dépôt, branche phase-1, CLAUDE.md planifié en mode plan puis écrit (moins de 120 lignes), /context, commit.
/context : la case « Memory files » pèse 2,3k tokens (CLAUDE.md et ta mémoire utilisateur). Commit c42f2fa CLAUDE.md sur phase-1.## 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.
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.
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.
dify-relay/) garde la clé Dify en secret : elle n'est ni dans la page, ni sur GitHub. Il n'accepte que les appels de votre site.Demandé : sur une branche jetable, laisser Claude améliorer l'app en 2 tours automatiques (critique, 3 corrections, vérification, note).
ralph, plugins ralph-loop et frontend-design installés en local, et un brief écrit dans .claude/ralph-brief.md.docs/decisions.md.Demandé : installer une skill externe, créer un environnement Python isolé, puis un agent sans mémoire et le même avec mémoire.
claude-api, tirée du dépôt officiel anthropics/skills et lue avant l'installation, avec npx skills add anthropics/skills --skill claude-api..venv avec le SDK Anthropic officiel, un noyau « agents-lab » et un .gitignore qui protège .env..env, jamais commitée) : notebooks/agent_lab_gemini.ipynb, sorties incluses. Sans mémoire, l'agent répond que « le deuxième » est ambigu et demande une précision. Avec mémoire, il retrouve sa liste et répond JNG-PC-02, Acides forts, en décrivant l'exercice sans le résoudre. L'historique contient 4 messages.Demandé : la structure Personal OS (CLAUDE.md, SOUL.md, vault, 4 skills), l'interview pour SOUL.md, puis /ingest et le graphe dans Obsidian.
/setup, /ingest, /lint et /new-automation./ingest du README de Jàng : pages créées pour le projet, Adama, l'université, l'enseignant et la persona. La source n'a pas été modifiée, et une ligne datée a été ajoutée au journal. /lint a été exécuté./setup faite par Cheikh le 05/10 : SOUL.md rempli (identité, valeurs, style de travail, ton de l'agent, limites). Les questions passées restent marquées « à remplir ». Commit local seulement, car le fichier contient des données personnelles.[[…]], 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é.Demandé : connecter Notion, Gmail et Agenda, puis créer /morning-brief, qui résume la journée sans jamais rien envoyer.
/new-automation a créé le playbook work/02-morning-brief/CLAUDE.md et la skill /morning-brief, en lecture seule sur Gmail et Agenda. Les e-mails sont traités comme des données, jamais comme des ordres./morning-brief : sources, contenu par priorité, points à vérifier et fichiers du vault mis à jour.Demandé : un sous-agent en lecture seule qui audite l'app avant la mise en ligne et propose des correctifs sans rien modifier.
.claude/agents/jang-security-reviewer.md, limité aux outils Read, Grep et Glob. Il a audité le relais, l'app, le bundle, la landing et les règles du dépôt.innerHTML.deny manquaient à la racine du dépôt, et le .gitignore était incomplet. Ces trois points sont corrigés. La limitation de débit, à 5 requêtes par minute et par adresse IP, est testée.npx wrangler deploy, version 6c4361a3) : la limite RATE_LIMITER (5 requêtes / 60 s) est active. Vérifié en ligne depuis le site : après quelques requêtes, le relais répond 429 « Trop de demandes en ce moment — réessaie dans une minute ». Le rapport complet est dans docs/audit-securite-e14.md.jang-relay : la limite de 5 requêtes par minute apparaît dans les liaisons du Worker.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'atelier | Pourquoi |
|---|---|
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és | Ils 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 bloc | Tirée de votre maquette v2, au lieu des questions-réponses. |
| E09 avec Dify au lieu de Gemini et Firebase | Jà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 comptes | Il faut ta clé API, ton interview SOUL.md, et tes connexions Notion, Gmail et Agenda. |
| Agent personnel hors du dépôt public | Ce sont des données personnelles : l'atelier interdit de les publier. |
| Défis E03, E05, E06 non faits | Facultatifs dans l'atelier. |