fix(compteurs): registre MCP régénéré (104) + garde-fou anti-dérive — vitrine item 2#49
Merged
Merged
Conversation
Réconcilie le compte de composants : un seul chiffre dérivé du registre source. - lib/generated/mcp-registry.json était périmé (101) — généré avant l'ajout de bpm.anomalyAlert, bpm.liveGauge, bpm.approvalFlow au catalogue. Le serveur MCP (lib/mcp/registry.ts → TOTAL) annonçait donc 101 alors que le site affiche 104 (bpm-components.json). Régénéré : 104 = 104, diff propre (exactement +3 composants, aucune donnée d'un composant existant modifiée). - Garde-fou : gate-docs-sync.py vérifie désormais aussi mcp-registry.json (régénère + diff vs commit), avec neutralisation de l'horodatage generatedAt. Le registre ne pourra plus dériver silencieusement. Note : ces 3 composants n'ont pas encore d'entrée dans la couche sémantique (lib/semantics/bpm-semantics.json, 101/104). Cette couche est curée à la main et, selon sa propre règle, « jamais arrêtée en autonomie » — la curation des 3 entrées est laissée à une décision humaine (hors compteurs). Implements: vitrine-02-compteurs https://claude.ai/code/session_01R2zjjDD1srqhoMnFx8LWx9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Item 2 — Compteurs : un seul chiffre, dérivé du registre source
Implements: vitrine-02-compteursDiagnostic (vérifié dans le code)
L'écart 104 vs 101 n'était pas un problème d'appariement mais un fichier périmé :
lib/generated/bpm-components.json(catalogue, source du site) = 104.lib/generated/mcp-registry.json(lu par le serveur MCP vialib/mcp/registry.ts → TOTAL) = 101, committé avant l'ajout debpm.anomalyAlert,bpm.liveGauge,bpm.approvalFlow.generate-mcp-registry.mjsmappe pourtant tout le catalogue sans filtre → le fichier committé était simplement en retard. C'est pour ça que le serveur MCP annonçait « 101 composants » (chaîne${TOTAL}, dynamique) alors que le site affichait 104.Correctif
mcp-registry.json→ 104. Diff propre et vérifié : exactement +3 composants (anomalyalert,livegauge,approvalflow), 0 retiré, 0 donnée d'un composant existant modifiée (horsgeneratedAt).gate-docs-sync.pyvérifie désormais aussimcp-registry.json(régénère + diff vs commit), avec neutralisation de l'horodatagegeneratedAt. Le registre ne pourra plus diverger silencieusement du catalogue.Résultat : 104 partout — catalogue (site),
mcp-registry.json, et l'annonce du serveur MCP. Aucun compte codé en dur (les seuls « 101/104 » du repo sont des valeurs de données de démo dans les graphiques).Sous-jacent surfacé (volontairement pas corrigé ici)
Les 3 mêmes composants n'ont pas d'entrée dans la couche sémantique (
lib/semantics/bpm-semantics.json: 101/104, confirmé parvalidate-semantics.py). Cette couche est curée à la main et son en-tête stipule explicitement : « Valeurs PROPOSÉES par la boucle, jamais arrêtées en autonomie ». Je ne fabrique donc pas ces 3 entrées : elles relèvent d'une décision humaine de curation (rôle, frame Ω, indicateur, guidance). Le registre gère proprement l'absence de sémantique (champ optionnel) — le compte reste honnête à 104.👉 Si tu veux, je peux préparer 3 entrées sémantiques proposées (status
needs-curation, avec question de curation) dans une PR distincte que tu valides ligne à ligne — c'est la voie conforme à la gouvernance du fichier.Validation
tsc --noEmit: 0 ;npm run build✅.gate-docs-sync.py: ALL PASS pour les 3 fichiers (llms.txt, bpm-components.json, mcp-registry.json).Je m'arrête pour revue avant l'item 3 (changelog généré).
https://claude.ai/code/session_01R2zjjDD1srqhoMnFx8LWx9
Generated by Claude Code