En pratique#

À lire le jour où vous l’essayez. Rien n’est à préparer avant. La règle est simple : un prérequis que l’agent sait résoudre n’est pas un prérequis. Le runtime nécessaire aux contrôles est vérifié par l’agent, qui propose de l’installer. Il n’est demandé à personne d’avance. Le reste — installer git, comprendre une commande, choisir entre deux façons de faire — relève déjà de l’usage ordinaire d’un agent.

L’installation#

Cinq étapes. Une seule fois.

1. Un dossier vide. Ce sera la racine. Vous la posez où vous voulez, son nom n’est lu par personne, et rien n’y est cherché.

2. L’archive décompressée dedans. C’est la dernière version publiée : la méthode, plus votre instance — profil, conventions transverses, carnets — qui arrivent vides. Voici votre disque à cet instant :

projets/                    la racine — vous la choisissez, rien n'y est lu
└── _workshop/              la méthode reçue + votre instance. Privé en entier

Une seule contrainte n’est pas libre : le nom de ce dossier ne compte pas, sa position si. Directement dans la racine, jamais à l’intérieur d’autre chose : tout se résout à partir de là. L’archive arrive sans .git, donc sans dépôt d’origine. Rien de ce que vous écrirez dans votre instance ne peut repartir vers le nôtre, y compris par erreur.

3. L’accès de votre agent à cette racine. C’est le seul prérequis dur de la méthode : pouvoir lire et écrire les fichiers d’un dossier que vous lui désignez. Une fenêtre de discussion où l’on colle du texte n’y suffit pas.

La façon de déclarer ce dossier dépend de l’outil — espace de travail, répertoire de lancement, liste de chemins autorisés — et tous en ont une. Ici, c’est Claude Code intégré à VS Code ; d’autres conviennent tout aussi bien. La méthode demande seulement que les dossiers soient déclarés, et que le chemin du point d’entrée soit nommé à la main à l’ouverture de chaque session.

4. Votre première conversation. Deux lignes, qui disent l’état réel du disque :

Bonjour — je viens de décompresser Workshop ici, il n'y a rien d'autre pour l'instant.
Point d'entrée : projets/_workshop/method/organization.md

L’agent lit la carte, constate qu’aucun profil n’existe, et propose d’en construire un : une dizaine de minutes de questions, puis les deux fichiers que toutes les sessions suivantes liront. C’est une offre, pas un passage obligé.

5. Votre premier atelier. « Crée l’atelier Ledger, avec les dépôts ledger.api et ledger.web. » Un produit réparti sur plusieurs dépôts, ou une bibliothèque seule : dans les deux cas, un atelier. Son cadrage vit hors de tout dépôt de code. Il ne peut donc pas voyager dans un commit de code.

projets/                    la racine
├── _workshop/              la méthode reçue + votre instance
├── Ledger/                 UN ATELIER
│   ├── ledger.api/           un dépôt de code
│   ├── ledger.web/           un autre dépôt, même atelier, même cadrage
│   └── _workspace/           LE CADRAGE, hors de tout dépôt de code
└── TinyParse/              UN AUTRE ATELIER — une bibliothèque seule en est un

L’installeur pose ce squelette et s’arrête là. Il ne migre rien, n’ouvre pas l’atelier et n’y travaille pas. Ce qui est créé ressemble à tous les ateliers suivants, y compris celui de dans six mois.


Ensuite, une phrase suffit à ouvrir chaque session. C’est le seul geste qui se répète. La méthode n’ajoute ni compte, ni service, ni configuration à tenir : des fichiers, et deux scripts à lancer — l’installeur et le contrôle.

Mettre à jour revient à recopier un method/ plus récent par-dessus le vôtre ; votre instance et vos ateliers ne bougent pas. Depuis 0.4.0, workshop-lint.py --check-updates peut aussi signaler qu’une version plus récente existe. C’est un avertissement optionnel, et le seul contrôle qui lit le réseau. Suivre aussi les Releases only du dépôt public reste une autre façon d’être averti, sans rien demander à votre copie.

Mode d’emploi — ce que vous avez à dire#

