# description
Base shape of the YAML frontmatter block on every node, across all kinds. Kind-specific schemas (`skill`, `agent`, `command`, `hook`, `note`) extend this via `allOf`. camelCase keys throughout. `additionalProperties` is intentionally permissive; the deterministic `unknown-field` rule emits warnings for keys outside the catalog so that the JSON Schema remains shape-only and policy lives in rules.

# properties.type.description
User-declared kind hint. Optional; the adapter may use it to tie-break classification. Free-form string so that new kinds introduced by adapters don't require a spec bump.

# properties.author.description
Primary author. Denormalized into `node.author` for query speed.

# properties.authors.description
Additional authors. MAY include the primary author; consumers dedupe on display.

# properties.license.description
SPDX license identifier (e.g. `MIT`, `Apache-2.0`).

# properties.metadata.description
Structured metadata. REQUIRED. `version` inside is REQUIRED; all other fields are optional.

# properties.metadata.properties.version.description
Semver of this node's content. REQUIRED. Denormalized into `node.version`.

# properties.metadata.properties.specCompat.description
Semver range of spec versions this node targets.

# properties.metadata.properties.supersedes.description
`node.path` values this node replaces. Feeds the `supersedes` link kind.

# properties.metadata.properties.supersededBy.description
`node.path` that replaces this one. Inverse of `supersedes`.

# properties.metadata.properties.source.description
Canonical origin URL (e.g. GitHub blob). Consumed by enrichment plugins for hash verification.

# properties.metadata.properties.sourceVersion.description
Tag, SHA, or branch at the source. Branches are resolved dynamically by enrichment.

# properties.metadata.properties.created.description
ISO 8601 date (`YYYY-MM-DD`) or date-time.

# properties.metadata.properties.updated.description
ISO 8601 date (`YYYY-MM-DD`) or date-time.

# properties.metadata.properties.released.description
ISO 8601 date (`YYYY-MM-DD`) or date-time.

# properties.metadata.properties.requires.description
`node.path` or plugin id values this node depends on.

# properties.metadata.properties.conflictsWith.description
Nodes or plugin ids that MUST NOT be co-enabled with this one.

# properties.metadata.properties.provides.description
Capability tokens this node advertises (free-form strings).

# properties.metadata.properties.related.description
`node.path` values for see-also navigation. No strict semantics.

# properties.metadata.properties.icon.description
Free-form icon hint (emoji, lucide name, URL).

# properties.metadata.properties.priority.description
Higher = surface earlier in UI listings.

# properties.metadata.properties.readme.description
Relative or absolute path to an extended README for this node.