De l’achat dans votre terminal au premier couloir, puis chaque commande pour continuer et retrouver votre chemin.
Ce guide décrit Treelab 1.0.1, la dernière version publiée.
Le texte reste sélectionnable. Vérifiez les chemins avant de coller une commande dans votre terminal.
Préparer le poste
Il vous faut un Mac sous macOS 13 ou plus et au moins un agent de code, Claude Code ou Codex, déjà connecté à votre compte. Les comptes, accès et abonnements de ces outils sont séparés et ne sont pas inclus. S’ils manquent, Git et jq sont installés par l’installeur via Homebrew, et cmux par lab setup, chaque fois après votre accord. gh et ses droits GitHub ne servent qu’à livrer des demandes de fusion.
Dans Terminal, vérifiez la version de macOS et la présence de votre agent : chaque command -v doit afficher un chemin. Si aucun agent n’est trouvé, installez Claude Code ou Codex et connectez-le avant de continuer.
sw_vers -productVersion
command -v claude
command -v codex
Acheter et installer
Collez la commande ci-dessous dans Terminal. L’assistant d’installation, en anglais, avance en quatre temps : Prepare (préparer), Plan, Activate (activer), Start (démarrer). Préparer : vous choisissez vos agents, votre projet et votre objectif ; vos choix restent sur ce Mac. Plan : il propose un premier découpage. Activer : il propose 1 « Buy Treelab » (acheter) ou 2 « Enter a key » (saisir une clé). Acheter ouvre la page de paiement dans votre navigateur ; revenez ensuite au terminal : la clé y arrive, et aussi par e-mail. Si vous avez payé par le lien de paiement du site, choisissez 2 et collez la clé reçue par e-mail (elle commence par tl_key_). Ne payez jamais une seconde fois : relancer la même commande reprend là où vous en étiez.
Un particulier reçoit sa clé immédiatement seulement s’il demande la fourniture avant la fin du délai de rétractation de 14 jours et reconnaît perdre ce droit ; sinon, la clé arrive par e-mail à la fin du délai. L’assistant active ensuite la licence sur ce Mac, installe Git et jq s’ils manquent, télécharge et vérifie Treelab.
Démarrer : il lance lab setup, qui affiche le plan (instructions, skills, agents, hooks, commandes, profil du shell et sauvegardes) et propose cmux séparément s’il manque. Tapez I accept seulement si vous acceptez ces changements ; en cas de refus, rien n’est installé et lab setup --dry-run remontre le plan à tout moment. Enfin, l’assistant enregistre votre projet et ouvre son premier couloir dans cmux, avec votre objectif.
curl -fsS https://treelab.sh/install | /bin/bash
lab setup --dry-run
Vérifier l’installation
Ouvrez un nouveau terminal pour prendre en compte PATH. La commande installée s’appelle treelab ; lab est son nom court quand ce nom est libre. Si lab désigne déjà un autre outil, il est conservé et vous utilisez treelab pour vos appels directs. Les onglets de couloir démarrent l’agent par lab launch : ce lancement automatique suppose que lab désigne Treelab ; sinon, contactez le support avant de poursuivre.
doctor explique chaque contrôle par une NOTE : corrigez chaque rouge puis relancez. Codex demande une approbation unique des hooks (/hooks) ; Claude Code les charge sans geste. Le bilan normal peut contenir des chemins privés : gardez-le sur votre poste.
treelab --version
treelab doctor
command -v lab
Votre premier couloir
Un projet est votre dépôt Git enregistré. Un couloir est une copie de travail isolée sous .worktrees/, destinée à un besoin. Un lot est une étape vérifiable, avec une branche et une fiche ; son objectif (Goal) dit quel résultat doit être prouvé.
À la fin de l’installation, votre premier couloir est déjà ouvert dans cmux : l’agent part de l’objectif choisi pendant la préparation, sans refaire le questionnaire, et rédige le plan du premier lot. Répondez dans cet onglet ; ensuite, lab next ouvre chaque étape avec le Goal de la fiche.
Pour un nouveau besoin dans le même projet, lab new crée un autre couloir ; --brief donne à l’agent le texte de votre besoin. Pour un autre dépôt, lancez lab onboard dans son dossier : il l’enregistre sans toucher à vos fichiers et ouvre un agent dans l’onglet « main » de ce projet.
lab next demo premier
lab new demo second --brief besoin.md
cd /chemin/vers/autre-depot
lab onboard
Du lot à la livraison
Dans l’onglet du couloir : qualifier → planifier → exécuter → vérifier → livrer. Les contrôles sont les tests, le bilan doctor, une revue indépendante et l’essai réel des écrans. Chaque lot est livré par lab merge après contrôles verts ; sa fiche garde les preuves et une Reprise lisible sans la mémoire de l’agent.
next lit l’état et décide de la suite ; il ne fusionne ni ne retire. Après le dernier lot vient la recette : vous essayez le résultat exact, puis l’agent note votre accord avec lab acceptance. close livre alors le dernier lot et retire le couloir, après votre confirmation explicite ; --dry-run liste d’abord tout ce qui l’empêcherait. Un contrôle rouge arrête la livraison jusqu’à correction.
lab plan demo
lab status demo
lab close demo premier --dry-run
lab close demo premier
Mise à jour, retour arrière et retrait
lab next pose seul la dernière version mineure ou corrective, une fois par jour au plus ; une version majeure est seulement annoncée, et auto_update=no dans ~/.lab/config limite tout à l’annonce. lab update fait la même chose à la demande : il télécharge la version avec votre licence, vérifie l’archive et son empreinte, puis bascule. Les sessions d’agent ouvertes gardent leur version.
La version précédente est conservée : lab update --rollback y revient sans réseau. Tout échec finit par RESULT=refused ou interrupted avec la raison et le fichier en cause, et la version en place est gardée ; --resume reprend une mise à jour interrompue.
Pour retirer, lisez uninstall --dry-run puis lancez uninstall ou uninstall --keep-state pour garder le manifeste d’installation actif et marqué retiré. Le registre est toujours conservé ; sans cette option, le manifeste terminé est archivé avec les sauvegardes. Les sauvegardes restent disponibles au chemin affiché ; les dépendances séparées ne sont pas retirées. Un retrait interrompu reprend par uninstall --resume. Corrigez d’abord la cause signalée, ne supprimez pas le journal.
lab update --catalogue
lab update --rollback
lab uninstall --dry-run
Données et réseau
Treelab n’envoie aucune télémétrie. Trois moments seulement parlent au réseau : l’installeur (achat, puis activation de la licence avec votre clé et un identifiant aléatoire de ce Mac, machine_id), lab update et la mise à jour automatique de lab next (votre licence et ce même identifiant, pour télécharger la version). Le reste, dont vos dépôts et vos fiches, reste sur votre poste et dans vos propres dépôts distants.
Le site ne charge aucun service de diagnostic et ne demande jamais votre clé. Le package, ses messages et l’assistant d’installation sont en anglais, et l’agent vous répond dans la langue de votre Mac ; ce guide et le site existent en français et en anglais.
Référence des commandes
Les crochets indiquent une option, les chevrons un élément à remplacer, et | un choix. Ce sont des syntaxes de référence, pas des lignes à coller telles quelles. projet est facultatif quand le dossier courant identifie le dépôt enregistré. Les noms et options restent ceux du package français.
L’installeur la lance pour vous après l’achat ou la saisie de la clé ; vous pouvez la relancer à tout moment. Elle vérifie le poste, résume ce qui sera installé, puis attend que vous tapiez I accept avant d’écrire. --dry-run montre le plan sans rien installer. --reapply réapplique les choix mémorisés. --import reprend une installation antérieure : liens, hooks, registre, fiches et préférences. --dev sert au checkout de développement de Treelab.
Pose instructions, skills, agents, hooks et commandes, et propose cmux séparément s’il manque ; vos réglages existants sont conservés et sauvegardés. Aucune session d’agent ne doit tourner pendant l’opération. Si le plan change, relancez et relisez-le. Après l’installeur, votre premier couloir est déjà ouvert ; lancée seule, elle conseille lab doctor, puis lab onboard dans le dossier d’un projet.
doctor · Diagnostiquer
lab doctor [project] [--root <checkout|worktree>] [--project-only] [--report|--freeze] [--json]
Sans projet, contrôle l’installation du poste ; avec un projet, son cadre de travail. Chaque point est vert, en avertissement ou rouge, et un rouge dit quoi corriger. --root choisit le checkout ou le worktree ; --project-only omet les contrôles globaux. Le bilan normal peut afficher des chemins privés : gardez-le sur votre poste.
--report produit un rapport anonymisé, sans écriture ni envoi ; --json structure la sortie. Code 0 : aucun rouge ; 1 : contrôle rouge ; 2 : options ou diagnostic invalides. --freeze recale la référence des mesures du projet, seulement pour un changement voulu et noté au journal, jamais pour cacher un rouge. LAB_DOCTOR_SKILLS_WARN_LIMIT fixe un seuil facultatif, avertissement seulement.
Télécharge la dernière version avec votre licence, vérifie l’archive et son empreinte, puis bascule dessus. Les sessions d’agent ouvertes gardent leur version ; la suivante part de la nouvelle. --catalogue lit seulement la version disponible. --rollback revient, sans réseau, à la version précédente conservée ; --resume reprend une mise à jour interrompue. --adopt, lancé depuis une release extraite, remplace une pose antérieure.
Sans rien taper, lab next pose la dernière version mineure ou corrective une fois par jour au plus ; une version majeure est seulement annoncée. Pour ne recevoir que l’annonce, écrivez auto_update=no dans ~/.lab/config. Tout échec finit par RESULT=refused ou interrupted, avec REASON= et le fichier en cause : la version en place est conservée.
Hors session vivante, lisez d’abord --dry-run. Le retrait réel exige l’accord au terminal. --keep-state garde le manifeste d’installation actif et marqué retiré ; --resume reprend le retrait interrompu après correction de sa cause.
Retire seulement les éléments attribués au manifeste, restaure les réglages sauvegardés et conserve les changements tiers. Sauvegardes conservées dans le chemin affiché, dépendances installées séparément conservées. Le registre est toujours conservé. Sans --keep-state, seul le manifeste terminé est archivé avec les sauvegardes. Si le journal ou une empreinte ne correspond plus, conservez les fichiers et rétablissez leur intégrité avant la reprise.
onboard · Visite guidée
lab onboard [--agent claude|codex]
À lancer dans le dossier de votre dépôt Git. Trois écrans présentent les mots, le cycle et les garanties. Le dépôt est ensuite enregistré comme projet, sans toucher à vos fichiers, et un agent s’ouvre dans l’onglet « main » du projet : il vous demande votre besoin et ouvre votre premier couloir.
Relancer la commande ne crée rien en double. --agent choisit Claude Code ou Codex. Sans cmux, elle affiche la commande à lancer vous-même (NEXT_COMMAND).
lab onboard le fait pour vous la première fois. Depuis un dépôt Git existant, name nomme le projet et --root choisit sa racine. --docs repo place les futurs documents dans les worktrees ; local les garde hors dépôt. --owner shared|other décrit la propriété, sans autoriser une écriture dans le checkout principal. --agent fixe l’agent par défaut.
Écrit le registre local, détecte base, distant et commandes du projet ; tente un fetch. Le checkout principal reste intact. PROJECT et ROOT identifient le dépôt enregistré. Si le dépôt est indéterminé, précisez --root vers sa racine Git.
Depuis le dépôt enregistré, choisissez un nom court de couloir. --brief range le texte de votre besoin avec les documents du couloir : l’agent part de lui. --batch nomme le premier lot, --kind le type de branche, --base sa base, --title son titre et --agent son agent. --no-open omet l’onglet ; --no-install omet l’installation des dépendances du projet.
Crée .worktrees/<lane>, sa branche, ses métadonnées et la fiche du premier lot ; installe normalement les dépendances puis ouvre l’onglet cmux avec l’agent, qui commence par quelques questions de cadrage. WORKTREE, BRANCH et LOT permettent de retrouver le résultat. Le dépôt principal doit être sans changement en attente. Si le couloir existe déjà, utilisez open.
next · Passer à l’étape suivante
lab next [project] <lane> [--agent claude|codex] [--goal <criteria>] [--auto] [--local]
lab next [project] <lane> --batch <slug> [--kind feat|fix|chore] [--title <text>]
Lit où en est le couloir et lance ce qu’il faut : exécuter ou reprendre le lot, ouvrir le lot suivant après une livraison, ou préparer votre essai final. --goal complète l’objectif ; --agent choisit l’agent. Lancée depuis la session du couloir, elle la remplace par une session neuve dans le même onglet ; --auto reste accepté comme synonyme. Avec cmux et le Cloud réglé à yes, l’exécution du lot part sur une machine Cloud (CLOUD_RUN=) puis revient au Mac pour la clôture ; --local la garde sur le Mac.
La seconde forme impose le lot suivant, par exemple une correction après votre essai (--kind fix). next ne fusionne ni ne supprime rien. Une autre session vivante ou une livraison manquante impose de terminer l’étape indiquée avant de relancer.
plan · Voir la progression
lab plan [project] [--json]
Recalcule à chaque affichage, depuis les fiches : le lot courant de chaque couloir, les lots faits sur le total et la phase.
Lecture seule. Tableau lisible sur stderr, champs ou JSON sur stdout. Si le plan est vide, créez le premier couloir avec new.
status · Lire l’état détaillé
lab status [project]
Le projet (dossier, branche, cible des fusions, agent par défaut), puis chaque couloir comme list, les livraisons en attente, ce qui est en ligne et les fichiers touchés par deux couloirs à la fois.
Lecture seule ; un verrou dont le processus est mort peut être purgé à la lecture. Si le projet est indéterminé, précisez le nom enregistré.
list · Inventorier les couloirs
lab list [project]
Un bloc par couloir : dossier, branche, lot et état, agent, demande de fusion, session en cours. Sans projet : tous les projets enregistrés.
Lecture seule. Si un projet manque, vérifiez init depuis sa racine, sans recréer ses fichiers de travail.
Après le dernier lot, vous essayez le résultat ; l’agent note votre décision en une commande. La révision essayée est relevée, la section « Lane acceptance » de la dernière fiche (« Recette du couloir » dans une fiche française) est écrite, puis enregistrée seule. Un accord exige au moins une --evidence ; un refus peut porter vos --feedback.
Refus si le couloir n’est pas en recette ou si des changements ne sont pas enregistrés. ACCEPTANCE=valid ou rejected, REVISION= et COMMIT= identifient la décision. Si le résultat change ensuite, la recette est à refaire avant close.
close · Livrer puis retirer le couloir
lab close [project] <lane> [--confirm <lane>] [--retire <sha>…]
lab close [project] <lane> --abandon [--confirm <lane>]
lab close [project] <lane> --dry-run [--abandon]
Présente ce qui sera livré et retiré, puis demande de retaper le nom du couloir ; --confirm le fournit après un accord déjà donné. Elle exige votre essai et votre accord, notés par acceptance. Elle fusionne ensuite le dernier lot, retire la copie de travail, les branches et l’onglet. --dry-run liste d’un coup tous les obstacles (OBSTACLE=, puis RESULT=ok ou blocked) sans rien modifier.
Juste avant la fusion, la branche principale est relue à jour : si la fusion retirait des lignes ajoutées par un autre couloir, close refuse et les nomme ; --retire <sha> confirme ce retrait. --abandon retire un couloir qui n’a rien à livrer, après la même confirmation. Des fichiers non enregistrés, une session vivante ou une recette périmée bloquent : la confirmation ne contourne jamais un rouge.
sweep · Inventorier les attentes
lab sweep [project] [--dry-run]
Pour chaque couloir : sa branche, si elle est fusionnée, et ce qu’il attend (un essai, une fermeture, la suite du lot).
C’est un inventaire : il ne supprime rien, ne fait ni fetch ni prune. Seul close retire un couloir.
open · Retrouver l’onglet
lab open [project] <lane> [--agent claude|codex] [--prompt <text>|-]
Commande de secours : retrouve l’onglet du couloir, ou le rouvre avec son agent, sans décider d’une nouvelle étape. --prompt donne un texte, et - le lit sur l’entrée standard.
Pour avancer, utilisez next. Si cmux est introuvable, ouvrez l’application avant de réessayer. Ne lancez pas une seconde session si la première travaille encore.
Vous n’avez pas à la taper : new et next l’écrivent dans l’onglet du couloir. Elle relit la fiche du lot, reconstruit la consigne complète de l’agent (le Goal) et lui laisse la place.
Une ligne courte part dans l’onglet et le Goal est reconstruit à l’arrivée, sans troncature. Le lancement automatique appelle le nom court lab : si un autre outil occupe ce nom, utilisez treelab pour vos appels directs et contactez le support. Un long complément s’écrit dans la fiche, pas dans --goal.
Fusionne la demande de fusion du lot vers staging si elle existe, sinon vers la branche principale, dès que les contrôles automatiques sont verts. S’ils tournent encore, un veilleur fusionnera après le vert et la commande rend la main (ACTION=armed). --title et --body-file fixent le titre et le corps de la demande. L’agent la lance à la fin de chaque lot.
Avant de fusionner, la commande puis le veilleur refont un essai à blanc sur la base fraîche et refusent une fusion qui retirerait des lignes ajoutées par un autre couloir (REGRESSION=) : le refus nomme fichier, lignes et commit ; --retire <sha> autorise ce retrait voulu. gh et les droits du dépôt distant sont nécessaires.
sync · Ramener la base dans un couloir
lab sync [project] <lane>
Fusionne dans le couloir les changements arrivés sur la branche de base, sans rien pousser. launch le fait avant chaque session.
SYNC=up-to-date, merged, conflict ou ignored. Un conflit est annulé et nommé (CONFLICT_FILES=) : le couloir reste intact jusqu’à sa résolution.
promote · Mener staging en production
lab promote [project] [--confirm <project>]
Sans --confirm : présente ce qui partirait de staging vers la branche principale, sans rien écrire. Avec --confirm : ouvre la demande de fusion datée et la fusionne à la révision exacte après des contrôles verts.
À lancer vous-même ; un agent ne la lance que sur votre demande explicite. PROMOTE=preview, armed, merged ou none ; PR=, INCLUDED= et INFLIGHT= détaillent le contenu.
batch · Lire les fiches de lot
lab batch current
lab batch list
lab batch new [--title <text>]
À lancer dans le dossier d’un couloir. current donne la fiche du lot en cours et son état ; list donne chaque fiche et son état ; new crée la fiche d’un lot, --title fixe son titre.
Les agents s’en servent pendant un lot. new ne remplace pas next pour changer de branche et de session ; ne créez pas une fiche concurrente pour contourner un lot actif.
handoff · Vérifier le passage de relais
lab handoff [project] [lane] [--template]
Vérifie que la fiche du lot dit où en est le travail et quel lot suit, enregistre les fiches du couloir, puis imprime la commande suivante (NEXT_COMMAND). Si la section Reprise manque, ajoute son gabarit à la fiche et demande de la remplir. --template affiche seulement la forme attendue.
L’agent la lance en fin de lot. Elle ne livre pas le lot et ne vérifie pas la complétude des preuves : objectif, lectures, preuves, reste et prochain lot restent à écrire.
now · Horodater
lab now
Imprime l’instant présent en temps universel, au format AAAA-MM-JJTHH:MM:SSZ. Les agents s’en servent pour dater journaux et Reprises.
LAB_NOW fixe la valeur, pour les essais.
due · Suivre les échéances
lab due [project]
lab due [project] add <YYYY-MM-DD|YYYY-MM-DDTHH:MM:SSZ> <subject…>
lab due [project] done <id> <sha>
lab due [project] reschedule <id> <due date>
lab due [project] cancel <id> <reason…>
Sans action : les échéances ouvertes du projet, en retard d’abord, puis celles sous 48 heures, puis les suivantes. add inscrit une échéance prise pendant un lot (relance, livraison promise).
fait tranche une échéance avec le commit qui la prouve ; redater la déplace ; annuler la ferme avec un motif. Les échéances ne vivent ni dans les fiches ni dans la Reprise.
Le compte n° 1 est celui de votre /login. add lance claude setup-token et range le jeton collé dans le trousseau macOS, jamais dans un fichier ; remove l’efface ; sans action, la liste dit quel compte est disponible.
Quand un compte atteint sa limite de 5 heures ou de 7 jours, la même conversation reprend dans son onglet sur le compte suivant ; si tous sont épuisés, l’onglet attend l’heure de reprise. suivant change de compte tout de suite, depuis la session Claude du couloir.
Sans valeur, affiche la règle appliquée et d’où elle vient : CLOUD=, CLOUD_SOURCE= (couloir, projet, réglage du poste ou défaut) et CLOUD_ASKED=. Le couloir l’emporte sur le projet, le projet sur cloud= de ~/.lab/config, et la valeur par défaut est yes.
yes ou no écrit la règle au projet, ou au couloir s’il est nommé ou si la commande est lancée dans son dossier ; reset retire la règle de ce niveau. Une valeur illisible est refusée avec la commande qui la corrige ; ~/.lab/config est lu, jamais écrit. secret range au trousseau le jeton GitHub du dépôt, retiré de la machine à la fin de chaque lot ; image prépare une fois la machine du projet et la fige.
add copie les captures, sorties et mesures d’un lot hors du dépôt, avec l’empreinte SHA-256 de chaque fichier dans un manifest.json ; un fichier déjà versionné est seulement référencé. --step range la preuve sous une étape nommée.
verify recalcule chaque empreinte et signale une preuve modifiée ou absente.
lock · Tenir une ressource partagée
lab lock [project] <resource> [--pid <pid>]
Réserve pour le couloir courant une ressource déclarée dans la configuration du projet (resources=) : un simulateur, une base locale, un port. --pid désigne le processus détenteur.
Si un autre couloir vivant la tient, la commande refuse et le nomme ; un détenteur mort est remplacé. unlock la libère.
unlock · Libérer une ressource
lab unlock [project] <resource>
Libère une ressource tenue par le couloir courant, ou par une session qui n’existe plus.
Une ressource tenue par un autre couloir vivant reste à lui.
served · Noter la version servie
lab served <port> [--pid <pid>]
Appelée par le script de développement du projet : elle note le couloir, sa révision, le port et le processus qui sert l’application.
Au démarrage d’une session, l’agent sait ainsi quelle version tourne localement.
deploy · Mettre en ligne sans effacer un autre couloir
Met en ligne une cible déclarée dans la configuration du projet, toujours depuis la branche principale à jour ; depuis un couloir, sa branche s’y ajoute, et --with en ajoute d’autres. --dry-run montre le plan et ce qui serait perdu (LOST=). --record inscrit l’existant sans déployer. --add déclare une cible depuis un modèle worker, rsync ou cloudrun ; --include nomme les fichiers privés copiés avant chaque mise en ligne.
Un registre note ce qui est servi. Si la cible sert un couloir non fusionné que vous n’incluez pas, lab refuse et le nomme : incluez-le avec --with, ou retirez-le avec --retire. La sonde vérifie ensuite la révision servie. Dans un projet qui déclare une cible, un déploiement direct est refusé : passez par lab deploy.
watch · Le veilleur d’une livraison
lab watch <project> <lane> <branch>
Commande interne : vous n’avez pas à la lancer. merge et close la démarrent en arrière-plan pour attendre les contrôles automatiques, puis fusionner.
Commande interne : Claude Code et Codex l’appellent avec du JSON sur l’entrée standard, au début et à la fin d’une session, et avant une commande risquée. session-start fournit le contexte et le verrou ; session-end libère la session ; guard-bash et guard-tool refusent par défaut les gestes dangereux courants, avec l’alternative sûre.
Une erreur interne d’un automatisme ne bloque jamais votre travail. Codex demande une approbation unique des hooks (/hooks) ; doctor vérifie qu’ils sont en place.
help affiche, en anglais, les commandes rangées par moment (install, start, move forward, finish) ; help <command> donne à quoi elle sert, sa syntaxe et un exemple ; help glossary donne chaque mot anglais de lab avec son ancien mot français. --help et -h affichent la référence technique complète sur stderr et sortent à 2. --version produit VERSION=… depuis la copie exécutée.
--json transforme les sorties KEY=value de toute commande en JSON ; les explications restent sur stderr. Un code non nul se lit dans le contexte de la commande ; doctor distingue 1 et 2.
Dépannage
Outil absent
Vérification et action
Relancez la commande d’installation : elle propose d’installer Git et jq via Homebrew ; lab setup propose cmux. Vérifiez aussi macOS et command -v pour votre agent.
Résultat attendu
Chaque outil affiche un chemin ; l’installation reprend sans nouvel achat.
Clé non reçue
Vérification et action
Attendez quelques minutes et vérifiez les indésirables. Un achat avec fourniture différée reçoit sa clé à la fin du délai de rétractation. Ensuite, relancez la commande d’installation et choisissez 2 « Enter a key » (saisir une clé), ou écrivez au support depuis l’adresse du paiement.
Résultat attendu
La clé tl_key_ est collée et activée ; aucun second paiement.
lab occupé
Vérification et action
Comparez command -v lab et command -v treelab. Utilisez treelab sans remplacer la commande tierce.
Résultat attendu
treelab --version identifie la bonne copie pour les appels directs. Le lancement automatique appelle encore lab : s’il est occupé, conservez l’autre outil et contactez le support.
Dépôt non enregistré
Vérification et action
Depuis la racine Git voulue, vérifiez lab list puis relancez lab onboard, ou lab init avec --root.
Résultat attendu
PROJECT et ROOT correspondent au dépôt voulu.
Onglet introuvable
Vérification et action
Vérifiez lab status, ouvrez cmux puis lab open avec le nom du couloir existant.
Résultat attendu
L’onglet du couloir est retrouvé ou recréé.
Session encore vivante
Vérification et action
Revenez à l’onglet propriétaire et terminez proprement la session. Pour une reprise automatique par son agent, enregistrez d’abord la Reprise puis lancez lab next depuis cette session.
Résultat attendu
Une seule session travaille ; entretien possible après sa fin. Ne supprimez pas son verrou.
Bilan rouge
Vérification et action
Lisez NOTE dans doctor local et corrigez le contrôle indiqué ; relancez exactement le même bilan. --freeze ne sert pas à cacher le défaut.
Résultat attendu
Le contrôle concerné devient vert, sans déplacement artificiel de la référence.
Livraison bloquée
Vérification et action
Vérifiez cible de la demande de fusion, contrôles distants, conflit, droits gh et recette du dernier lot ; lab close --dry-run liste les obstacles. Corrigez la cause avant de relancer ; gardez le couloir.
Résultat attendu
Contrôles et bilan verts, puis demande réellement fusionnée.
Mise à jour refusée
Vérification et action
Lisez RESULT, REASON et FILE affichés par update. Vérifiez la connexion et la licence de ce Mac, puis réessayez ; --resume reprend une mise à jour interrompue.
Résultat attendu
Aucun remplacement sur échec ; mise à jour seulement après archive vérifiée.
Version précédente absente
Vérification et action
Lisez le refus de update --rollback ; conservez la version actuelle et les sauvegardes. Ne fabriquez pas previous-release.
Résultat attendu
Installation conservée ; demande de support possible avec rapport relu.
Opération interrompue
Vérification et action
Corrigez les droits ou l’intégrité indiqués, gardez les sauvegardes, puis utilisez update --resume pour la mise à jour ou uninstall --resume pour le retrait demandé par le diagnostic.
Résultat attendu
Transaction terminée ou restaurée ; vérifiez doctor avant de reprendre le travail.
Dans votre terminal, lancez lab doctor --report. Relisez stdout et stderr avant tout partage : ce mode anonymise le diagnostic existant, pas les commentaires que vous ajoutez. Le bilan normal sans --report peut contenir des chemins privés. Ne le joignez pas tel quel.
lab doctor --report
Variante facultative depuis un dossier local privé : choisissez un nom de fichier nouveau, car > remplace un fichier existant. Le code 1 signifie un bilan rouge, pas un échec d’anonymisation ; le code 2 indique une erreur à résoudre avant de partager. Le fichier reçoit stdout JSON ; stderr reste au terminal et doit aussi être relu.
lab doctor --report --json > treelab-report.json
Vérifiez l’absence de noms, chemins personnels, adresses, clés et contenus de projet. Retirez toute information inutile, puis ajoutez manuellement le rapport si vous le souhaitez. Le site ne lit, ne reçoit ni ne conserve ce fichier. Le lien d’e-mail ne contient aucun diagnostic ; seule votre messagerie pourra envoyer après votre action.