Aller au contenu

Configuration

Le fichier d’une équipe est en TOML. Le même format sert partout :

Fichier Contient
.recruit/settings.toml les équipes du projet, commitées
.recruit/settings.local.toml tes réglages personnels pour le projet, fusionnés clé par clé avec settings.toml, non commités
~/.config/recruit/<équipe>.toml une équipe globale (dans $XDG_CONFIG_HOME/recruit/ si cette variable est définie)

Voir Équipes pour la façon dont ils se combinent.

.recruit/settings.toml
default = "web" # équipe lancée par `recruit` seul quand le fichier en contient plusieurs
[claude]
command = "claude" # exécutable de Claude Code
config_dir = "~/.claude-perso" # profil Claude Code ; mieux dans settings.local.toml
[teams.web]
description = "Application web"
lang = "fr"
instructions = """
- Règles communes à tous les membres.
"""
permission_mode = "auto"
model = "opus"
effort = "high"
args = []
layout = "auto"
columns = 3
rows = 2
dashboard = true
auto_compact = 70
[teams.web.members.coordinateur]
role = "Point d'entrée de l'utilisateur : répartit le travail, suit l'avancement"
contact = true
instructions = """
- Ce que fait ce membre, sa zone, comment il rend son travail.
"""
[teams.web.members.dev-back]
role = "Serveur et API"
tab = "Code"
model = "sonnet"
Clé Type Défaut Effet
default texte aucun L’équipe que lance recruit seul quand le fichier du projet en contient plusieurs. Sans elle, recruit demande laquelle. Lue dans les fichiers du projet.

Vaut pour toutes les équipes du fichier.

Clé Type Défaut Effet
command texte "claude" L’exécutable de Claude Code, un nom cherché dans le PATH ou un chemin.
config_dir texte celui de l’environnement Le profil Claude Code de l’équipe : son dossier de configuration, donné aux membres comme CLAUDE_CONFIG_DIR. Un chemin absolu, ou qui commence par ~/. Le dossier doit exister. Voir Profil Claude Code.

[teams.<équipe>] : une table par équipe. Le nom de l’équipe en est la clé : lettres (accents compris) et chiffres, - et _, 40 caractères au plus, sans - au début, et pas une commande de recruit. Voir Noms.

Clé Type Défaut Effet
description texte aucune Une ligne sur l’équipe, pour toi.
lang "fr" ou "en" la langue de l’interface La langue de l’équipe : celle du prompt que recruit écrit autour des instructions, des noms de ses onglets, de ses panneaux et de ses commandes (/equipe ou /team).
instructions texte aucune Règles communes à tous les membres, ajoutées au prompt de chacun.
permission_mode texte celui de Claude Code Mode de permission de Claude Code de tous les membres : default, acceptEdits, auto, plan, bypassPermissions…
model texte celui de Claude Code Modèle de Claude de tous les membres : un alias (opus, sonnet, haiku, fable) ou un nom de modèle complet.
effort texte celui de Claude Code Effort de tous les membres : low, medium, high, xhigh ou max. recruit les affiche faible, moyen, élevé, extra et max, comme Claude Code nomme xhigh « Extra ».
args liste de textes [] Arguments donnés en plus à claude pour tous les membres.
layout "auto" (ou "grid"), "focus" ou "tabs" "auto" auto, que le menu écrit grid : les interlocuteurs dans un premier onglet, puis les agents de travail dans des onglets de columns × rows au plus, chaque onglet en grille. focus : les mêmes onglets, mais ceux des agents de travail montrent un membre en grand à gauche et les mieux placés à droite. tabs : un onglet par membre. Voir Onglets et Focus.
columns entier 3 Le nombre maximal de colonnes dans un onglet.
rows entier 2 Le nombre maximal de lignes dans un onglet.
dashboard booléen true Le tableau de bord et le journal, à droite des interlocuteurs. Avec false, les interlocuteurs sont côte à côte.
auto_compact booléen ou entier true La compaction automatique : un membre au repos depuis 15 minutes est compacté quand son contexte atteint cette part de sa fenêtre, en pourcentage, de 1 à 100. true vaut 70, false la désactive.

[teams.<équipe>.members.<membre>] : une table par membre, dans l’ordre des onglets. Le nom du membre en est la clé, et l’adresse à laquelle lui écrivent ses coéquipiers : lettres et chiffres, -, _ et ., sans espace, 40 caractères au plus, sans - ni . au début. Deux membres d’une équipe ne peuvent pas différer que par la casse.

Clé Type Défaut Effet
role texte obligatoire Une ligne : ce dont le membre est responsable. Ses coéquipiers la voient.
contact booléen false L’un de tes interlocuteurs, dans le premier onglet ; deux au plus. Si aucun membre ne l’a, le premier membre est l’interlocuteur. Voir Interlocuteurs.
instructions texte aucune Ce que fait ce membre, sa zone, comment il rend son travail. Ajoutées à son prompt.
tab texte "Agents" Pour un agent de travail : l’onglet qu’il partage avec les agents qui ont le même. Ne peut pas prendre le nom d’un onglet de recruit (« Interlocuteurs », « Contacts », « Agents (1) »…).
permission_mode texte celui de l’équipe Remplace celui de l’équipe pour ce membre.
model texte celui de l’équipe Remplace celui de l’équipe pour ce membre.
effort texte celui de l’équipe Remplace celui de l’équipe pour ce membre.
args liste de textes [] Arguments en plus pour ce membre, après ceux de l’équipe.
  • Pour permission_mode, model et effort : la valeur du membre, sinon celle de l’équipe, sinon le défaut de Claude Code. Le menu de l’équipe montre d’où vient chaque valeur.
  • Entre settings.local.toml et settings.toml : les tables se fusionnent clé par clé, et toute autre valeur de settings.local.toml, une liste comprise, remplace celle de settings.toml.

recruit vérifie les fichiers chaque fois qu’il les lit (pour lancer une équipe, en lister, en rejoindre, en arrêter ou en modifier une, ouvrir le menu…), et s’arrête en nommant le fichier et la raison quand :

  • une clé est inconnue, ou une valeur n’a pas le bon type ;
  • le nom d’une équipe ou d’un membre ne suit pas les règles des noms, ou deux membres d’une équipe ne diffèrent que par la casse ;
  • un membre n’a pas de rôle ;
  • une équipe a plus de deux interlocuteurs ;
  • auto_compact est un nombre hors de 1 à 100 ;
  • config_dir est un chemin relatif ;
  • le tab d’un membre prend le nom d’un onglet de recruit.

Au lancement, il refuse aussi une équipe sans membre, et un config_dir dont le dossier n’existe pas.

recruit écrit aussi dans ces fichiers, depuis recruit new et le menu de l’équipe : il garde leurs commentaires.