OrchaLe code

// CLAUDE CODE

Ton .claude déclare des choses qui ne tournent plus.

Un plugin déclaré actif dont le code a disparu du disque. Un agent sans description. Une étape de workflow dont le fichier manque. Claude Code les accepte en silence — aucun avertissement, code de retour 0. Orcha fait la soustraction entre ce que tu as déclaré et ce qui charge vraiment.

  • Libre et gratuit, licence MIT
  • Rien ne quitte ta machine
  • Node 20 suffit
~/.claude · ./CLAUDE.mdinventaire — exemple

Charge147

  • compétences~/.claude/skills35
  • agents~/.claude/agents32
  • commandes~/.claude/commands30
  • règles de permissionsettings.json40
  • hookssettings.json6
  • pluginsinstalled_plugins.json3
  • instructions./CLAUDE.md1

Sans effet3

  • dev-methodology@claude-configplugin · claude-config
    • plugin déclaré, cache absent — Inscrit dans enabledPlugins, mais ~/.claude/plugins/cache/claude-config n'existe pas sur le disque. Ses 16 compétences ne chargent pas.
  • relecteurutilisateur · ~/.claude/agents
    • agent sans description — Claude choisit un agent d'après sa description, et d'après elle seule. Sans description, il ne sera jamais appelé.
  • lancer · étape 4utilisateur · ~/.claude/skills
    • étape déclarée, fichier absent — etapes/mise-en-ligne.md est nommé dans le SKILL.md ; le fichier n'est pas là. L'étape ne s'exécutera jamais.

Il lit ce que Claude Code lit.

Aucune configuration. Orcha ouvre les mêmes fichiers que ton binaire, au même endroit.

Les fichiers réellement lus

  • ~/.claude/settings.json
  • ~/.claude/plugins/installed_plugins.json
  • ~/.claude/plugins/cache/
  • .claude/du projet
  • cwdle champ des transcriptions

Ce qu'il inventorie

  • compétences
  • agents
  • commandes
  • hooks
  • règles de permission
  • plugins
  • fichiers d'instructions

Vérifié sur Claude Code 2.1.227.

Tout ce qui est déclaré, avec sa provenance.

35 compétences, 32 agents, 30 commandes, 40 règles de permission, les hooks, les plugins, les fichiers d'instructions. Chaque ligne porte sa portée : ce qui vient de ton dossier personnel, du .claude du projet, d'un plugin, ou de Claude Code lui-même.

~/.claude/skills · ~/.claude/agentsinventaire — extrait

Compétences35

  • grillingutilisateur · ~/.claude/skills168 lignes

    Passer au gril un plan ou une décision : interroger jusqu'à épuisement des questions.

  • ideeprojet · .claude/skills94 lignes

    Capturer une idée de micro-SaaS dans le vault, sous forme de fiche.

  • ui-snappingplugin · lp-builder212 lignes

    Assembler une page à partir de composants existants plutôt que tout recoder.

Agents32

  • migrateurutilisateur · ~/.claude/agents

    Fait passer un schéma d'une version à la suivante, une migration à la fois.

  • market-analystplugin · lp-builder

    Analyse concurrentielle d'une niche, puis blueprint de conversion.

  • Exploreintégré · Claude Code

    Recherche en lecture seule : localise le code, ne le relit pas.

Puis la suite du même inventaire : 30 commandes, 40 règles de permission, 6 hooks, 4 plugins déclarés, 1 fichier d'instructions — chacun avec sa portée.

Et ce qui est là sans rien faire.

Chaque écart affiche la règle qui l'a détecté. Pas de verdict sans sa raison — un outil qui annonce une panne inexistante est pire que pas d'outil.

~/.claudeécarts

Sans effet3

  • dev-methodology@claude-configplugin · claude-config
    • plugin déclaré, cache absent — Inscrit dans enabledPlugins, mais ~/.claude/plugins/cache/claude-config n'existe pas sur le disque. Ses 16 compétences ne chargent pas.
  • relecteurutilisateur · ~/.claude/agents
    • agent sans description — Claude choisit un agent d'après sa description, et d'après elle seule. Sans description, il ne sera jamais appelé.
  • lancer · étape 4utilisateur · ~/.claude/skills
    • étape déclarée, fichier absent — etapes/mise-en-ligne.md est nommé dans le SKILL.md ; le fichier n'est pas là. L'étape ne s'exécutera jamais.

Les étapes d'une compétence, dans leur ordre réel.

Le point de départ suit la déclaration du SKILL.md, pas l'ordre des fichiers. Une transition que l'étape ne confirme pas est marquée comme telle. Une étape dont le fichier manque ne s'exécutera jamais : elle apparaît.

~/.claude/skills/lancer/SKILL.mdplan du workflow
  1. point de départ, déclaré dans le SKILL.md

    1Cadrer la fiche

    etapes/cadrage.md · 84 l.

  2. 2Créer le dépôt

    etapes/depot.md · 61 l.

  3. 3Écrire le produit

    etapes/produit.md · 132 l.

    • /grilling
    • migrateur
  4. transition non confirmée par l'étape
    4Mettre en ligne

    etapes/mise-en-ligne.md · fichier absent

Un hook qui se tait quand tout va bien.

183 lignes, aucune dépendance — la bibliothèque standard suffit. Il lit enabledPlugins, vérifie sur disque que chaque installPath existe, et n'ouvre la bouche qu'en cas d'écart. Il vit hors de tout plugin : un plugin mort ne charge pas ses propres hooks, donc ne peut pas signaler sa mort.

~/.claude/hooks/veille-orcha.pySessionStart
  • 183 lignes
  • aucune dépendance
  • stdlib seule

