@deepseek-ai/dsh-tool-skill
The model-facing skill catalog and skill tool.
Requires ctx.tools and ctx.skills (inject: ['tools', 'skills']).
Session-prefix catalog
The plugin contributes one user-role <system-reminder> catalog through agent/session-prefix. It resolves skills for the calling session's cwd, forwards the prefix abort signal to discovery, and lists only sorted name and description entries; skill bodies, paths, sources, providers, and whenToUse hints remain outside the catalog. The catalog is omitted when no model-invocable skills are available, and also when that agent's tool view restricts away the shipped skill tool or resolves a same-name scoped shadow instead. This exact-definition check keeps prompt guidance, the model-visible schema, and executable dispatch aligned.
catalogDescriptionMaxLength controls normalized, XML-escaped catalog descriptions. Its default is 500 and values must be integers of at least 3, which reserves room for a truncation ellipsis. The session-prefix RFC defines the request-only, header-logged lifecycle of this message.
Tool: skill
| Arg | Type | Notes |
|---|---|---|
name |
string (required) | Exact kebab-case skill name from the available skills listing. |
Execution uses the calling agent's session.header.cwd so workspace-sensitive providers resolve the winning skill. A successful call returns one text result containing <skill_content name="...">, <skill_resources>, and <skill_instructions>.
Resource guidance resolves only paths or URLs explicitly referenced by the instructions against resourceBase; scripts, references, and assets load on demand, and the result does not enumerate a skill directory. Local providers may supply a directory, while remote or embedded providers may supply a URL or opaque loading guidance.
An unresolved name reports that the skill is unknown or no longer available. Invalid names and disableModelInvocation: true skills produce distinct error results.
The tool does not call agent.inject() in v1. Its result is already recorded as the tool result and becomes available to the next model step without duplicating the content as synthetic context.