Module 3 · Scripts et fichiers de référenceEnviron 1 min
Pourquoi un script plutôt qu'une consigne
Le langage naturel s’interprète, un script s’exécute. Pour tout ce qui doit être exact (calculs, formats de fichiers, contrôles), un script livré avec la Skill est plus fiable que du code que Claude réécrirait à chaque fois. Il économise aussi du contexte : Claude lance le script et ne reçoit que sa sortie.
Voici le script d’export cité à l’étape 5 de la Skill de Sofia. Il transforme la liste des actions en fichier CSV prêt pour Excel :
python
"""Exporte les actions d'un compte rendu en CSV, séparateur point-virgule, pour Excel."""
import csv
import json
import sys
from pathlib import Path
COLONNES = ["action", "responsable", "echeance"]
def main() -> None:
if len(sys.argv) != 2:
sys.exit("Usage : python3 exporter_actions.py actions.json")
source = Path(sys.argv[1])
if not source.exists():
sys.exit(f"Fichier introuvable : {source}. Écrivez d'abord les actions dans ce fichier.")
actions = json.loads(source.read_text(encoding="utf-8"))
incompletes = [i + 1 for i, a in enumerate(actions) if not all(a.get(c) for c in COLONNES)]
if incompletes:
sys.exit(f"Actions incomplètes (n° {incompletes}) : chacune veut {', '.join(COLONNES)}.")
sortie = source.with_suffix(".csv")
# utf-8-sig : Excel affiche correctement les accents à l'ouverture
with sortie.open("w", newline="", encoding="utf-8-sig") as f:
writer = csv.DictWriter(f, fieldnames=COLONNES, delimiter=";")
writer.writeheader()
writer.writerows({c: a[c] for c in COLONNES} for a in actions)
print(f"{len(actions)} action(s) exportée(s) dans {sortie}")
if __name__ == "__main__":
main()Deux détails comptent. Le script traite les erreurs au lieu de les renvoyer à Claude : chaque message dit quoi corriger. Et la Skill précise s’il faut lancer le script (« lancez ») ou le lire comme référence (« voyez »).
Le chemin du scriptDans Claude Code et Cowork, écrivez
${CLAUDE_SKILL_DIR}/scripts/exporter_actions.py : le chemin se résout où que la Skill soit installée. Dans le chat de claude.ai, le dossier entier est copié dans le bac à sable, et un chemin relatif comme scripts/exporter_actions.py fonctionne.