Au démarrage d'une session, s'il trouve un écart :

orcha — 1 écart

dev-methodology@claude-config est déclaré actif,
et son installPath n'existe pas sur le disque :
~/.claude/plugins/cache/claude-config

Ses 16 compétences ne chargeront pas cette session.

Le reste du temps :

aucune sortie — le hook se tait
npx orcha-cli

// LA MESURE QUE PERSONNE NE FAIT

Les diagnostics intégrés ne mentent pas. Ils regardent ailleurs.

Le cas est daté. Un plugin inscrit dans enabledPlugins depuis le 14 juillet, dont la charge utile avait disparu du disque. Relevé sur une seule machine — la mienne — sur 1 057 transcriptions :

avant le 14 août

1 / 976

transcriptions où la méthodo est appelée

à partir du 14 août

51 / 81

transcriptions où la méthodo est appelée

Un mois sans méthodo, et rien ne l'a dit.

Ce que fait chaque outil devant le cas
OutilDevant un plugin déclaré dont le code a disparu
claude doctor« No installation issues found »
/doctor en sessionSon prompt exclut les erreurs de chargement de plugin. Aurait recommandé de le désactiver : zéro invocation
/plugin, onglet ErrorsNe lève rien. Range le plugin sous « Not used recently »
/contextDécrit la session qu'il vient d'ouvrir. Pas de --json, aucun contrat de format
claude plugin list --jsonRépare en silence avant d'afficher, puis annonce enabled: true
cc-harnessSon contrôle hook-script-missing est du code mort : aucun site d'appel
claudelint et les autresValidation de schéma, proxy, transcriptions. Aucun ne fait la soustraction
OrchaConfronte le déclaré au présent sur le disque, et nomme l'écart

Orcha ne calcule pas l'état effectif complet — c'est impossible depuis le disque seul, une couche de réglages administrés est délivrée à la connexion. Il dit « voici un écart certain », jamais « voici tout ce qui tourne ».

// MISE EN ROUTE

Ce qu'il touche sur ton disque, avant que tu l'installes.

  1. Il écoute 127.0.0.1 uniquement.

    Ce n'est pas du confort : aucune action n'est authentifiée, donc sur 0.0.0.0 n'importe qui sur ton réseau pourrait réécrire un SKILL.md — c'est-à-dire déposer des instructions que Claude Code exécuterait à la session suivante.

  2. La lecture ne touche à rien.

    Aucun secret n'est ouvert : ni jeton, ni clé d'API, ni contenu de .secrets/.

  3. L'écriture passe trois garde-fous.

    Avant d'écrire une ligne : hors des racines .claude connues, hors d'un SKILL.md, dans un plugin. Puis fichier temporaire et renommage — une session qui lit au même instant ne voit jamais un fichier à moitié écrit.

  4. Il refuse d'écrire dans un plugin, et affiche pourquoi.

    Un plugin est un clone de dépôt : la modification serait écrasée au prochain claude plugin update, en silence.

Installer

npx orcha-cli

Rien à cloner, rien à configurer. La commande télécharge l'outil, le démarre sur 127.0.0.1 et ouvre ton navigateur. Node 20 ou plus suffit — l'outil entier tourne dessus. Seule la veille au démarrage, facultative, demande en plus un python3 : son hook est un script Python, et l'écran Veille dit s'il est présent sur ta machine.

Le code est ouvert, sous licence MIT — lis-le avant de le lancer, c'est un outil qui écrit dans ton ~/.claude.

// OBJECTIONS

« claude doctor ne suffit pas ? »
Sur la machine en panne, il répondait « No installation issues found ». Il ne regarde ni les plugins, ni les compétences, ni les agents.
« C'est gratuit. Où est le piège ? »
Il n'y en a pas. Le code est publié sous licence MIT, l'outil tourne chez toi, il n'a ni compte, ni télémétrie, ni serveur à joindre. Il est né d'une panne vécue : le rendre payant aurait demandé plus de travail que de le donner.
« Qu'est-ce qui part sur le réseau ? »
Une question, une réponse. Ton compte a-t-il payé — oui ou non. Rien de ton dossier .claude ne quitte la machine : le service n'a d'ailleurs aucune base de données.
« Ça répare les écarts ? »
Non. Il nomme la commande de réparation ; il ne la lance jamais à ta place.
« Ça modifie tout ? »
Non, et c'est la limite du moment : seules les compétences sont modifiables depuis l'interface. Agents, commandes, hooks et règles de permission restent en lecture seule. La veille, elle, ne couvre que les plugins.
« Ça me donne l'état complet de ma configuration ? »
Non. Une couche de réglages administrés est délivrée à la connexion, sans fichier local, et il faut y ajouter les arguments CLI et l'environnement. Aucun outil lisant le disque ne dira « voici l'état effectif ». Orcha dit « voici un écart certain », ce qui est plus étroit et vérifiable.

// L'AUTEUR

Vincent Avez

J'ai écrit Orcha parce que j'ai perdu un mois sans le savoir. Un plugin inscrit dans mes réglages depuis le 14 juillet, dont la charge utile avait disparu du disque : aucun avertissement, code de retour 0. Je ne l'ai vu qu'en comptant mes propres transcriptions, un mois plus tard.

Rien de rare, et il faut le dire : n'importe qui utilisant Claude Code sérieusement a le même matériau. J'avais seulement la panne, datée, et l'envie de ne plus la revivre en silence.

vincent.avez22@gmail.com — une vraie adresse, qui répond.

Tu sauras ce qui tourne vraiment.

Installe-le, lis tout, gratuitement. Achète quand tu voudras modifier.

  • Libre et gratuit, licence MIT
  • Rien ne quitte ta machine
  • Node 20 suffit