跳转到内容
Crystal CodeDocs
简简体中文

技能

技能是 OpenCode 兼容的指令目录。它们不是提示覆盖。模型看到可用技能列表,并用 skill 工具加载一个。启用 Skills 时,对 Skills 搜索目录(skill / skills 树,包括不是 SKILL.md 的脚本和其他文件)内任何路径的 read/list/tree/glob/grep/search 会自动放行;它不会询问你。在 config.json 中设置 "skills": false 可禁用该工具、引导和该自动放行。工作区外的其他文件仍然需要审批(由你审批,或在 Review 或 Audit 中由 Review 模型审批)。

每个技能是一个带 SKILL.md 的目录,文件以 YAML frontmatter 开头(name 和 description 必填)。目录名匹配 ^[a-z0-9]+(-[a-z0-9]+)*$(1–64 个字符)时,技能 id 就是目录名。Frontmatter name 可以是该 id 或显示标题,不必与目录匹配。目录名不是有效 id 时,改用有效的 frontmatter name。折叠(>)和字面(|)YAML 描述都被接受。

发现跟随 OpenCode 的全局和项目遍历。后出现的来源用同名覆盖先出现的来源。Crystal 原生路径优先于 OpenCode 兼容路径。

全局:

  1. ~/.claude/skills/<name>/SKILL.md
  2. ~/.agents/skills/<name>/SKILL.md
  3. ~/.config/opencode/{skill,skills}/<name>/SKILL.md(遵循 XDG_CONFIG_HOME)
  4. ~/.opencode/{skill,skills}/<name>/SKILL.md
  5. ~/.crystal/{skill,skills}/<name>/SKILL.md

项目,从工作区向上走到 git 根:

  1. .claude/skills/<name>/SKILL.md
  2. .agents/skills/<name>/SKILL.md
  3. .opencode/{skill,skills}/<name>/SKILL.md
  4. .crystal/{skill,skills}/<name>/SKILL.md

/cd 和 /space 从新工作区重新加载技能和外部工具集。两者,以及进入另一个目录的恢复,都会从该工作区重新加载提示。恢复会根据当前提示文件、当前 <env> 块和当前技能引导刷新第一条系统消息。