mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-05-31 21:21:59 +08:00
75 lines
3.5 KiB
Markdown
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
|