Ajoute docs/supervision.md, référencé depuis CLAUDE.md et docs/README.md.
Décrit le rôle de superviseur du projet, distinct des sessions qui codent :
vérifier l'état réel du MCP contre le WMS, réviser leurs livraisons sans les
croire sur parole, et rédiger la passation suivante.
Contient la baseline chiffrée à préserver (23 outils, 6 resources, npm test
4/4) et les mesures de référence du tenant, la boîte à outils de vérification
(handshake MCP, appel d'outil via le protocole, sonde directe de l'API), une
grille de revue en sept points, les six règles de rédaction d'une passation, et
les garde-fous (lecture seule, pas de push, pas de réécriture d'historique).
Consigne les quatre modes d'échec déjà observés sur ce dépôt : taxonomie
inventée, casse de champ supposée, collision de préfixe de routage, hypothèse
présentée comme solution. Ils sont récurrents et se repèrent vite quand on
sait quoi chercher.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Ajoute docs/handoff-lot1.md, le prompt à donner à une nouvelle session Claude
Code pour implémenter le lot 1 de la roadmap. Il vivait jusqu'ici dans un
dossier temporaire de session, donc perdable.
Contient la phase 0 de vérifications préalables (les quatre contextes de
requête, le périmètre applications, le champ ClientModule), les trois
correctifs avec leurs preuves et leurs vérifications attendues, et les
consignes de livraison.
Document à usage unique : à supprimer une fois le lot 1 livré, la référence
durable restant ROADMAP.md.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Nouveaux documents :
- README.md : porte d'entrée humaine, absente jusqu'ici. Objet du projet,
installation, npm test, branchement Claude Desktop, ajout d'un profil WMS,
compilation de l'exécutable.
- DECISIONS.md : 20 décisions et pièges vérifiés sur un WMS réel (D1..D20),
chacun avec son pourquoi. Extrait ce qui était noyé dans CLAUDE.md :
100 % API, tenant_code OAuth, réponses {entities}, casse des propriétés,
dotenv sur stderr, dates relatives LINQ non traduisibles, absence de
CommandParameterData, etc.
- MONITORING.md : supervision du serveur MCP. Préfixes de logs, séquence
d'un démarrage sain, cycle de vie du token OAuth et ses trois filets,
état des caches, table symptôme -> cause. Une section dit explicitement
ce qui n'est pas instrumenté (ni healthcheck, ni métriques, ni alerte).
- docs/logs.md : accès aux logs du WMS. Chemins, placeholder {host},
blocage volontaire sur les profils SaaS, les trois outils, format des
lignes, limites connues.
Mises à jour :
- CLAUDE.md réécrit et aligné sur le code. Correction de l'écart le plus
gênant : le code utilise QueryType 0 (Reading), la doc annonçait 1, soit
l'inverse de ce qui fonctionne pour les comparaisons de statut par
chaîne. Corrigés également : 6 resources et non 7 (workflows://categories
n'existe pas), section .env mono-profil obsolète, références à des
fichiers de test absents, README annoncé mais inexistant. Le suivi de
projet et les checklists de phases sont retirés.
- docs/README.md : index réel du dossier. L'ancien promettait une resource
docs:// qui n'a jamais existé.
- docs/getting_started.md : avertissement en tête, c'est une capture
partielle du portail Mecalux dont les liens internes ne résolvent pas.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Fichiers hors périmètre ou dupliqués :
- suppression des 5 .md dupliqués à la racine (copies md5-identiques de
docs/api/ et docs/entities/)
- suppression de JANITOR_main.js / JANITOR_entities.json (application
Electron sans lien avec le serveur MCP)
- suppression de temp/*.json (dumps de workflows versionnés par accident)
et ajout de temp/ au .gitignore
- suppression de claude_desktop_config_ssh.json : mots de passe en clair et
variables ORACLE_* d'une architecture abandonnée
- AD_API_TEST_RESULTS.md -> docs/ad-api-validation.md (credentials du
snippet remplacés par des variables d'environnement)
- suppression d'IMPLEMENTATION_SUMMARY.md, doublon du précédent
- queries api.php -> docs/reference-queries-api.php (renommage seul)
Code mort :
- suppression de src/resources/documentation.js : la resource docs:// n'a
jamais été branchée dans src/index.js
- suppression de src/config/constants.js : module entièrement inutilisé,
requis par wms-query-service.js mais dont aucune constante n'était lue.
Emporte RESOURCE_URIS.WORKFLOWS_CATEGORIES, URI déclarée jamais servie.
- log-service.js : suppression de findRecentErrors, readFullLog et
getLogStats, exportées mais exposées par aucun outil MCP
- suppression de LOG_FILE_PATTERN (lue depuis .env, jamais appliquée : le
scan filtre sur .log en dur), y compris dans .env.example
- log-service.js : préfixe [Logs] sur les messages, comme les autres modules
Secrets :
- test-ad-api.ps1 -> scripts/test-ad-api.ps1, credentials passés en
paramètres ou par WMS_USERNAME / WMS_PASSWORD au lieu d'être en dur
Build et test :
- @yao-pkg/pkg en devDependency, cible node22-win-x64 : npm run build
échouait faute de pkg, et node20 n'a pas de binaire prébuilt (bascule sur
une compilation de Node qui échoue sans toolchain MSVC)
- index.js : le .env est lu à côté de l'exécutable quand le serveur est
packagé. Avec un chemin statique, pkg embarquait le .env dans le snapshot,
figeant les credentials dans le binaire.
- scripts/test-connection.js : npm test pointait sur un fichier absent.
Smoke test en lecture seule (OAuth, QueryExecute, QueryScalarExecute,
API AD), par profil ou sur tous.
Vérifié après nettoyage : 23 outils et 6 resources répondent au handshake
MCP, npm test passe 4/4 contre le WMS.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>