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) :
- Exécutez
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" pairpour obtenir un JSON. Les champs clés sont :pair.left_text,pair.right_textetpair.pair_id. - Affichez les deux textes de comportement textuellement à l'utilisateur et demandez-lui sur lequel il souhaite mettre une X.
- 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> - Répétez les étapes 1 à 3 jusqu'à ce que
session_completesoittruedans la réponse JSON. - Une fois terminée, affichez les 8 lignes de
ruleset demandez si l'utilisateur souhaite les appliquer. Appliquez-les uniquement s'il répond oui, avecenable --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.
| Argument | Exécution | Commande | Description |
|---|---|---|---|
(aucun) ou chat | Boucle avant-plan | La boucle interactive ci-dessus (pair → choix utilisateur → strike) | Une session incomplète reprend, sinon nouvelle session de 15 strikes |
status | Sortie avant-plan | python3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" status | Résumé atterrissage/activation/reprise/jugement |
sessions | Sortie avant-plan | python3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" sessions | Liste des sessions récentes |
doctor | Sortie avant-plan | python3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" doctor | Diagnostic local installation/données/replay |
enable | Sortie avant-plan | python3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" enable --grant | Ajoute une seule ligne @import dans CLAUDE.md, sur demande explicite |
undo ou rollback | Sortie avant-plan | python3 "${CLAUDE_PLUGIN_ROOT}/scripts/xout_plugin.py" undo | Supprime 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 --grantdu lanceur ci-dessus, en ajoutant une seule ligne @import. À exécuter seulement si l'utilisateur donne son accord explicite. - Le rollback utilise uniquement
undodu 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 formefichier: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éfautclaude -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.