file-naming-standard
Objectif
Renommer tout fichier produit selon la convention du cabinet juste avant de le livrer, pour que le destinataire reçoive un nom lisible, daté, traçable, et ouvrable sans friction sur sa machine (Windows + SharePoint/OneDrive compris).
La convention
Template exact :
<Client> x <Cabinet>_<Mission> - <Livrable>_YYYYMMDD.<ext>
Exemple :
Meridian Retail x Acme Consulting_Transformation IA - Diagnostic de maturité_20260616.pptx
Configurer le nom du cabinet
<Cabinet> est le seul bloc propre a votre organisation. Le definir une fois :
- variable d'environnement
FIRM_NAME(lue parscripts/build_filename.py), ou - option
--firm "Mon Cabinet"sur le script, ou - une ligne dans le
CLAUDE.mddu projet :Cabinet : Mon Cabinet.
Sans configuration, le script ecrit Firm. Tout le reste de la convention est
independant de l'organisation.
Composants, dans l'ordre :
| Bloc | Séparateur qui suit | Note |
|---|---|---|
<Client> |
x (espace-x-espace) |
nom du client, lisible |
<Cabinet> |
_ |
nom du cabinet, littéral, toujours présent |
<Mission> |
- (espace-tiret-espace) |
nom de la mission |
<Livrable> |
_ |
intitulé du livrable en cours |
YYYYMMDD |
. |
date du jour de livraison |
<ext> |
— | extension d'origine, inchangée |
Pourquoi - et pas : (séparateur Mission/Livrable). Le : est un
caractère interdit dans les noms de fichiers sous Windows (< > : " / \ | ? *)
et il est rejeté/remplacé à la synchronisation SharePoint et OneDrive. Comme les
livrables partent quasi systématiquement chez des clients en environnement
Microsoft 365, le : rendrait le fichier inouvrable ou tronqué côté client. Le
- est un trait d'union simple (pas un em-dash), lu de manière équivalente, et
légal sur tous les systèmes. C'est la seule entorse à la spec d'origine, et elle
est non négociable pour des raisons techniques.
Règles de caractères
Avant assemblage, nettoyer chaque composant (Client, Mission, Livrable) :
- Supprimer / remplacer par un espace les caractères interdits :
< > : " / \ | ? *et les caractères de contrôle. - Conserver les accents et les espaces (livrables clients francophones :
maturité,Données ESG). Ne pas forcer le kebab-case ni le snake_case. - Normaliser les espaces : pas de double espace, pas d'espace en début/fin.
- Pas de point ni d'espace en fin de nom (Windows les tronque).
- Longueur : si le nom complet dépasse ~255 caractères, raccourcir l'intitulé du livrable (jamais le client ni la date).
Si un pipeline aval exige de l'ASCII strict (script fragile, ancien système), proposer une variante sans accents, mais ce n'est pas le défaut.
Détecter le client et la mission
Chercher dans cet ordre de priorité. Ne jamais inventer une valeur.
- CLAUDE.md (racine du projet, ou emplacement standard cowork). Scanner,
dans l'ordre :
- des champs explicites : lignes commençant par
Client,Mission,Nom de mission,Projet,Compte(avec:ou=) ; - le titre H1 du fichier (souvent
# <Client> - <Mission>ou# Projet <Client>) ; - une section
## Contexte/## Contexte projet.
- des champs explicites : lignes commençant par
- Contexte projet / conversation si absent du CLAUDE.md : instructions du projet Claude, brief ou cahier des charges uploadé, premiers messages où l'utilisateur nomme le compte et la mission.
- Demander si rien de fiable ne ressort, OU si plusieurs candidats sont
plausibles (ne pas trancher seul) :
"Pour nommer le livrable : quel est le client et le nom de la mission ? (je n'ai pas trouvé de valeur fiable dans le CLAUDE.md ni le contexte)"
Le livrable (<Livrable>), lui, vient de la tâche en cours (ce que Claude est en
train de produire) : "Diagnostic de maturité", "Compte-rendu COMEX", "Modèle
LBO", etc. Le déduire de la demande ; si ambigu, proposer un intitulé court et
demander validation en une ligne.
Cas particuliers
- Livrable interne (pas de client externe).
<Cabinet> x <Cabinet>n'a pas de sens. Si le client est absent, vaut le nom du cabinet / "interne" / "internal" : produire<Cabinet>_<Mission> - <Livrable>_YYYYMMDD.<ext>(on retire le bloc<Client> x). - Collision le même jour. La date seule ne distingue pas deux livrables
produits le même jour : risque d'écrasement silencieux. Si un fichier de même
nom existe déjà dans le dossier cible, suffixer
_v2,_v3, ... avant l'extension. Ne PAS ajouter_v1au premier (rester fidèle à la spec). - Fichier déjà conforme. Si le fichier porte déjà un nom respectant la convention (même client, mission, date du jour), ne pas le renommer en boucle.
- Plusieurs livrables dans une même session. Appliquer la convention à
chacun, en faisant varier
<Livrable>(et_vNsi collision).
Quand déclencher
Juste avant de rendre un fichier : avant present_files, ou avant d'écrire le
fichier final dans /mnt/user-data/outputs (chat) ou le dossier de livraison
(Cowork). Le renommage s'applique au nom final livré, pas aux fichiers de travail
intermédiaires en /home/claude. Appliquer proactivement, sans attendre une
demande explicite, dès qu'un livrable client ou interne est produit.
Script helper (déterministe)
Pour un nommage déterministe (sanitisation, date, interne, collision gérés en
code plutôt qu'à la main), utiliser scripts/build_filename.py :
FIRM_NAME="Mon Cabinet" python scripts/build_filename.py \
--client "Meridian Retail" \
--mission "Transformation IA" \
--deliverable "Diagnostic de maturité" \
--ext pptx \
[--date 20260616] \
[--ascii] \
[--collision-dir /mnt/user-data/outputs]
Le script imprime le nom final sur stdout. Sans --date, il prend la date du
jour. Sans client (ou client = nom du cabinet / "interne"), il bascule en mode interne.
Avec --collision-dir, il vérifie le dossier et suffixe _vN si besoin.
Le séparateur Mission/Livrable est défini une seule fois en tête du script
(SEP_MISSION_LIVRABLE) : pour revenir à un autre séparateur, le changer là.
Le script est un accélérateur. En l'absence d'exécution de code (chat simple), appliquer la convention en suivant les règles ci-dessus à la main : le résultat doit être identique.
Erreurs fréquentes
- Laisser un
:(ou tout caractère interdit) dans le nom final : le fichier devient inouvrable côté client Windows / SharePoint. Toujours nettoyer. - Inventer un nom de client ou de mission introuvable : un mauvais nom de compte sur un livrable est une faute professionnelle. Demander plutôt que deviner.
- Renommer les fichiers de travail intermédiaires : la convention ne s'applique qu'au livrable final présenté à l'utilisateur.
- Oublier le mode interne et produire
<Cabinet> x <Cabinet>_.... - Écraser un livrable du même jour faute de gérer la collision.
- Replier les accents en ASCII par défaut : on les conserve, sauf besoin explicite d'un pipeline aval.