Capability Discovery Metadata (CDM-001)
Use this skill when designing, generating, or validating discovery metadata used by the Console Workbench palette, the Capabilities Catalog page, and MCP tool catalogs.
When to Use
- •Adding or updating an OCS capability’s
metadatafor discoverability - •Adding or updating a blueprint descriptor’s
metadatafor discoverability - •Building generators/CI gates that validate taxonomy deterministically
- •Generating the deterministic
tool-catalog.jsonartifact
Instructions
- •Follow the normative requirements in
references/cdm-001.md. - •Treat
metadata.idas canonical (NIS-001) and derive everything deterministically. - •Prefer generators to populate and validate taxonomy to prevent drift (GSS-001).
- •Keep the catalog deterministic:
- •No timestamps (use a constant)
- •Stable ordering: (domain, subdomain (undefined last), id)
- •Stable schema conversion (Zod → JSON Schema) with no
$refindirection
What’s enforced today (CI + generators)
- •
Deterministic catalog drift gate:
- •The committed artifact at
packages/tools/mcp-server/src/manifest/tool-catalog.jsonMUST match regenerated output. - •Fix: run
pnpm -w nx run mcp-server:generate-tool-catalogand commit the result.
- •The committed artifact at
- •
Strict source-level taxonomy gate (with temporary allowlist):
- •Capabilities MUST declare
metadata.domain(and tags MUST include that domain), unless the ID is in:- •
policies/cdm-001-domain-allowlist.json
- •
- •Blueprints MUST declare
descriptor.metadata.domain/subdomain/tags(this repo’s built-in descriptors have been migrated).
- •Capabilities MUST declare
How to regenerate the deterministic catalog
Run:
bash
pnpm -w nx run mcp-server:generate-tool-catalog
This writes:
- •
packages/tools/mcp-server/src/manifest/tool-catalog.json
How to migrate off the allowlist (recommended workflow)
For each allowlisted capability:
- •Add
metadata.domainand (optionally)metadata.subdomainin the capability definition. - •Ensure
metadata.tagsincludesmetadata.domain. - •Remove the capability ID from
policies/cdm-001-domain-allowlist.json. - •Regenerate the tool catalog:
- •
pnpm -w nx run mcp-server:generate-tool-catalog
- •
- •Run tests (at minimum):
- •
pnpm -w vitest run packages/tools/mcp-server/src/manifest/cdm-001-strict-domain.test.ts
- •
Common taxonomy conventions (project-specific)
- •Capabilities:
- •ID shape:
golden.<domain>[.<subdomain>].<name> - •
metadata.domainMUST equal the segment aftergolden.
- •ID shape:
- •Blueprints:
- •ID shape examples:
workflows.<name>,blueprints.<area>.<name> - •
metadata.domainis the first segment (workflows,blueprints)
- •ID shape examples: