Use this skill when the user asks to publish, upload, sync, pull, push, diff, or maintain a MoviePilot local plugin in a GitHub repository. Covers using the configured MoviePilot GitHub token, PLUGIN_LOCAL_REPO_PATHS local plugin repositories, package.json/package.v2.json metadata, plugins/plugins.v2 layouts, safe file exclusion, diff preview before publishing, incremental GitHub Contents API updates, and syncing local plugin changes back from GitHub. Includes asking whether to use an existing repository or create a new public repository when no target repository is available. Also use for Chinese requests mentioning 插件发布, 插件维护, 推送插件到 GitHub, 从 GitHub 拉取插件, 同步本地插件仓库, 增量发布插件, 插件仓库维护.
79
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Use this skill to publish and maintain a MoviePilot local plugin repository through GitHub while protecting local secrets and unrelated plugins.
plugins.v2/<plugin_id_lower>/ or
plugins/<plugin_id_lower>/ to a GitHub repository.package.v2.json or package.json.GITHUB_TOKEN, REPO_GITHUB_TOKEN,
and PLUGIN_LOCAL_REPO_PATHS when available.skills/create-moviepilot-plugin/SKILL.md.app/helper/plugin.py,
PluginHelper.get_local_repo_paths().app/core/config.py, especially GITHUB_TOKEN and
REPO_GITHUB_TOKEN.package.v2.json and plugins.v2/<plugin_id_lower>/package.json and plugins/<plugin_id_lower>/PLUGIN_LOCAL_REPO_PATHS; if exactly one configured
repository contains the plugin, use it.owner/repo.
owner/repo.owner/repo
and state that the repository will be public by default.v2 when package.v2.json or plugins.v2/<plugin_id_lower>/
exists.plugins/.REPO_GITHUB_TOKEN for the target repo when configured.GITHUB_TOKEN.Use scripts/publish_plugin.py for deterministic GitHub operations.
python skills/publish-moviepilot-plugin/scripts/publish_plugin.py preview \
--repo owner/repo \
--plugin-id MyPlugin \
--local-repo /path/to/MoviePilot-Plugins \
--package-version v2
python skills/publish-moviepilot-plugin/scripts/publish_plugin.py push \
--repo owner/repo \
--plugin-id MyPlugin \
--local-repo /path/to/MoviePilot-Plugins \
--package-version v2 \
--message "Publish MyPlugin v1.0.0"
python skills/publish-moviepilot-plugin/scripts/publish_plugin.py pull \
--repo owner/repo \
--plugin-id MyPlugin \
--local-repo /path/to/MoviePilot-Plugins \
--package-version v2
python skills/publish-moviepilot-plugin/scripts/publish_plugin.py create-repo \
--repo owner/repoOptions:
create-repo: create the target GitHub repository. Default visibility is
public; use --private only when the user explicitly asked for private.preview: compare local filtered files with remote files and print JSON.push: upload changed files and merge the plugin package entry.pull: write remote plugin files and package entry into local source.--create-repo-if-missing: on push, create the target public repository when
GitHub reports that it does not exist.--delete-remote: on push, delete remote plugin files that no longer exist
locally after exclusions.--force: on pull, allow overwriting local files that differ from remote.--include PATTERN: add files otherwise excluded by default.--exclude PATTERN: add an extra ignore pattern.--dry-run: print planned changes without writing.--proxy URL: use an explicit HTTP/HTTPS proxy for GitHub API requests.preview before push unless the user explicitly asks for a
direct push and already reviewed the diff.使用已有 GitHub 仓库 or 自动创建 GitHub 仓库(默认 public).create-repo or push --create-repo-if-missing after the user has
explicitly chosen automatic creation..env, .env.*, config/, data/, cache/, logs/, tmp/,
__pycache__/, .pytest_cache/, .mypy_cache/, .ruff_cache/,
.DS_Store, *.pyc, *.pyo, *.db, *.sqlite, *.sqlite3, *.log,
*.bak, *.tmp, *.secret, *.key, *.pem, *.crt, *.p12, *.pfx,
node_modules/.dist/assets/
when they are present; do not exclude them as generated files.--force is used.User asks: 把本地 MyPlugin 发布到我的 GitHub 插件仓库
MyPlugin under configured PLUGIN_LOCAL_REPO_PATHS.owner/repo cannot be inferred.preview and summarize the diff.push only after the user confirms or requested immediate publish.User asks: 发布插件,没有 GitHub 仓库
owner/repo and confirm automatic creation.create-repo or use push --create-repo-if-missing.preview and push after repository creation succeeds.User asks: 同步 GitHub 上 MyPlugin 的最新代码到本地
pull without --force.1b065cc
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.