-
Notifications
You must be signed in to change notification settings - Fork 0
Manifest and Registry
manifest.json is the single contract between the corpus and the router. It is generated — never hand-edited — and CI enforces that the committed copy matches what the generator produces.
Source: manifest.json · scripts/registry/ · schemas/
A machine-readable catalog of the whole corpus. The router scores prompts against this compact index instead of reading every SKILL.md, which is what keeps routing fast (see Performance).
| Key | Meaning |
|---|---|
version |
Schema/catalog version — currently 2.2.8. |
generated |
Generation date — 2026-05-15. |
description |
Human description of the catalog. |
canonical_id_policy |
The kebab-case ID rule (below). |
core_skills |
Array of the 18 core skills. |
library_skills |
Array of the ~1,794 library skills. |
total_skills |
1812. |
alias_count |
Number of legacy aliases. |
routing |
Routing config: primary_access, compatibility_access, search, list. |
| Entry type | Fields |
|---|---|
| Core skill |
name, directory, description, has_scripts, scripts
|
| Library skill |
name, directory, description
|
There are two generated artifacts, kept in lockstep:
| Artifact | Role |
|---|---|
manifest.json |
The full router catalog (~0.67 MB after slimming). |
docs/build_manifest.json |
A slim provenance/build snapshot (~5.6 KB). |
"Canonical skill ids are kebab-case top-level directory names. Legacy display names and old source names are aliases only."
So skills/banner-design/ has canonical ID banner-design, and any old names (ckm-banner-design, ckm:banner-design, "Banner Design") resolve to it through compatibility_aliases.json.
| Field | Purpose |
|---|---|
schema |
universal-ai-skills-aliases/v1. |
generated_at |
Build timestamp. |
aliases |
Map of canonical ID → array of alternate names. |
merged_directories |
Metadata on merged source directories. |
disabled_colliding_aliases |
Aliases dropped due to collisions. |
Alias resolution is exact-match: a legacy or display name is looked up and rewritten to the canonical kebab ID.
The generator lives in scripts/registry/ and is owned by the Go router (skill-router registry build). During the Node → Go migration, the legacy Node generator (generate-registry.mjs) remains as a byte-parity oracle.
make registry-write # regenerate manifest.json + docs/build_manifest.json (Go owner)
make registry-check # verify committed artifacts match (skill-router registry build --check)
make schema # validate every SKILL.md frontmatter against schemas/skill.schema.json
make parity # prove Go output is byte-identical to the Node generatorKey generator files:
| File | Role |
|---|---|
generate-registry.mjs |
Legacy Node generator (parity oracle). |
parity-check.sh |
Proves Go output == Node output, byte-for-byte. |
validate-schema.mjs |
Strict frontmatter validation. |
registry.config.json |
Generation config — the single source of truth. |
lib/frontmatter.mjs |
Shared YAML frontmatter parser. |
Note
The registry-parity CI workflow runs registry build --check and parity-check.sh on any change to skills/**, scripts/registry/**, skill-router-cli/**, or the artifacts themselves. A divergence turns the gate red. See Testing & CI.
schemas/skill.schema.json validates the SKILL.md frontmatter contract (the field table is on the Skills Corpus page). It requires name and description and defines the optional Phase-0 routing fields (domain, tags, triggers, capabilities, quality_tier, supersedes, conflicts, …), currently enforced in warn mode.
- Skills Corpus — what the manifest indexes
-
Skill Router CLI — the
registry buildcommand - Node → Go Migration — why parity matters
Getting started
Concepts
Reference
Project
- Roadmap & Phases
- Node → Go Migration
- Performance & Benchmarks
- Testing & CI
- Contributing
- Security
- Known Issues
Help