Les commandes
Chaque commande s’écrit avec une barre oblique suivie de son nom — /drm-generate, /categories-fiscales — et se lance depuis la conversation ou depuis le terminal de l’interface. Cette page est régénérée depuis les fiches des commandes elles-mêmes : ce qu’elle annonce existe, et ses exemples sont ceux des fiches. Les noms de base y sont remplacés par <instance> : à vous d’y mettre la vôtre.
La déclaration du mois
/drm-generate — Génère la DRM d’un mois — les balances des comptes principaux d’un entrepositaire (stock de début, entrées et sorties par nature, stock de fin) lues dans son instance DISTILIBRE et reportées telles quelles, sans jamais…
# Aperçu : lit les comptes, affiche, n'écrit rien
python3 drm_generate.py --instance <instance> --month 8 --year 2026
# Enregistre la DRM dans la base unique (statut « generee »)
python3 drm_generate.py --instance <instance> --month 8 --year 2026 --confirmer
/dtiplus-generate — Génère XML DTI+ v19 avec quadruplet (XML + table N-1→N + rapport + SQLite) — contrat de sortie 4-couches, CAP-1 à CAP-9
python3 ticket_mensuel.py --instance <instance> # aperçu, rien n'est créé
python3 ticket_mensuel.py --instance <instance> --confirmer
/drm-extract — Extrait données DRM depuis PDF — parser générique, fallback pour continuité RG9 ou audit
/drm-reconcile — Rapprochement générique DRM ↔ Tryton multi-EA : extrait les DRM (via SQLite ou PDF), requête les produits Tryton actuels (MCP), les matching par libellé/TAV, détecte les gaps (customs_tariff_code, eu_excise_code…
# Multi-EA, dernier mois disponible
/drm-reconcile
# EA spécifique, mois donné
/drm-reconcile --ea <n° d'accise> --month 6 --year 2026
# Avec PDF fallback
/drm-reconcile --ea <n° d'accise> --pdf /path/to/drm.pdf
/drm-consolidate — Rapprochement multi-DRM : croise les DRM CIEL déposées (PDF) avec la comptabilité matières DISTILIBRE sur plusieurs mois pour prouver la table de correspondance libellés personnalisés ↔ produits, chiffrer les écarts…
python3 ~/.claude/skills/drm-consolidate/consolidate.py --instance <instance> --year 2026 --pdf-glob "~/temp/<instance>/<n° d'accise>_2026_[2-5].pdf"
Les taux, les catégories et les pertes
/categories-fiscales — Affiche le tableau légal des catégories fiscales des produits alcooliques (catégorie et sous-catégorie fiscales, plage de TAV, catégorie accise UE, nomenclature combinée, code taxe, base juridique) et le taux applicable…
# Tableau complet à aujourd'hui
python3 categories_fiscales.py
# À une date donnée
python3 categories_fiscales.py --date 2026-01-01
# Filtres
python3 categories_fiscales.py --categorie rhum
/maj-taux-excise — Bascule datée d’un taux d’accise DISTILIBRE (account.stock.eu.excise.tax.rate) : clôt daté l’ancien taux, crée un nouveau taux daté avec la formule corrigée, joint la source légale en pièce jointe.
# Une seule taxe
python3 ~/.claude/skills/maj-taux-excise/maj_taux.py --code CIEL_ALCOOLS_AUTRES_INF_18 --date-effet 2026-01-01 --instance <instance>
# Les 8 correspondances 2025 -> 2026 approuvées (chantier 2026)
python3 ~/.claude/skills/maj-taux-excise/maj_taux.py --tous-2026 --instance <instance>
# Sur une base de PRODUCTION — drapeau explicite obligatoire
python3 ~/.claude/skills/maj-taux-excise/maj_taux.py --tous-2026 --instance <instance> --production
/franchise-pertes — Calcule les plafonds de déduction de pertes d’alcool (art. 50-0 K/L, annexe IV CGI) directement depuis des DRM déjà déposées — jamais de connexion Tryton.
# Depuis les DRM déjà en base (cas normal)
franchise_pertes.py --ea <n° d'accise> --year 2026 --months 2-6 --init-month 2 --mp-contenant cuves
# Depuis des PDF directs, si pas encore importés en base
franchise_pertes.py --drm-glob "/chemin/DRM_2026_*.pdf" --months 2-6
/part-des-anges — Franchise de pertes d’alcool (la « part des anges ») : chiffre depuis la comptabilité matières DISTILIBRE la franchise applicable aux pertes CONSTATÉES, par catégorie (élaboration, conditionnement, stockage — art. 50-0…
python3 ~/.claude/skills/part-des-anges/optimise_pertes.py --instance <instance> --year 2026 --months 2-6 --init-month 2 --mp-contenant bois
# ou, pour réutiliser des séries déjà extraites (rapide) :
python3 ~/.claude/skills/part-des-anges/optimise_pertes.py ... --series-json /chemin/series_prod.json
/peupler-libelle-fiscal — Peuple la table libelle (distilibre.db) pour un entrepositaire, en rattachant chaque libellé personnalisé rencontré dans ses DRM à sa catégorie fiscale DTI+ (code XSD officiel) et son TAV.
peupler_libelle.py --ea <n° d'accise> # peuple pour de vrai
peupler_libelle.py --ea <n° d'accise> --dry-run # aperçu, rien écrit
Écrire et suivre
/gitlab-tickets — Crée des tickets (issues) et des commentaires GitLab en appliquant toutes les règles VERSATIL : brouillon obligatoire avant tout post, classification MUGECO, vérification du bon moment (planification-taches)…
python3 poster_commentaire.py --projet 77147399 --issue 20 --corps message.md
python3 poster_commentaire.py --projet 77147399 --issue 20 --corps message.md --confirmer
/planification-taches — Vérifie l’horaire ouvré, les absences connues d’un contact et un éventuel regroupement d’envois avant tout envoi externe (mail, commentaire GitLab), et calcule l’heure la moins chargée pour planifier un job récurrent.
/planification-taches --check-heure | --check-contact NOM --date DATE | --pending-pour NOM | --heure-optimale
/ton-versatil — Applique la voix VERSATIL à toute production écrite destinée à être lue par quelqu’un : tickets et commentaires GitLab, courriels, pages du site, documents de projet, rapports.
/typofr — Traduit en français tout fichier Markdown (.md) qui n’est pas déjà rédigé en français, et applique les règles de typographie française sur la ponctuation (espaces insécables, guillemets « », apostrophes typographiques…
/versioning — Ajoute et tient à jour systématiquement les champs created et updated dans l’en-tête YAML (front-matter) de tout fichier Markdown (.md) de ce dépôt — même convention que les gabarits BMAD.
/audit-typo-fr — Audite et corrige la typographie française et la langue dans tous les fichiers .md du projet
/bilan-temps-travail — Reconstruit un bilan de temps de travail vérifié (facturable) à partir des transcripts Claude Code, avec cache SQLite pour ne jamais recalculer un jour déjà clos.
/bilan-temps-travail [--days N | --since DATE --until DATE]
/freeplane — Lit une carte mentale Freeplane (.mm) et restitue une branche telle qu’elle a été consignée — texte, citations, sources, dates de saisie, jugements portés par les icônes et natures portées par les styles.
S=~/.claude/skills/freeplane
CARTE="~/data/veille/VERSO-20260601-DISTILIBRE v7.0.99.mm"
# ce que contient une branche, avant de la lire en entier
python3 $S/lire_carte.py "$CARTE" --id ID_85444515 --format inventaire
Tryton au quotidien
/app-tiers — Manipule les Tiers dans app.versatil.fr (Tryton 7) via l’API JSON-RPC
/dstl-nouvelle-vente — Créer ou dupliquer une vente dans Versatil (Tryton 7) via l’API JSON-RPC
/lire-dernier-mail — Lire le dernier mail d’un expéditeur dans une boite mail IMAP
Les outils du terminal
Ils se lancent hors conversation, depuis un terminal ; --help donne leurs options. Sans confirmation, ils montrent ce qu’ils feraient et n’écrivent rien.
python3 bin/pennylane-synchro.py --help — Connecteur DISTILIBRE → Pennylane : importe les factures DISTILIBRE chez Pennylane.
python3 bin/pennylane-synchro.py --instance <instance> # aperçu : le plan, rien d'écrit
python3 bin/pennylane-synchro.py --instance <instance> --confirmer # exécution (le cron passe --confirmer)
python3 bin/pennylane-synchro.py --instance <instance> --production --confirmer
python3 bin/pennylane-preparer-copie.py --help — Prépare une copie de base DISTILIBRE au connecteur Pennylane.
python3 bin/pennylane-preparer-copie.py --instance <instance> # aperçu
python3 bin/pennylane-preparer-copie.py --instance <instance> --confirmer
python3 bin/pennylane-preparer-copie.py --instance <instance> --confirmer --jeu-essai-<instance>
python3 bin/info-accises.py --help — Vérification d’un numéro d’accise sur douane.gouv.fr/info-accises.
python3 bin/nomenclature-combinee.py --help — Accès à la nomenclature combinée (NC) de l’Union européenne.
python3 bin/nomenclature-combinee.py --chapitre 22
python3 bin/nomenclature-combinee.py --chapitre 22 --format csv --sortie chap22.csv
python3 bin/nomenclature-combinee.py --position 2208 --format markdown
python3 bin/corriger-nomenclature-produit.py --help — Corrige la nomenclature combinée et la contenance de produits Tryton.
python3 bin/corriger-nomenclature-produit.py --instance <instance> --plan plan.json
python3 bin/corriger-nomenclature-produit.py --instance <instance> --plan plan.json --appliquer
Ce qu’une commande ne fait jamais sans vous
Toute commande qui écrit — en base, dans une déclaration, sur un ticket — montre d’abord ce qu’elle ferait et n’écrit qu’avec une confirmation explicite. Une commande qui touche une instance la nomme toujours : aucune ne choisit seule entre une base de production et une copie de travail.