dsc discovers skill files (SKILL.md) from multiple ecosystem directories at session start. Skills are listed in the system prompt’s static prefix so the model can reference them by name and open the full instructions with read_file when needed.
Skills are scanned in priority order (project-level before home-level, dsc-native before cross-tool):
Project-level ($CWD/<dir>):
.deepseek/skillsskills.opencode/skills.claude/skills.agents/skillsHome-level ($HOME/<dir>):
.deepseek/skills.claude/skills.opencode/skills.agents/skillsSame-name skills are deduplicated: the first occurrence wins (project-level beats home-level; .deepseek beats .claude).
A SKILL.md file can use optional frontmatter:
---
name: my-skill
description: Short description of what this skill does
---
# My Skill
Full instructions here...
name is required in frontmatter.description is optional.# heading is used as the name.Only the skill name, description, and file path are injected into the system prompt. The full skill body is not loaded into the prompt — the model opens it with read_file on demand. This keeps the prompt compact and cache-friendly.
Discovered skills are automatically promoted to slash commands. Typing /skill-name in the TUI submits the skill’s body as the prompt. User-defined commands (from .deepseek/command/) take priority over skills with the same name.
The ## Skills section is placed in the static prefix of the system prompt (before the dynamic context boundary). This means: