编写 Skill
Skill 是带 YAML frontmatter 的 Markdown 文件。模型调用某个 skill 时,DSCC 会把 Markdown 正文注入会话 —— 用 skill 打包可复用的 prompt、清单和领域知识。
发现路径
由 crates/commands/src/lib.rs:1306–1391 的
discover_skill_roots 解析。兼容历史的
commands/ 目录。
| # | 来源 | 路径 |
|---|---|---|
| 1 | 项目祖先目录 | .codex/skills/、.dscc/skills/、.codex/commands/(legacy)、.dscc/commands/(legacy) |
| 2 | $CODEX_HOME |
$CODEX_HOME/skills/、$CODEX_HOME/commands/ |
| 3 | 用户 home | ~/.codex/skills/、~/.codex/commands/、~/.dscc/skills/、~/.dscc/commands/ |
| 4 | Bundled | $DSCC_BUNDLED_SKILLS 指向的目录 |
文件布局
| Origin | 布局 |
|---|---|
SkillsDir |
<root>/<skill-name>/SKILL.md |
LegacyCommandsDir |
单个 .md 文件,或目录内含 SKILL.md(标记为
SkillOrigin::LegacyCommandsDir) |
Schema(Markdown frontmatter)
---
name: my-skill
description: Brief one-line purpose
---
## Instructions
(模型在 skill 被调用时拿到的自由 Markdown)
由 parse_skill_frontmatter 解析。name 和
description 都可省;name 缺省时回退到文件名
stem(或目录名)。
最小可用示例
.dscc/skills/commit-msg/SKILL.md:
---
name: commit-msg
description: Write a Conventional Commit message for the current diff
---
## Instructions
1. Run `git diff --staged`.
2. Summarise the change in one line using `type(scope): subject`.
3. Print the message only, no extra commentary.
调用
| 方式 | 行为 |
|---|---|
/skills(斜杠) |
列出已发现的 skill |
模型调用 Skill
工具(tools.rs:394–406) |
把 Markdown 注入当前上下文;参数
skill: <name>,可选
args: <string> |
验证发现
在 DSCC 中运行
/skills,看列表是否出现。# [交互](REPL
斜杠命令;等价的 dscc skills CLI
子命令可脚本化、无需标记。)
Skill 对比 Agent
| 方面 | Skill | Agent |
|---|---|---|
| 来源 | 带 frontmatter 的 Markdown | TOML 预设 |
| 调用 | Skill 工具 —— 把 prompt 片段加到当前会话 |
Agent 工具 —— 开新线程,带自己的 prompt + 工具集 +
模型 |
| 状态 | 共用调用方的模型与工具 | 有自己 subagent-type 的工具白名单 |
| 输出 | 内联响应 | .dscc-agents/ 下单独的运行产物 |
经验法则:当前这轮需要“加知识或流程“用 skill;工作应该跑在独立线程、用不同工具白名单,用 agent。
另见
- agents.md —— 子进程式 agent。
- guides/slash-commands.md
——
/skills等命令的发现机制。