Communitygithub.com

brnyxx/xout

Xoutez définitivement les comportements d'IA indésirables grâce à un compilateur CLAUDE.md/AGENTS.md basé sur la falsification, avec reçus de preuve.

Qu'est-ce que xout ?

xout est une compétence pour agents (Claude Code, Cursor, etc.) qui remplace le questionnement traditionnel par des paires de comportements contrastées et falsifiables. L'utilisateur n'a qu'une seule action : « X-out » (biffer) la proposition qu'il refuse. En 15 coups, le système converge automatiquement vers une configuration optimale parmi 6,561 combinaisons possibles définies par 8 axes de comportement. Contrairement aux approches itératives classiques, xout ne fait aucun appel réseau ni LLM pendant la session : tout est enregistré localement dans un journal d'événements append-only situé dans `~/.claude/xout/`. Le point d'entrée principal est une boucle interactive : `pair` (affiche deux options) → l'utilisateur choisit `strike <left|right|both|pair>` → répétition jusqu'à `session_complete`. Les règles résultantes sont ensuite appliquées via `enable --grant`, avec un mécanisme de `rollback` propre. La commande `probe` permet de mesurer l'impact réel des règles choisies en appelant un runner externe (ex. `claude -p`) et en stockant les reçus dans `~/.claude/xout/probes/`. Les conflits avec les fichiers de règles existants sont signalés par `conflicts`.

Compatible avec✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI✓OpenCode
npx skills add brnyxx/xout

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

xout - Session X

xout présente des paires contrastées falsifiables au lieu de questions, et ne nécessite qu'une seule action de la part de l'utilisateur : "X-out" (biffer). La configuration Claude Code (espace d'hypothèses à 8 axes, 6 561 combinaisons) converge ainsi. Pendant la session, zéro appel LLM et zéro appel réseau externe – tout se déroule localement dans un journal d'événements append-only.

Règles d'exécution

Avant de démarrer une session, exécutez impérativement : python3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" status pour vérifier la bannière de réexamen en attente. Si elle est présente, transmettez-la à l'utilisateur en une seule ligne.

La session se déroule en mode interactif (chat) :

  1. Exécutez python3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" pair pour obtenir un JSON. Les champs clés sont : pair.left_text, pair.right_text et pair.pair_id.
  2. Affichez les deux textes de comportement textuellement à l'utilisateur et demandez-lui sur lequel il souhaite mettre une X.
  3. Enregistrez uniquement le choix explicite de l'utilisateur avec : python3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" strike <left|right|both|pair> --pair-id <pair_id>
  4. Répétez les étapes 1 à 3 jusqu'à ce que session_complete soit true dans la réponse JSON.
  5. Une fois terminée, affichez les 8 lignes de rules et demandez si l'utilisateur souhaite les appliquer. Appliquez-les uniquement s'il répond oui, avec enable --grant.

Si l'utilisateur préfère travailler directement dans le terminal, indiquez-lui la commande unique xout (ou uvx xout) – le journal étant partagé, on peut s'arrêter et reprendre plus tard.

ArgumentExécutionCommandeDescription
(aucun) ou chatBoucle avant-planLa boucle interactive ci-dessus (pair → choix utilisateur → strike)Une session incomplète reprend, sinon nouvelle session de 15 strikes
statusSortie avant-planpython3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" statusRésumé atterrissage/activation/reprise/jugement
sessionsSortie avant-planpython3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" sessionsListe des sessions récentes
doctorSortie avant-planpython3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" doctorDiagnostic local installation/données/replay
enableSortie avant-planpython3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" enable --grantAjoute une seule ligne @import dans CLAUDE.md, sur demande explicite
undo ou rollbackSortie avant-planpython3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" undoSupprime uniquement la ligne @import ajoutée par xout

Si la sortie status affiche une bannière "N en attente de réexamen"

Transmettez le contenu de la bannière à l'utilisateur en une seule ligne avant d'ouvrir la session, et informez-le qu'il peut lancer un réexamen depuis le terminal avec xout recheck. C'est à l'utilisateur de décider – ne décidez pas à sa place.

À la fin de la session

  • Les artefacts atterrissent uniquement dans le répertoire ~/.claude/xout/ (XOUT.md + manifest.json + settings.xout.json).
  • L'activation dans le CLAUDE.md de l'utilisateur se fait uniquement via enable --grant du lanceur ci-dessus, en ajoutant une seule ligne @import. À exécuter seulement si l'utilisateur donne son accord explicite.
  • Le rollback utilise uniquement undo du même lanceur (supprime cette ligne).
  • Avant application, conflicts [chemin] peut montrer les lignes en conflit avec les fichiers de règles du projet (CLAUDE.md/AGENTS.md/.cursorrules) sous forme fichier:ligne. En cas de conflit direct, le projet prévaut – le préambule de XOUT.md le dit déjà.
  • L'impact réel des règles sur les réponses est mesuré par probe – une commande optionnelle qui appelle un runner externe (par défaut claude -p) en dehors de la session. Ne l'exécuter que si l'utilisateur le demande ; les reçus restent dans ~/.claude/xout/probes/.

À ne pas faire

  • Ne pas X-out à la place de l'utilisateur – le X est son acte de falsification.
  • Ne pas éditer directement CLAUDE.md ou settings.json – cela violerait le contrat de propriété de xout.
  • Ne pas résumer ou reformuler le texte des paires – le texte original est l'outil de mesure.

Skills associés