| name | skill-registry-manager |
| description | Maintain the skill library catalog: add entries, update metadata, manage tags, track maturity/status, enforce naming conventions, and generate the library index. Use when adding a new skill to the registry, updating skill metadata after changes, auditing catalog consistency, or generating a publishable skill index. Do not use for editing skill content (edit SKILL.md directly) or for deprecating skills (use skill-deprecation-manager). |
| license | Apache-2.0 |
| compatibility | {"clients":["openai-codex","gemini-cli","opencode","github-copilot"]} |
Skill Registry Manager
Owns the library catalog — the index, metadata, tags, maturity status, and consistency of all skills in the ecosystem.
Procedure
1. Scan skill inventory
find . -name "SKILL.md" -not -path "*/ARCHIVE/*" -not -path "*/node_modules/*" | sort
for skill_md in $(find . -name "SKILL.md" -not -path "*/ARCHIVE/*"); do
dir=$(dirname "$skill_md")
name=$(grep "^name:" "$skill_md" | head -1 | cut -d: -f2- | tr -d ' "')
maturity=$(grep "maturity:" "$skill_md" | head -1 | cut -d: -f2- | tr -d ' ')
echo "$name | $maturity | $dir"
done
2. Validate catalog consistency
For each skill, check:
| Check | Criteria | Severity |
|---|
| Frontmatter exists | YAML between --- delimiters | Error |
name field present | Non-empty string | Error |
description field present | Non-empty, 20-100 words | Error |
| Name matches directory | name field = directory name | Warning |
| No duplicate names | Each name unique across catalog | Error |
| Tags are valid | Tags exist in the controlled vocabulary | Warning |
| Maturity is valid | One of: draft, beta, stable, deprecated | Warning |
3. Register a new skill
When adding a skill to the catalog:
- Verify SKILL.md has required frontmatter (
name, description)
- Assign maturity level (default:
draft)
- Add to
skills-lock.json with metadata snapshot
- Verify no name collision with existing skills
- Update library index
4. Update skill metadata
When a skill changes:
- Read current
skills-lock.json entry
- Update changed fields (description, maturity, tags)
- Record modification timestamp
- Regenerate affected index entries
5. Generate library index
Produce a machine-readable index and a human-readable catalog:
skills-lock.json (machine-readable):
{
"version": "1.0.0",
"generated": "<ISO timestamp>",
"skills": {
"<skill-name>": {
"path": "<relative path>",
"description": "<description>",
"maturity": "<draft|beta|stable|deprecated>",
"tags": ["<tag1>", "<tag2>"],
"license": "<SPDX>",
"last_updated": "<ISO date>"
}
}
}
CATALOG.md (human-readable):
# Skill Catalog
## Active Skills
| Name | Maturity | Description |
|------|----------|-------------|
| [name] | [maturity] | [description] |
## Deprecated Skills
| Name | Replacement | Deprecated Date |
|------|-------------|----------------|
6. Enforce naming conventions
- Skill names: kebab-case, descriptive, 2-4 words
- Directory names match skill names exactly
- No abbreviations unless universally understood (e.g.,
pr, qa)
Output contract
- Updated
skills-lock.json with current catalog state
- Updated
CATALOG.md with human-readable index
- Validation report listing any consistency issues found
Failure handling
- Duplicate skill name: Reject registration, report collision with existing skill
- Missing frontmatter: Flag as invalid, do not register until fixed
- Orphaned lock entries: Remove entries for skills that no longer exist on disk
- Name/directory mismatch: Report as warning, recommend rename
References
- This skill manages the catalog layer — does not modify skill content
- Works with: skill-deprecation-manager (retirement), skill-packager (distribution)