The skill registry is the index that makes auto-loading work. It implements a build-once / read-cheaply pattern: running the registry is relatively expensive (it reads everyDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/lnardev/opencode-config-agent/llms.txt
Use this file to discover all available pages before exploring further.
SKILL.md in every known skill directory), but once built, the resulting .atl/skill-registry.md is a single lightweight file the orchestrator reads once per session and caches in memory. Every subsequent sub-agent delegation is cheap — the compact rules are already digested, matched, and injected directly into each prompt without touching the filesystem again.
When to Run
Run the skill-registry after any of these events:- Installing or removing a skill
- Setting up a new project for the first time
- After
/sdd-initcompletes - When the user says “update skills”, “skill registry”, “actualizar skills”, or “update registry”
What It Scans
User-Level (Global) Skill Directories
The registry checks all of these on every run — it scans ALL paths that exist, not just the first match:| Tool | Path |
|---|---|
| OpenCode | ~/.config/opencode/skills/ |
| Claude Code | ~/.claude/skills/ |
| Gemini CLI | ~/.gemini/skills/ |
| Cursor | ~/.cursor/skills/ |
| VS Code Copilot | ~/.copilot/skills/ |
Project-Level Skill Directories
| Tool | Path |
|---|---|
| Claude Code | {project-root}/.claude/skills/ |
| Gemini CLI | {project-root}/.gemini/skills/ |
| Antigravity / generic | {project-root}/.agent/skills/ |
| Generic fallback | {project-root}/skills/ |
Project-level skills take priority over user-level skills with the same name. If both exist, only the project-level version appears in the registry.
Skipped Directories
The scanner always skips:sdd-*directories — SDD workflow skills, not coding/task skills_shared— internal shared utilities for the SDD workflowskill-registryitself — the registry doesn’t index itself
Convention Files
After scanning skill directories, the registry also checks the project root for agent convention files:| File | Notes |
|---|---|
AGENTS.md / agents.md | Index file — all referenced paths are extracted and included |
CLAUDE.md | Project-level only (not ~/.claude/CLAUDE.md) |
.cursorrules | Cursor convention file |
GEMINI.md | Gemini CLI convention file |
copilot-instructions.md | VS Code Copilot convention file |
AGENTS.md) is found, the registry reads it, extracts every referenced file path, and includes all of them in the Project Conventions table — so sub-agents have zero extra hops to discover project rules.
What It Produces
The registry generates.atl/skill-registry.md with three sections:
.atl/skill-registry.md Format
How the Orchestrator Uses the Registry
Read once at session start
The orchestrator reads
.atl/skill-registry.md (or queries engram for topic_key: "skill-registry") at the start of a session or on its first delegation. The entire registry is loaded into the session cache.Cache compact rules in memory
The pre-digested Compact Rules section is kept in memory for the duration of the session. No further filesystem reads are needed for skill injection.
Match and inject on every sub-agent launch
For each sub-agent delegation, the orchestrator matches the registry’s User Skills table by code context (file extensions, paths) and task context (what the agent will do), then copies the matching compact rules blocks into the prompt as
## Project Standards (auto-resolved) — before the task-specific instructions.Triggering an Update
Say any of these phrases in chat to rebuild the registry:"update skills""skill registry""actualizar skills""update registry"
/sdd-init when setting up a new project — it calls the registry logic as part of initialization.
Engram Integration
If themem_save tool is available, the registry also saves to engram after writing the file:
topic_key means every subsequent registry update is an upsert — only one observation ever exists per project. The orchestrator queries engram first (mem_search → mem_get_observation) and falls back to .atl/skill-registry.md if engram is unavailable or the topic is not found.
When the skill-registry runs, it adds
.atl/ to the project’s .gitignore if the file exists and .atl is not already listed. The skill registry is a generated build artifact — it should not be committed to version control.