skill-registry
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePurpose
用途
You generate or update the skill registry — a catalog of all available skills (user-level and project-level) that the orchestrator reads once per session and uses to pass pre-resolved skill paths to sub-agents. Sub-agents do NOT read the registry themselves; the orchestrator resolves all paths and injects them into each sub-agent's launch prompt.
你需要生成或更新技能注册表——这是一个包含所有可用技能(用户级和项目级)的目录,orchestrator会在每个会话中读取一次,并将预解析的技能路径传递给sub-agents。Sub-agents不会自行读取注册表;orchestrator会解析所有路径并将其注入到每个sub-agent的启动提示中。
When to Run
运行时机
- After installing or removing skills
- After setting up a new project
- When the user explicitly asks to update the registry
- As part of (it calls this same logic)
sdd-init
- 在安装或移除技能之后
- 在新建项目完成设置之后
- 当用户明确要求更新注册表时
- 作为的一部分(它会调用相同的逻辑)
sdd-init
What to Do
执行步骤
Step 1: Scan User Skills
步骤1:扫描用户技能
-
Glob forfiles across ALL known skill directories. Check every path below — scan ALL that exist, not just the first match:
*/SKILL.mdUser-level (global skills):- — Claude Code
~/.claude/skills/ - — OpenCode
~/.config/opencode/skills/ - — Gemini CLI
~/.gemini/skills/ - — Cursor
~/.cursor/skills/ - — VS Code Copilot
~/.copilot/skills/ - The parent directory of this skill file (catch-all for any tool)
Project-level (workspace skills):- — Claude Code
{project-root}/.claude/skills/ - — Gemini CLI
{project-root}/.gemini/skills/ - — Antigravity (workspace)
{project-root}/.agent/skills/ - — Generic
{project-root}/skills/
-
SKIPand
sdd-*— those are SDD workflow skills, not coding/task skills_shared -
Also SKIP— that's this skill
skill-registry -
Deduplicate — if the same skill name appears in multiple locations, keep the project-level version (more specific). If both are user-level, keep the first found.
-
For each skill found, read only the frontmatter (first 10 lines) to extract:
- field
name - field → extract the trigger text (after "Trigger:" in the description)
description
-
Build a table of: Trigger | Skill Name | Full Path
-
在所有已知技能目录中全局查找文件。检查以下所有路径——扫描所有存在的路径,而非仅第一个匹配项:
*/SKILL.md用户级(全局技能):- — Claude Code
~/.claude/skills/ - — OpenCode
~/.config/opencode/skills/ - — Gemini CLI
~/.gemini/skills/ - — Cursor
~/.cursor/skills/ - — VS Code Copilot
~/.copilot/skills/ - 此技能文件的父目录(适用于任意工具的兜底路径)
项目级(工作区技能):- — Claude Code
{project-root}/.claude/skills/ - — Gemini CLI
{project-root}/.gemini/skills/ - — Antigravity(工作区)
{project-root}/.agent/skills/ - — 通用路径
{project-root}/skills/
-
跳过和
sdd-*——这些是SDD工作流技能,而非编码/任务技能_shared -
同时跳过——这正是当前技能本身
skill-registry -
去重——若同一技能名称出现在多个位置,保留项目级版本(更具针对性)。若均为用户级,则保留第一个找到的版本
-
对于每个找到的技能,仅读取其前置元数据(前10行)以提取:
- 字段
name - 字段 → 提取触发文本(description中"Trigger:"之后的内容)
description
-
构建表格:触发词 | 技能名称 | 完整路径
Step 2: Scan Project Conventions
步骤2:扫描项目约定
- Check the project root for convention files. Look for:
- or
agents.mdAGENTS.md - (only project-level, not
CLAUDE.md)~/.claude/CLAUDE.md .cursorrulesGEMINI.mdcopilot-instructions.md
- If an index file is found (e.g., ,
agents.md): READ its contents and extract all referenced file paths. These index files typically list project conventions with paths — extract every referenced path and include it in the registry table alongside the index file itself.AGENTS.md - For non-index files (,
.cursorrules, etc.): record the file directly.CLAUDE.md - The final table should include the index file AND all paths it references — zero extra hops for sub-agents.
- 检查项目根目录下的约定文件,查找:
- 或
agents.mdAGENTS.md - (仅项目级,非
CLAUDE.md)~/.claude/CLAUDE.md .cursorrulesGEMINI.mdcopilot-instructions.md
- 若找到索引文件(如、
agents.md):读取其内容并提取所有引用的文件路径。这些索引文件通常会列出带有路径的项目约定——提取所有引用路径,并将其与索引文件本身一同纳入注册表表格AGENTS.md - 对于非索引文件(、
.cursorrules等):直接记录该文件CLAUDE.md - 最终表格应包含索引文件及其所有引用的路径——sub-agents无需额外跳转即可获取信息
Step 3: Write the Registry
步骤3:编写注册表
Build the registry markdown:
markdown
undefined构建注册表Markdown内容:
markdown
undefinedSkill Registry
Skill Registry
Orchestrator use only. Read this registry once per session to resolve skill paths, then pass pre-resolved paths directly to each sub-agent's launch prompt. Sub-agents receive the path and load the skill directly — they do NOT read this registry.
Orchestrator use only. Read this registry once per session to resolve skill paths, then pass pre-resolved paths directly to each sub-agent's launch prompt. Sub-agents receive the path and load the skill directly — they do NOT read this registry.
User Skills
User Skills
| Trigger | Skill | Path |
|---|---|---|
| {trigger from frontmatter} | {skill name} | {full path to SKILL.md} |
| ... | ... | ... |
| Trigger | Skill | Path |
|---|---|---|
| {trigger from frontmatter} | {skill name} | {full path to SKILL.md} |
| ... | ... | ... |
Project Conventions
Project Conventions
| File | Path | Notes |
|---|---|---|
| {index file} | {path} | Index — references files below |
| {referenced file} | {extracted path} | Referenced by {index file} |
| {standalone file} | {path} |
Read the convention files listed above for project-specific patterns and rules. All referenced paths have been extracted — no need to read index files to discover more.
undefined| File | Path | Notes |
|---|---|---|
| {index file} | {path} | Index — references files below |
| {referenced file} | {extracted path} | Referenced by {index file} |
| {standalone file} | {path} |
Read the convention files listed above for project-specific patterns and rules. All referenced paths have been extracted — no need to read index files to discover more.
undefinedStep 4: Persist the Registry
步骤4:持久化注册表
This step is MANDATORY — do NOT skip it.
此步骤为必填项——请勿跳过。
A. Always write the file (guaranteed availability):
A. 始终写入文件(确保可用性):
Create the directory in the project root if it doesn't exist, then write:
.atl/.atl/skill-registry.md若项目根目录下不存在目录则创建它,然后写入:
.atl/.atl/skill-registry.mdB. If engram is available, also save to engram (cross-session bonus):
B. 若engram可用,同时保存至engram(跨会话额外功能):
mem_save(
title: "skill-registry",
topic_key: "skill-registry",
type: "config",
project: "{project}",
content: "{registry markdown from Step 3}"
)topic_keymem_save(
title: "skill-registry",
topic_key: "skill-registry",
type: "config",
project: "{project}",
content: "{registry markdown from Step 3}"
)topic_keyStep 5: Return Summary
步骤5:返回摘要
markdown
undefinedmarkdown
undefinedSkill Registry Updated
Skill Registry Updated
Project: {project name}
Location: .atl/skill-registry.md
Engram: {saved / not available}
Project: {project name}
Location: .atl/skill-registry.md
Engram: {saved / not available}
User Skills Found
User Skills Found
| Skill | Trigger |
|---|---|
| {name} | {trigger} |
| ... | ... |
| Skill | Trigger |
|---|---|
| {name} | {trigger} |
| ... | ... |
Project Conventions Found
Project Conventions Found
| File | Path |
|---|---|
| {file} | {path} |
| File | Path |
|---|---|
| {file} | {path} |
Next Steps
Next Steps
The orchestrator reads this registry once per session and passes pre-resolved skill paths to sub-agents via their launch prompts.
To update after installing/removing skills, run this again.
undefinedThe orchestrator reads this registry once per session and passes pre-resolved skill paths to sub-agents via their launch prompts.
To update after installing/removing skills, run this again.
undefinedRules
规则
- ALWAYS write regardless of any SDD persistence mode
.atl/skill-registry.md - ALWAYS save to engram if the tool is available
mem_save - SKIP ,
sdd-*, and_shareddirectories when scanningskill-registry - Only read frontmatter (first 10 lines) — do NOT read full skill files
- Include ALL convention index files found (not just the first)
- If no skills or conventions are found, write an empty registry (so sub-agents don't waste time searching)
- Add to the project's
.atl/if it exists and.gitignoreis not already listed.atl
- 无论SDD持久化模式如何,始终要写入
.atl/skill-registry.md - 若工具可用,始终要保存至engram
mem_save - 扫描时跳过、
sdd-*和_shared目录skill-registry - 仅读取前置元数据(前10行)——请勿读取完整技能文件
- 纳入所有找到的约定索引文件(而非仅第一个)
- 若未找到任何技能或约定,写入空注册表(避免sub-agents浪费时间搜索)
- 若项目的已存在且未列出
.gitignore,则将.atl添加进去.atl/