| name | fable-guard |
| description | Contrôle et consulte fable-guard, le garde-fou qui détecte quand Claude Fable 5 bascule automatiquement vers Opus 4.8 (faux positif du classifier de sécurité) et notifie l'agent + l'utilisateur. Sous-commande optionnelle : on, off, status (défaut si absente). Trigger : /fable-guard, "active fable-guard", "désactive fable-guard", "statut fable-guard".
|
fable-guard
Détecte via le hook Stop un switch silencieux Fable 5 → Opus 4.8 (signal
structurel type=="system" + subtype=="model_refusal_fallback" dans le
transcript, jamais du texte). Ce skill pilote le toggle par session et affiche
l'état.
Argument optionnel après /fable-guard : on, off, ou status. Lis-le dans
le message de l'utilisateur. Absent → traite comme status. Valeur ni on ni
off ni status → traite comme status et signale que l'argument n'est pas
reconnu.
Setup (fais ça d'abord, dans tous les cas)
Exécute via Bash pour récupérer le contexte de session :
session_id="$(basename -- "$CLAUDE_CODE_SESSION_ID")"
config_dir="${CLAUDE_CONFIG_DIR:-$HOME/.claude}"
state_dir="$config_dir/hooks/fable-guard-state"
flag_file="$state_dir/$session_id.flag"
history_file="$state_dir/history.jsonl"
Si $session_id est vide, dis à l'utilisateur que tu ne peux pas identifier la
session ($CLAUDE_CODE_SESSION_ID non exposé) et arrête-toi là.
off
mkdir -p "$state_dir"
printf 'off' > "$flag_file"
Confirme : détection désactivée pour cette session (le Stop hook ne notifiera
plus tant qu'elle ne sera pas réactivée).
on
rm -f "$flag_file"
Confirme : détection active pour cette session (état par défaut).
status (défaut)
- État : si
$flag_file existe ET contient exactement off → "désactivé pour
cette session". Sinon → "actif pour cette session" (comportement par
défaut, y compris si le fichier n'existe pas).
- Historique : si
$history_file existe, cherche la dernière ligne dont
sessionId correspond à $session_id ; à défaut, la dernière ligne dont
cwd correspond au répertoire courant (pwd). Si trouvée, affiche
timestamp + originalModel → fallbackModel. Sinon indique qu'aucun switch
n'a été détecté pour cette session/ce projet.
Ton
Réponds en français, bref. Si le mode caveman est actif dans cette session,
reste en caveman ; sinon phrases courtes normales. Pas de blabla.