Files
MoviePilot/skills/command-dispatch/SKILL.md
jxxghp dc428e7de0 feat(skills): 内置技能支持版本号管理,更新时自动覆盖旧版本
SKILL.md frontmatter新增version字段,同步时比较版本号,
内置版本更高时直接覆盖用户目录中的旧版本。
2026-04-09 07:17:04 +08:00

75 lines
3.5 KiB
Markdown

---
name: command-dispatch
version: 1
description: >-
Use this skill when the user's intent is to execute a system or plugin function. Applicable scenarios include:
1) The user sends a slash command starting with / (e.g. /cookiecloud, /sites, /subscribes, etc.);
2) The user describes an action in natural language that can be fulfilled by a system or plugin command
(e.g. "sync sites", "show subscriptions", "refresh subscriptions", "check downloads", etc.).
This skill helps you identify the user's intent, find the matching command, extract necessary parameters,
and execute the corresponding command.
allowed-tools: list_slash_commands query_plugin_capabilities run_slash_command
---
# Command Dispatch
Use this skill to identify user intent and dispatch the corresponding system or plugin command.
## When to Use
- The user sends a `/xxx` slash command (execute directly)
- The user describes an action in natural language, for example:
- "Sync sites" → `/cookiecloud`
- "Show my subscriptions" → `/subscribes`
- "Refresh subscriptions" → `/subscribe_refresh`
- "What's downloading?" → `/downloading`
- "Organize downloaded files" → `/transfer`
- "Clear cache" → `/clear_cache`
- "Restart the system" → `/restart`
- "Pause all QB tasks" → `/pause_torrents` (plugin command)
## Tools
- `list_slash_commands` — List all available slash commands (system + plugin), returns command name, description, and category
- `query_plugin_capabilities` — Query detailed plugin capabilities (commands, actions, scheduled services)
- `run_slash_command` — Execute a specified command (works for both system and plugin commands)
## Workflow
### Step 1: Identify User Intent
Determine whether the user's message is requesting the execution of a command:
- **Direct command**: Message starts with `/`, e.g. `/sites`, `/subscribes` → skip to Step 3
- **Natural language**: The user describes an actionable request → continue to Step 2
### Step 2: Find Matching Command
Use `list_slash_commands` to retrieve all available commands. Match the user's described intent against the `description` and `category` fields of each command.
If the user's description involves a specific plugin's functionality, additionally use `query_plugin_capabilities` to query that plugin's detailed capabilities.
**Matching strategy**:
- Prefer exact matches on command description
- Then narrow down by category and match
- If no matching command is found, inform the user that no corresponding function is available
### Step 3: Extract Parameters and Execute
Some commands support additional arguments (space-separated after the command), for example:
- `/redo <history_id>` — Manually re-organize a specific record
- `/subscribe_delete <name>` — Delete a specific subscription
Use `run_slash_command` to execute the command in the format `/command_name arg1 arg2`.
### Step 4: Report Result
Command execution is asynchronous. After triggering, inform the user that the command has started. If the command does not exist, list available commands for reference.
## Important Notes
- Command execution requires admin privileges; the tool will automatically check permissions
- Both system and plugin commands are executed via the `run_slash_command` tool — no need to distinguish between them
- If you are unsure which command matches the user's intent, use `list_slash_commands` first to look up before deciding
- Never guess non-existent commands; always select from the available command list