Skip to content

fix(registry): align server.json with the published registry entry, and gate its description - #337

Merged
cdeust merged 2 commits into
mainfrom
fix/registry-description-and-doc-claims
Aug 2, 2026
Merged

fix(registry): align server.json with the published registry entry, and gate its description#337
cdeust merged 2 commits into
mainfrom
fix/registry-description-and-doc-claims

Conversation

@cdeust

@cdeust cdeust commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Contexte

L'entrée hypermnesia-mcp du registre MCP officiel a été republiée en 4.17.1 le 2026-08-02. Deux écarts constatés entre le server.json du dépôt et ce qui est publié / ce que le schéma autorise :

  1. description non conforme — le schéma du registre plafonne le champ à 100 caractères, la description GitHub (290-380 car.) n'est donc pas copiable telle quelle ; la version courte publiée n'était pas reflétée dans le dépôt.
  2. websiteUrl absent — l'entrée publiée pointe vers https://ai-architect.tools.

Sans ce commit, le dépôt et le registre divergent silencieusement : rien ne le détecte.

Changements

  • server.json : description alignée sur l'entrée publiée (≤ 100 car.) + ajout de websiteUrl.
  • scripts/check_doc_claims.py : la gate n'assertait que la version de server.json. Elle asserte désormais aussi sa description, de sorte qu'une dérive du claim mécanisme dans ce fichier échoue en CI comme dans les autres documents scannés.
    • MECHANISM_CLAIM ne matchait pas « 36 cited neuroscience mechanisms » ni le chapô README « 36 cited brain mechanisms » — le qualificatif cited est rendu optionnel.

Vérification

  • scripts/check_doc_claims.py → exit 0.
  • Vérifié par falsification : en passant le compte à 35, la gate sort en exit 1. Le test n'est donc pas vacuous.
  • ruff check + ruff format --check propres.
  • Entrée du registre revérifiée par API après publication : active, sha256 juste.

Note

Ces deux commits étaient sur fix/release-workflow-network-hardening, dont la PR #335 a été mergée en squash avant qu'ils ne soient inclus. Ils sont ici rebasés proprement sur main.

🤖 Generated with Claude Code

cdeust and others added 2 commits August 2, 2026 15:13
The description still advertised "72 references" — a figure the doc-claim gate
already corrected everywhere else to a 97-reference bibliography behind 36
mechanisms (see CHANGELOG "Stale documentation claims corrected"). server.json
escaped it because check_doc_claims.py only asserts that file's `version` field.
Rewritten to lead with the measured 36 mechanisms, within the schema's 100-char
description cap.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
server.json is served verbatim by the MCP registry, so a stale number in its
description is published to every registry client. The gate only asserted that
file's `version` field, which is how the description kept advertising "72
references" — two corrections behind the 97-reference bibliography — and shipped
that way to the registry.

Adding it to SCANNED_FILES was not enough on its own: MECHANISM_CLAIM did not
match the qualified phrasing ("36 cited neuroscience mechanisms"), so the claim
parsed as no claim at all. The same blind spot covered the README lede's "36
cited brain mechanisms", never asserted against the canonical count either.
`cited` is now an optional qualifier.

Verified by falsification: rewriting the description to 35 fails the gate with
"server.json:4: advertises 35 mechanisms, canonical is 36" (exit 1).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@cdeust
cdeust merged commit 03a558a into main Aug 2, 2026
30 of 31 checks passed
@cdeust
cdeust deleted the fix/registry-description-and-doc-claims branch August 2, 2026 13:44
cdeust added a commit that referenced this pull request Aug 2, 2026
…he build (#338)

Both image builds pre-cache the embedding model with a single-shot network
fetch. A transient huggingface.co blip therefore fails the build outright:
CI run 30749502167 (PR #337, 2026-08-02) died on "We couldn't connect to
'https://huggingface.co'" after 73s, on a commit whose diff touched neither
Dockerfile nor any of their dependencies. Re-running the same job with no
code change passed — the fetch, not the change, decided the outcome.

ci.yml already solved this in four places (attempts + backoff + loud
failure). The Dockerfiles were the paths that never got it. This mirrors
that idiom verbatim, constants included, and cites it as the source.

The devcontainer image gets the same treatment for its FlashRank prewarm:
failing loudly after the retries is deliberate there, since a silently
unprewarmed image reproduces the 2026-07-11 silent-reranker incident one
layer up.

No BuildKit cache mount: the runtime stage COPYs the HF cache out of the
builder layer, and a cache mount is not part of the layer.

scripts/setup.sh performs the same fetch but is deliberately left alone —
it already degrades to "will download on first use" instead of failing, so
retries would buy no correctness and cost up to 100s of silent wait in an
interactive installer.

Verified: both RUN bodies joined the way Docker joins continuations parse
under `sh -n`; all three `python -c` payloads compile; the retry helper
returns 0 on the success path and propagates non-zero after exhausting
attempts.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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.

1 participant