mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 23:47:41 +08:00
feat: add skills marketplace management
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
---
|
||||
name: create-moviepilot-skill
|
||||
version: 1
|
||||
description: >-
|
||||
Use this skill when the user asks to create, scaffold, update, or review a
|
||||
MoviePilot agent skill. This includes adding a new built-in skill under the
|
||||
repository `skills/` directory, editing an existing built-in skill, writing
|
||||
`SKILL.md` frontmatter and workflow instructions, choosing `allowed-tools`,
|
||||
adding helper scripts when needed, and bumping the built-in skill `version`
|
||||
so changes can sync into `config/agent/skills`.
|
||||
allowed-tools: list_directory read_file write_file edit_file execute_command
|
||||
---
|
||||
|
||||
# Create MoviePilot Skill
|
||||
|
||||
This skill guides you through creating or updating a built-in MoviePilot agent
|
||||
skill in this repository.
|
||||
|
||||
## Scope
|
||||
|
||||
Use this workflow for repository built-in skills:
|
||||
|
||||
- Create or update files under `skills/<skill-id>/`
|
||||
- Commit the skill as part of the MoviePilot repository
|
||||
- Do not place the implementation only in `config/agent/skills` unless the user
|
||||
explicitly asks for a local override instead of a built-in skill
|
||||
|
||||
## MoviePilot-Specific Rules
|
||||
|
||||
- The repository root `skills/` directory is the bundled source of truth for
|
||||
built-in skills.
|
||||
- On agent startup, bundled skills are synced into `config/agent/skills`.
|
||||
- Sync overwrite depends on the `version` field in `SKILL.md`. If you update an
|
||||
existing built-in skill, increment `version`, or users may continue using an
|
||||
older copied version.
|
||||
- Keep the folder name and frontmatter `name` identical. Use lowercase letters,
|
||||
digits, and hyphens only.
|
||||
- Prefer extending an existing skill instead of creating an overlapping
|
||||
duplicate.
|
||||
|
||||
## Workflow
|
||||
|
||||
### Step 1: Understand the Request
|
||||
|
||||
- Determine whether the user wants a new skill or a change to an existing one.
|
||||
- Extract the target task, likely trigger phrases, needed tools, and whether
|
||||
helper scripts are necessary.
|
||||
- If the goal is still ambiguous after reading the request and local context,
|
||||
ask one focused clarification question. Otherwise proceed with a reasonable
|
||||
default.
|
||||
|
||||
### Step 2: Check Existing Skills First
|
||||
|
||||
- Inspect the repository `skills/` directory before creating anything new.
|
||||
- If an existing skill already covers most of the workflow, update it instead of
|
||||
adding a near-duplicate.
|
||||
- Reuse the repository style: concise YAML frontmatter, trigger-rich
|
||||
description, and procedural body sections.
|
||||
|
||||
### Step 3: Choose the Skill ID and Path
|
||||
|
||||
- New built-in skill path: `skills/<skill-id>/SKILL.md`
|
||||
- Keep `<skill-id>` short, hyphen-case, and under 64 characters.
|
||||
- Use a verb-led or domain-led name that makes the trigger obvious, such as
|
||||
`transfer-failed-retry`, `moviepilot-api`, or `create-moviepilot-skill`.
|
||||
|
||||
### Step 4: Write Frontmatter Correctly
|
||||
|
||||
Use this shape:
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: create-moviepilot-skill
|
||||
version: 1
|
||||
description: >-
|
||||
Explain what the skill does and exactly when to use it.
|
||||
allowed-tools: list_directory read_file write_file edit_file execute_command
|
||||
---
|
||||
```
|
||||
|
||||
Rules:
|
||||
|
||||
- `description` is the primary trigger surface. Put concrete "when to use"
|
||||
scenarios there.
|
||||
- Include `version` for built-in skills. Increment it whenever you ship a new
|
||||
built-in revision.
|
||||
- Add `allowed-tools` when the workflow depends on a small, well-defined tool
|
||||
set.
|
||||
- Add `compatibility` only when environment constraints actually matter.
|
||||
|
||||
### Step 5: Write the Body
|
||||
|
||||
The body should contain:
|
||||
|
||||
- A short purpose statement
|
||||
- MoviePilot-specific rules or guardrails
|
||||
- A step-by-step workflow
|
||||
- Concrete examples of matching user requests
|
||||
- References to supporting files when they exist
|
||||
|
||||
Prefer:
|
||||
|
||||
- Imperative instructions
|
||||
- Concrete file paths
|
||||
- Examples aligned with actual MoviePilot conventions
|
||||
|
||||
Avoid:
|
||||
|
||||
- Generic theory that does not change execution
|
||||
- Large duplicated documentation
|
||||
- Extra files like `README.md` or `CHANGELOG.md` inside the skill directory
|
||||
|
||||
### Step 6: Add Supporting Files Only When They Help
|
||||
|
||||
- Add `scripts/` only when the same deterministic work would otherwise be
|
||||
rewritten repeatedly.
|
||||
- Keep helper files inside the same skill directory.
|
||||
- Reference helper paths explicitly from `SKILL.md`.
|
||||
- If the skill is instructions-only, keep it to a single `SKILL.md`.
|
||||
|
||||
### Step 7: Implement the Skill
|
||||
|
||||
For a new built-in skill:
|
||||
|
||||
1. Create `skills/<skill-id>/`
|
||||
2. Create `SKILL.md`
|
||||
3. Add helper scripts only if they are justified
|
||||
|
||||
For an existing built-in skill:
|
||||
|
||||
1. Edit `skills/<skill-id>/SKILL.md`
|
||||
2. Increment `version`
|
||||
3. Update helper files in the same directory if needed
|
||||
|
||||
### Step 8: Validate Before Finishing
|
||||
|
||||
- Re-read the frontmatter and confirm `name` matches the directory name.
|
||||
- Confirm `description` mentions real trigger scenarios.
|
||||
- If you changed an existing built-in skill, confirm `version` increased.
|
||||
- If possible, validate the file can be parsed by the MoviePilot skills loader.
|
||||
- Report the final path and note whether the agent needs a restart to sync the
|
||||
latest built-in skill into `config/agent/skills`.
|
||||
|
||||
## Minimal Example
|
||||
|
||||
User request:
|
||||
|
||||
`给 MoviePilot agent 加一个处理站点 Cookie 更新的内置技能`
|
||||
|
||||
Expected outcome:
|
||||
|
||||
- Create or update a directory such as `skills/update-site-cookie/`
|
||||
- Write `SKILL.md` with a trigger-rich `description`
|
||||
- Include only the tools needed for that workflow
|
||||
- Increment `version` when revising an existing built-in skill
|
||||
|
||||
## Final Checklist
|
||||
|
||||
- Is the skill under the repository `skills/` directory?
|
||||
- Does the folder name equal frontmatter `name`?
|
||||
- Does `description` clearly say when the skill should trigger?
|
||||
- Did you avoid duplicating an existing skill unnecessarily?
|
||||
- Did you increment `version` for built-in skill updates?
|
||||
- Did you keep the skill lean and procedural?
|
||||
Reference in New Issue
Block a user