Skill Registry — The Map
The registry at data/registry.json is the single source of truth for all skill metadata in the infrastructure. Every other skill reads from or writes to the registry through the patterns documented here.
Registry Location
The registry file path relative to this plugin's root:
data/registry.json
Read the references/registry-schema.md file for the full JSON schema and field definitions.
Operations
Browse / Search
Read data/registry.json and present skills to the user.
Browse all:
- Read registry, extract all skill entries
- Present as a formatted table: name, type, source, health_status, lifecycle status, composite_score, estimated_tokens_total
- Group by domain tags if domains exist
Search / Filter:
- Accept filter criteria:
domain:<tag>,type:<knowledge|action|orchestrator>,source:<custom|external|self>,health:<healthy|warning|critical>,status:<active|deprecated|archived> - Apply filters to registry entries
- Present matching results as formatted table
Add Skill
Register a new skill in the catalog.
- Verify the SKILL.md file exists at the given path
- Run
scripts/analyze-skill.sh <path>to compute metrics - Parse YAML frontmatter from SKILL.md to extract: name, description, tools
- Determine skill type from content analysis:
- knowledge: no
tools:field in frontmatter (passive, read-only) - orchestrator: body mentions launching agents or multi-phase workflows
- action: has
tools:field in frontmatter (default)
- knowledge: no
- Determine source:
- self: skill is inside this plugin's
skills/directory - custom: skill is in a user-created plugin or project
- external: skill is in an official/installed plugin
- self: skill is inside this plugin's
- Create registry entry with all fields (see schema reference)
- Set lifecycle status to
active, health_status tohealthy(pending first health check) - Set initial ratings: auto_score computed from metrics, manual_rating null
- Append changelog entry:
{date, action: "created", note: "Initial registration"} - Write updated registry back to
data/registry.json
Update Skill
Re-scan an existing skill to refresh its metrics and metadata.
- Find the skill entry in registry by name or path
- Re-run
scripts/analyze-skill.shon its SKILL.md - Re-parse frontmatter for any metadata changes
- Update metrics, preserve manual_rating and relationships
- Recompute auto_score and composite_score
- Append changelog entry with what changed
- Write updated registry
Remove Skill
Remove a skill from the registry.
- Find the skill entry by name
- Clean up relationships: remove this skill from other entries'
referenced_by,depends_on, etc. - Remove the entry from the skills map
- Update network domain indexes
- Append no changelog (entry is gone) — but log the removal action to stdout
- Write updated registry
Note: This only removes the registry entry. It does NOT delete the actual skill files. For full deprecation/archival, use the deprecation lifecycle.
Deprecate Skill
Mark a skill as deprecated with optional replacement.
- Find the skill entry by name
- Set
statustodeprecated - Set
deprecated_dateto current date - Set
replacement_skillif provided - Set
deprecation_reasonif provided - Append changelog entry
- Write updated registry
Sync (Full Scan)
Discover all SKILL.md files and reconcile with registry.
- Run
scripts/scan-skills.shwith the plugin root as an additional directory - For each discovered SKILL.md:
- If not in registry: run Add Skill workflow
- If in registry: run Update Skill workflow (refresh metrics)
- For each registry entry:
- If SKILL.md no longer exists at recorded path: flag as WARNING, do not auto-remove
- Update
last_scantimestamp in registry root - Report: skills added, skills updated, skills missing
For a full system-wide scan (including all installed plugins), use the Agent tool to launch the registry-scanner agent (from agents/registry-scanner.md) which handles the broader filesystem search.
Auto-Score Computation
Read skills/infrastructure/skill-dashboard/references/rating-rubric.md for
the human-readable scoring model; mcp-server/shared.py is the executable
source of truth. In brief, auto_score (0-100) blends structure, depth,
connectivity, freshness, and feedback. Usage is retained for observability but
has zero scoring weight. Composite score blends auto (60%) with a 1-100 manual
rating (40%) when available.
Output Formatting
When presenting registry data to the user, use formatted ASCII tables:
┌─────────────────┬────────┬──────────┬────────┬───────┬────────┐
│ Name │ Type │ Health │ Status │ Score │ Tokens │
├─────────────────┼────────┼──────────┼────────┼───────┼────────┤
│ skill-registry │ action │ healthy │ active │ 85 │ 1,200 │
│ skill-health │ action │ healthy │ active │ 92 │ 980 │
└─────────────────┴────────┴──────────┴────────┴───────┴────────┘