Skills
A skill is a Markdown file with YAML frontmatter. When the model invokes a skill, DSCC injects the Markdown body into the conversation — use skills to package reusable prompts, checklists, and domain knowledge.
Discovery paths
Resolved by discover_skill_roots at
crates/commands/src/lib.rs:1306–1391. Legacy
commands/ directories are still accepted for backwards
compatibility.
| # | Source | Paths |
|---|---|---|
| 1 | Project ancestors | .codex/skills/, .dscc/skills/,
.codex/commands/ (legacy), .dscc/commands/
(legacy) |
| 2 | $CODEX_HOME |
$CODEX_HOME/skills/,
$CODEX_HOME/commands/ |
| 3 | User home | ~/.codex/skills/, ~/.codex/commands/,
~/.dscc/skills/, ~/.dscc/commands/ |
| 4 | Bundled | directory at $DSCC_BUNDLED_SKILLS |
File layout
| Origin | Layout |
|---|---|
SkillsDir |
<root>/<skill-name>/SKILL.md |
LegacyCommandsDir |
either a single .md file, or a directory with
SKILL.md inside (tagged
SkillOrigin::LegacyCommandsDir) |
Schema (Markdown frontmatter)
---
name: my-skill
description: Brief one-line purpose
---
## Instructions
(free-form Markdown that the model receives when the skill is invoked)
Parsed by parse_skill_frontmatter. Both
name and description are optional; if
name is missing it falls back to the filename stem (or
directory name).
Minimal working example
.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.
Invocation
| How | What it does |
|---|---|
/skills (slash) |
Lists discovered skills |
Model calls Skill tool
(tools.rs:394–406) |
Injects the skill’s Markdown into the current context; takes
skill: <name> and optional
args: <string> |
Verify discovery
Run /skills inside DSCC and look for your skill in the
list. # [交互] (REPL slash command; the CLI equivalent
dscc skills is scriptable and unmarked.)
Skills vs Agents
| Aspect | Skill | Agent |
|---|---|---|
| Source | Markdown with frontmatter | TOML preset |
| Invocation | Skill tool — adds prompt fragment to current
conversation |
Agent tool — spawns a new thread with its own prompt +
tool set + model |
| State | Shares the caller’s model and tools | Has its own subagent-type tool allowlist |
| Output | Inline response | Separate run artifact under .dscc-agents/ |
Rule of thumb: use a skill to add knowledge or a procedure to the current turn; use an agent when the work should run on its own thread with a different tool allowlist.
See also
- agents.md — subprocess-like agents.
- guides/slash-commands.md —
how
/skillsand related commands are discovered.