c6428533a0
Classe fermée `agent-fiche-role-attrs-ungated` (sous-classe colonne CLI). La colonne « Entrée CLI » des tables de livrables cite à la main le jeu de verbes de chaque module (`publiciste.py parse|validate|generate|run`, `faisabilite_gen.py score|scaffold|generate|batch`, …). Les blocs amont gatent déjà génériquement — pour TOUTES les fiches — les colonnes « Tests » (vs regression_plan) et « Job CI » (vs ci.yml), mais RIEN ne liait les VERBES écrits aux sous-commandes que le CLI EXPOSE. Piège #6 : renommer/ajouter/retirer/réordonner un add_parser dans le .py (ou le mal recopier dans la fiche) laisse la fiche documenter une surface d'invocation FANTÔME — la doc d'identité qui dit à l'agent COMMENT lancer son livrable ment en silence, le CI reste vert (le module tourne sous le vrai verbe), aucune suite tests/ ne l'attrape. Gate ajoutée (ci/check_readme_claims.sh, bloc « colonne Entrée CLI ») : _cli_subcommands() recompute via AST l'ensemble ORDONNÉ des subparsers.add_parser("<verbe>") ; script résolu par le chemin de module de la MÊME ligne de table (lien …/<path>/README.md) + basename ; égalité EXACTE ensemble ET ordre exigée ; `|` markdown échappés `\|` dé-échappés avant découpe. 16 cellules gatées (6 fiches ; regex [a-z0-9_] capte audit_5d/4big_gen.py). 7 morsures vérifiées, restaurées vert : fiche renomme/ajoute/retire/réordonne un verbe (4) · le vrai « vert trompeur » add_parser renommé dans le .py fiche inchangée (5) · nouveau add_parser non documenté (6) · script déplacé => INTROUVABLE (7). 6 gates re-verts. ci/README.md catalogue mis à jour. Incident : un git checkout large a reverté l'edit non-commité du gate ; ré-appliqué (git clean JAMAIS utilisé · ci-allow sur le log). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>