Skip to content

fix(compteurs): registre MCP régénéré (104) + garde-fou anti-dérive — vitrine item 2#49

Merged
remigit55 merged 1 commit into
masterfrom
fix/vitrine-02-compteurs
Jun 13, 2026
Merged

fix(compteurs): registre MCP régénéré (104) + garde-fou anti-dérive — vitrine item 2#49
remigit55 merged 1 commit into
masterfrom
fix/vitrine-02-compteurs

Conversation

@remigit55

Copy link
Copy Markdown
Collaborator

Item 2 — Compteurs : un seul chiffre, dérivé du registre source

Implements: vitrine-02-compteurs

Diagnostic (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 via lib/mcp/registry.ts → TOTAL) = 101, committé avant l'ajout de bpm.anomalyAlert, bpm.liveGauge, bpm.approvalFlow.
  • generate-mcp-registry.mjs mappe 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

  • Régénération de mcp-registry.json104. Diff propre et vérifié : exactement +3 composants (anomalyalert, livegauge, approvalflow), 0 retiré, 0 donnée d'un composant existant modifiée (hors generatedAt).
  • Garde-fou anti-dérive : 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 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é par validate-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).
  • Diff registre audité par script (cf. ci-dessus).

Je m'arrête pour revue avant l'item 3 (changelog généré).

https://claude.ai/code/session_01R2zjjDD1srqhoMnFx8LWx9


Generated by Claude Code

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
@remigit55
remigit55 merged commit b6b5465 into master Jun 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants