Skip to content

Configuration .env.claude

Le fichier .env.claude permet de configurer le comportement des plugins du marketplace pour chaque projet. Il est lu automatiquement par les skills qui en ont besoin.

Emplacement

Le fichier doit se trouver a la racine du projet utilisateur (pas dans le plugin).

mon-projet/
├── .env.claude       # <-- ici
├── src/
├── composer.json
└── ...

Format

Le format est KEY=VALUE, une variable par ligne. Pas de quotes, pas d'export.

bash
MAIN_BRANCH=main
REPO=atournayre/mon-projet
PROJECT=Mon Projet
WORKTREE_DIR=../worktrees

Variables disponibles

MAIN_BRANCH

Branche principale du projet. Utilisee comme branche source par defaut quand aucune n'est specifiee.

ProprieteValeur
Defautmain
Exemplesmain, master, develop
Pluginsgit, dev

Skills qui l'utilisent :

SkillUsage
/git:branchBranche source par defaut si non fournie en argument
/git:worktreeBranche source par defaut si non fournie en argument
/git:prBranche de base pour la Pull Request
/git:cd-prBranche de base pour la Pull Request CD
/dev:auto-featureBranche de base pour le workflow automatise

Exemple :

bash
# .env.claude
MAIN_BRANCH=develop
bash
# Avant : branche source obligatoire
/git:branch main 42

# Apres : branche source optionnelle (utilise MAIN_BRANCH)
/git:branch 42

REPO

Identifiant du depot GitHub au format owner/repo.

ProprieteValeur
DefautDetecte automatiquement via git remote
Formatowner/repo
Pluginsgit, dev

Skills qui l'utilisent :

SkillUsage
/git:prDepot cible pour la creation de PR
/git:cd-prDepot cible pour la creation de PR CD

Exemple :

bash
REPO=atournayre/mon-projet

PROJECT

Nom du projet GitHub (GitHub Projects v2). Utilise pour l'assignation automatique des PR a un projet.

ProprieteValeur
DefautVide (pas d'assignation)
Pluginsgit, dev

Skills qui l'utilisent :

SkillUsage
/git:prAssigne la PR au projet GitHub
/git:cd-prAssigne la PR au projet GitHub
/dev:auto-featureAssigne la PR au projet GitHub

Exemple :

bash
PROJECT=Mon Projet Sprint 3

WORKTREE_DIR

Repertoire de base pour la creation des worktrees Git. Peut etre un chemin relatif ou absolu.

ProprieteValeur
DefautDemande a l'utilisateur si absent
Exemples../worktrees, .worktrees, /home/user/worktrees
Pluginsgit

Skills qui l'utilisent :

SkillUsage
/git:worktreeRepertoire parent pour les worktrees

Convention de nommage des repertoires :

La branche feature/ma-fonctionnalite cree un worktree dans $WORKTREE_DIR/feature-ma-fonctionnalite (les / sont remplaces par des -).

Exemple :

bash
WORKTREE_DIR=../worktrees
bash
/git:worktree 42
# Cree: ../worktrees/feature-42-login-fix/

Exemple complet

bash
# .env.claude - Configuration projet
MAIN_BRANCH=main
REPO=atournayre/mon-application
PROJECT=Sprint 4
WORKTREE_DIR=../worktrees

Comportement

  • Fichier optionnel : si .env.claude n'existe pas, les skills utilisent des valeurs par defaut ou demandent a l'utilisateur
  • Variables optionnelles : chaque variable est independante, seules celles qui te sont utiles doivent etre definies
  • Pas de quotes : ecrire MAIN_BRANCH=main et non MAIN_BRANCH="main"
  • Pas d'export : ecrire MAIN_BRANCH=main et non export MAIN_BRANCH=main
  • Priorite : les arguments passes en ligne de commande ont toujours priorite sur .env.claude

Gitignore

Le fichier .env.claude peut contenir des configurations specifiques a l'environnement de chaque developpeur (par exemple WORKTREE_DIR). Selon le cas :

  • Commiter : si les variables sont communes a l'equipe (MAIN_BRANCH, REPO, PROJECT)
  • Gitignorer : si les variables sont specifiques a chaque developpeur (WORKTREE_DIR)

Pour un compromis, utiliser un template :

bash
# Commiter .env.claude.dist comme reference
cp .env.claude.dist .env.claude

# Ajouter .env.claude au .gitignore
echo ".env.claude" >> .gitignore

Ajouter une variable

Si tu developpes un plugin ou une skill qui a besoin d'une configuration projet, utilise .env.claude avec cette convention :

  1. Nommer en SCREAMING_SNAKE_CASE : MA_VARIABLE
  2. Documenter : ajouter la variable a cette page
  3. Fallback : toujours prevoir un comportement par defaut si la variable est absente
  4. Lecture : utiliser Read pour lire .env.claude et extraire la valeur

Publié sous licence MIT