Tighten catalog entry schema after divergence sweep #37

Merged
piersdd merged 1 commit from feat/svd-gh-36-re-tighten-catalog-entry-schema-json-after-div-de3b6a6b into main 2026-07-16 12:56:15 +00:00
piersdd commented 2026-07-16 12:48:20 +00:00 (Migrated from github.com)

Summary

  • normalize all tool entries with explicit plugin types, canonical author types, and array-only service metadata
  • tighten catalog-entry validation for type, tier, author_type, services, and documented nullable contract/repository escapes
  • retarget make validate to the catalog-entry schema and fail fast
  • add regression coverage for all formerly accepted divergent shapes

Residual divergent entries

  • blender-mcp and youtube-mcp-server retain contract: null because no canonical contract maps their semantics
  • xbox-openxbl-mcp retains repository: null because no verified source repository exists; recommend an operator decide remove-vs-keep separately
  • linear-mcp and slack-mcp use repository: null because they are vendor-hosted remote MCPs with no verified source repository in the entry metadata

Additional corpus fixes

  • apple-docs-mcp and mcp-nixos now declare tier: community, matching their existing community author classification

Verification

  • node --test scripts/catalog-entry.schema.test.js
  • node --test scripts/build-catalog.test.js scripts/build-catalog.non-conformance.test.js scripts/domain-scope.test.js
  • npm test (194 passed, 15 skipped, 0 failed)
  • make validate (59 entries passed)
  • node scripts/build-catalog.js (59 plugins built; isolated worktree had no sibling stallari-packs checkout)

Closes #36

## Summary - normalize all tool entries with explicit plugin types, canonical author types, and array-only service metadata - tighten catalog-entry validation for type, tier, author_type, services, and documented nullable contract/repository escapes - retarget make validate to the catalog-entry schema and fail fast - add regression coverage for all formerly accepted divergent shapes ## Residual divergent entries - blender-mcp and youtube-mcp-server retain contract: null because no canonical contract maps their semantics - xbox-openxbl-mcp retains repository: null because no verified source repository exists; recommend an operator decide remove-vs-keep separately - linear-mcp and slack-mcp use repository: null because they are vendor-hosted remote MCPs with no verified source repository in the entry metadata ## Additional corpus fixes - apple-docs-mcp and mcp-nixos now declare tier: community, matching their existing community author classification ## Verification - node --test scripts/catalog-entry.schema.test.js - node --test scripts/build-catalog.test.js scripts/build-catalog.non-conformance.test.js scripts/domain-scope.test.js - npm test (194 passed, 15 skipped, 0 failed) - make validate (59 entries passed) - node scripts/build-catalog.js (59 plugins built; isolated worktree had no sibling stallari-packs checkout) Closes #36
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Stallari/plugins!37
No description provided.