Si vous ne lisez qu’une section, lisez celle-ci. Tout ce que la méthode attend de vous tient ici. Deux phrases reviennent dans la vie normale d’une session ; cinq autres n’apparaissent que dans des cas précis. Ce ne sont ni des commandes ni des mots-clés. Ce sont simplement les faits qu’aucun écrit ne peut connaître : quel atelier, qu’une session a été coupée, qu’on est en train de clore. Le reste se déclenche parce qu’une condition a été lue.

À chaque session#

À l’ouverture, nommez l’atelier et le chemin du point d’entrée :

Bonjour — on travaille sur Ledger aujourd'hui.
Point d'entrée : projets/_workshop/method/organization.md

La façon dont un agent vient à lire ce fichier dépend de l’outil et change avec ses versions. La méthode ne cherche pas à l’uniformiser. Nommer le chemin est le geste qui n’échoue pas en silence.

À la clôture, une phrase suffit :

On clôture la session.

Le protocole se déroule alors dans l’ordre et sans arbitrage : ce qui est encore ouvert reste en place, ce qui a fermé part dans done/, le volatil est écrit, le contrôle passe, les commits partent — puis vous recevez la liste de ce qui reste à pousser.

Quand le cas se présente#

Rien n’existe encore « Je viens de copier la méthode ici, il n’y a rien d’autre pour l’instant » — plus le point d’entrée. L’agent ne trouve aucune instance et propose d’en construire une
La session précédente a été coupée avant d’avoir enregistré quoi que ce soit Le dire. L’état est rétabli depuis le disque ; la trace de cette session est cherchée avant de considérer ses raisons comme perdues, et le travail n’est pas rejoué
Un atelier est à créer « Crée l’atelier Ledger, avec les dépôts ledger.api et ledger.web. » L’installeur le pose, donc il ressemble à tous les autres
Un dépôt est à publier Le dire. Le passage du privé au public suit une procédure
Un constat concerne un autre atelier « Dépose une note pour Ledger là-dessus. » Elle est écrite sous le nom exact de l’atelier visé, qui sert d’adresse. La prochaine session ouverte sur Ledger la lit, en fait ce qu’elle décide, puis la supprime — elle porte un constat, jamais une consigne

Deux offres, auxquelles vous répondez#

L’agent propose l’entretien qui écrit votre instance, et propose d’installer le runtime dont les contrôles ont besoin. Les deux restent des offres, parce que le coût tombe sur votre machine et sur votre session.

L’inventaire fait autorité dans le README du dépôt, en anglais.

Le corpus se construit à l’usage#

Ce qui précède se répète à chaque session. Ce qui suit se construit sur la durée : le corpus qui porte ce qui vaut partout s’appelle votre instance. Il arrive vide, et se remplit un fichier à la fois. Rien n’est à rédiger d’avance : écrire avant d’avoir eu besoin d’une règle, c’est deviner ce qui servira.

Un fichier naît d’une remarque. Vous reprenez l’agent sur un point qui n’a rien à voir avec la tâche du jour : une façon de nommer, un format, une règle que vous appliquez partout sans y penser. Le fait que cette remarque déborde le sujet en cours est justement ce qui la rend transverse. L’agent le relève et propose de l’écrire.

L’écrire, c’est deux gestes, et l’agent fait les deux. D’abord le texte, avec surtout la condition qui le déclenche en tête de fichier — « à lire seulement si… ». Puis, dans le même mouvement, la ligne d’index qui le déclare. Sans elle, le fichier existe mais n’est lu par personne : c’est exactement le cas des conventions qui n’arrivent jamais, décrit sur l’accueil.

L’entretien suit la même logique. Un corpus qui grossit se redécoupe : quand la condition en tête d’un fichier devient plus étroite que son contenu, ceux qui le lisent paient des pages qui ne les concernent pas, et le fichier se scinde. Ces réorganisations sont mécaniques, l’agent les mène, et le contrôle vérifie qu’aucune citation n’est restée en chemin.

Ce qui n’est pas mécanique vous revient : décider qu’une remarque devient une règle. Tout ce qui se dit dans une session n’a pas vocation à finir dans un fichier, et une préférence passagère écrite comme une convention devient vite une contrainte inutile.


Le reste — le démarrage, les réflexes imposés à l’agent, le protocole de clôture — est décrit dans le détail, à lire en travaillant.