plugin-store
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePlugin Store
插件商店
A CLI marketplace for installing/uninstalling/updating Skills and MCP servers across Claude Code, Cursor, and OpenClaw. Also an open-source community platform where any developer can submit plugins.
一个CLI市场,可跨Claude Code、Cursor、OpenClaw安装/卸载/更新Skill和MCP服务器。同时也是开源社区平台,任何开发者都可以提交插件。
Pre-flight Checks
前置检查
Run once per session before the first command. Do not echo routine output to the user.
plugin-store每个会话首次执行命令前运行一次,不要将常规输出回显给用户。
plugin-store1. Check binary version
1. 检查二进制版本
bash
plugin-store --version 2>/dev/null || ~/.local/bin/plugin-store --version 2>/dev/null || ~/.cargo/bin/plugin-store --version 2>/dev/null- If the reported version is ≥ (this skill's
0.3.0): binary is current, skip to step 2.metadata.version - If the binary is missing or older: run the installer.
macOS / Linux:
bash
curl -sSL https://raw.githubusercontent.com/okx/plugin-store/main/skills/plugin-store/install.sh | shWindows (PowerShell):
powershell
irm https://raw.githubusercontent.com/okx/plugin-store/main/skills/plugin-store/install.ps1 | iexOffline fallback: If the install script fails and a binary already exists locally, proceed with it. If not installed and the network is unreachable, stop and ask the user to check their connection.
bash
plugin-store --version 2>/dev/null || ~/.local/bin/plugin-store --version 2>/dev/null || ~/.cargo/bin/plugin-store --version 2>/dev/null- 如果返回的版本 ≥ (即本Skill的
0.3.0):二进制为最新版本,跳至步骤2。metadata.version - 如果二进制缺失或版本过旧:运行安装程序。
macOS / Linux:
bash
curl -sSL https://raw.githubusercontent.com/okx/plugin-store/main/skills/plugin-store/install.sh | shWindows (PowerShell):
powershell
irm https://raw.githubusercontent.com/okx/plugin-store/main/skills/plugin-store/install.ps1 | iex离线回退: 如果安装脚本失败且本地已有二进制文件,则继续使用该文件。如果未安装且网络不可达,请停止并告知用户检查网络连接。
2. Check for Skill update (remote version check)
2. 检查Skill更新(远程版本检查)
Fetch the latest Skill version from GitHub (timeout 5 seconds, non-blocking):
bash
curl -sSL --max-time 5 "https://raw.githubusercontent.com/okx/plugin-store/main/skills/plugin-store/SKILL.md" 2>/dev/null | head -20 | grep 'version:' | head -1Compare the remote with the local version ().
metadata.version0.3.0If remote version is newer than local, display this notice to the user:
📦 Plugin Store Skill 有新版本可用(当前: 0.3.0, 最新: X.Y.Z)是否更新?更新命令:plugin-store install plugin-store --agent claude-code --skill-only⚠️ 注意:更新后需要重启当前会话,新版 Skill 才会在上下文中生效。
Then wait for the user's response:
- If user says yes / 确认 / 更新 → run the install command, then remind: "Skill 已更新,请重启当前会话(退出并重新进入)以加载新版本。"
- If user says no / 跳过 / 以后再说 → continue with current version, do not ask again this session.
- If the curl fails or times out → skip silently, continue with current version.
If versions match or remote is unreachable, skip silently — do not print anything.
从GitHub获取最新Skill版本(超时5秒,非阻塞):
bash
curl -sSL --max-time 5 "https://raw.githubusercontent.com/okx/plugin-store/main/skills/plugin-store/SKILL.md" 2>/dev/null | head -20 | grep 'version:' | head -1对比远程和本地版本()。
metadata.version0.3.0如果远程版本比本地新,向用户显示如下通知:
📦 Plugin Store Skill 有新版本可用(当前: 0.3.0, 最新: X.Y.Z)是否更新?更新命令:plugin-store install plugin-store --agent claude-code --skill-only⚠️ 注意:更新后需要重启当前会话,新版 Skill 才会在上下文中生效。
然后等待用户响应:
- 如果用户回复yes / 确认 / 更新 → 运行安装命令,然后提示:"Skill 已更新,请重启当前会话(退出并重新进入)以加载新版本。"
- 如果用户回复no / 跳过 / 以后再说 → 继续使用当前版本,本次会话不再询问。
- 如果curl请求失败或超时 → 静默跳过,继续使用当前版本。
如果版本匹配或无法访问远程,静默跳过,不输出任何内容。
3. Do not auto-reinstall on command failures
3. 命令失败时不要自动重装
Report errors and suggest or checking https://github.com/okx/plugin-store.
plugin-store self-update上报错误并建议运行或查看https://github.com/okx/plugin-store。
plugin-store self-update4. Install onchainos-skills (silent, non-blocking)
4. 安装onchainos-skills(静默,非阻塞)
bash
npx skills add okx/onchainos-skills --yes 2>/dev/null || trueThis installs sub-skills used by Skill Routing (, , etc.). Do not block on failure.
okx-dex-tokenokx-dex-swapbash
npx skills add okx/onchainos-skills --yes 2>/dev/null || true这会安装Skill路由使用的子Skill(、等),失败时不要阻塞流程。
okx-dex-tokenokx-dex-swapAvailable Plugins
可用插件
Always run to get the current plugin list — never rely on a hardcoded table.
plugin-store listbash
plugin-store listParse the output and present it to the user as a clean table (name, category, downloads, description). The registry updates dynamically; this is the only source of truth.
始终运行获取当前插件列表,永远不要依赖硬编码的表格。
plugin-store listbash
plugin-store list解析输出并以整洁表格的形式展示给用户(名称、分类、下载量、描述)。注册中心会动态更新,这是唯一的可信来源。
Skill Routing
Skill路由
| User Intent | Action |
|---|---|
| "What dapps / strategies / skills are available?" | Run |
| "What can you do?" / capability discovery | Run |
| "插件商店有什么" / "有什么插件" / "有什么项目" | Run |
| "什么项目最火" / "最热门的项目" / "trending projects" | Run |
| "怎么玩DeFi" / "链上怎么赚币" / "链上有什么玩法" | Run |
| "有什么好的策略" / "推荐策略" | Run |
| "有什么DeFi协议" / "推荐DeFi项目" | Run |
| "Install X" / "安装 X" | Run |
| "Uninstall X" / "卸载 X" | Run |
| "Update all" / "更新插件" | Run |
| "Show installed" / "已安装" | Run |
| "Search X" / "搜索 X" | Run |
| "I want to create/submit a plugin" / "我想开发插件" | Guide through the Developer Workflow below |
| "How to contribute" / "怎么提交插件" / "hackathon" | Guide through the Developer Workflow below |
| 用户意图 | 动作 |
|---|---|
| "有哪些可用的dapps / 策略 / skills?" | 运行 |
| "你能做什么?" / 能力发现 | 运行 |
| "插件商店有什么" / "有什么插件" / "有什么项目" | 运行 |
| "什么项目最火" / "最热门的项目" / "trending projects" | 运行 |
| "怎么玩DeFi" / "链上怎么赚币" / "链上有什么玩法" | 运行 |
| "有什么好的策略" / "推荐策略" | 运行 |
| "有什么DeFi协议" / "推荐DeFi项目" | 运行 |
| "Install X" / "安装 X" | 运行 |
| "Uninstall X" / "卸载 X" | 运行 |
| "Update all" / "更新插件" | 运行 |
| "Show installed" / "已安装" | 运行 |
| "Search X" / "搜索 X" | 运行 |
| "I want to create/submit a plugin" / "我想开发插件" | 引导用户完成下方的开发者工作流 |
| "How to contribute" / "怎么提交插件" / "hackathon" | 引导用户完成下方的开发者工作流 |
Command Index
命令索引
CLI Reference: For full parameter tables, output fields, and error cases, see cli-reference.md.
CLI参考:完整参数表、输出字段和错误处理请查看cli-reference.md。
User Commands
用户命令
| # | Command | Description |
|---|---|---|
| 1 | | List all available plugins in the registry |
| 2 | | Search plugins by name, tag, or description |
| 3 | | Show detailed plugin info (components, chains, protocols) |
| 4 | | Install a plugin (interactive agent selection) |
| 5 | | Install non-interactively (auto-detects agents) |
| 6 | | Install skill component only |
| 7 | | Uninstall a plugin from all agents |
| 8 | | Update all installed plugins |
| 9 | | Show all installed plugins and their status |
| 10 | | Force refresh registry cache |
| 11 | | Update plugin-store CLI itself to latest version |
| # | 命令 | 描述 |
|---|---|---|
| 1 | | 列出注册中心所有可用插件 |
| 2 | | 按名称、标签或描述搜索插件 |
| 3 | | 展示插件详细信息(组件、支持的链、协议) |
| 4 | | 安装插件(交互式选择Agent) |
| 5 | | 非交互式安装(自动检测Agent) |
| 6 | | 仅安装Skill组件 |
| 7 | | 从所有Agent卸载该插件 |
| 8 | | 更新所有已安装插件 |
| 9 | | 展示所有已安装插件及其状态 |
| 10 | | 强制刷新注册中心缓存 |
| 11 | | 将plugin-store CLI本身更新到最新版本 |
Developer Commands
开发者命令
| # | Command | Description |
|---|---|---|
| 12 | | Scaffold a new plugin (creates plugin.yaml, SKILL.md, LICENSE, etc.) |
| 13 | | Validate a plugin before submission (30+ checks) |
| # | 命令 | 描述 |
|---|---|---|
| 12 | | 生成新插件模板(创建plugin.yaml、SKILL.md、LICENSE等文件) |
| 13 | | 提交前验证插件(包含30+项检查) |
Operation Flow
操作流程
Intent: Strategy / DApp / Capability Discovery
意图:策略 / DApp / 能力发现
- Run to fetch the live registry
plugin-store list - Present results as a clean table (name, category, downloads, description)
- Suggest next steps: "Want to install one? Just say "
install <name>
- 运行获取实时注册中心数据
plugin-store list - 以整洁表格的形式展示结果(名称、分类、下载量、描述)
- 建议后续操作:"想要安装某款插件?直接说即可"
install <name>
Intent: Install a Plugin
意图:安装插件
- Run
plugin-store install <name> --yes- skips the community plugin confirmation prompt
--yes - Agent selection is automatic in non-interactive mode (installs to all detected agents)
- The CLI will:
- Fetch plugin metadata from registry
- Download and install skill, MCP config, and/or binary as applicable
- Immediately after install succeeds, read the installed skill file directly — do NOT ask the user to restart:
Then follow the instructions in that file (Pre-flight → onboarding flow). The skill is immediately usable in the current session.
Read file: ~/.claude/skills/<name>/SKILL.md
- 运行
plugin-store install <name> --yes- 会跳过社区插件确认提示
--yes - 非交互式模式下会自动选择Agent(安装到所有检测到的Agent)
- CLI会执行如下操作:
- 从注册中心拉取插件元数据
- 下载并安装Skill、MCP配置和/或对应二进制文件
- 安装成功后立即直接读取已安装的Skill文件,不要要求用户重启:
然后按照该文件中的说明操作(前置检查 → 引导流程),该Skill在当前会话中可立即使用。
Read file: ~/.claude/skills/<name>/SKILL.md
Intent: Manage Installed Plugins
意图:管理已安装插件
- Run to show current state
plugin-store installed - Run to update everything
plugin-store update --all - Run to remove
plugin-store uninstall <name>
- 运行展示当前安装状态
plugin-store installed - 运行更新所有插件
plugin-store update --all - 运行移除指定插件
plugin-store uninstall <name>
Developer Workflow: Create and Submit a Plugin
开发者工作流:创建并提交插件
Plugin Store is an open-source community platform. Any developer can submit a plugin through a Pull Request. The full workflow:
插件商店是开源社区平台,任何开发者都可以通过Pull Request提交插件,完整流程如下:
Overview
概述
Two types of plugins:
Type A: Pure Skill — just a SKILL.md that orchestrates onchainos CLI commands
Type B: Skill + Source Code — SKILL.md + a CLI tool compiled/installed from your source repo
Five supported languages for source code:
Rust, Go → compiled to native binary (~1-20MB)
TypeScript, Node.js → distributed via npm install (~KB)
Python → distributed via pip install (~KB)两种插件类型:
A类:纯Skill —— 仅包含SKILL.md文件,用于编排onchainos CLI命令
B类:Skill + 源代码 —— SKILL.md + 从你的源码仓库编译/安装的CLI工具
支持五种源代码语言:
Rust, Go → 编译为原生二进制文件(~1-20MB)
TypeScript, Node.js → 通过npm install分发(~KB级)
Python → 通过pip install分发(~KB级)Step 1: Fork and scaffold
步骤1:Fork并生成模板
bash
undefinedbash
undefinedFork https://github.com/okx/plugin-store-community on GitHub, then:
在GitHub上Fork https://github.com/okx/plugin-store-community,然后执行:
git clone --depth=1 git@github.com:YOUR_USERNAME/plugin-store-community.git
cd plugin-store-community
plugin-store init <your-plugin-name>
This creates `submissions/<your-plugin-name>/` with a complete template:
submissions/<your-plugin-name>/
├── plugin.yaml # Plugin manifest (fill in your details)
├── skills/<name>/
│ └── SKILL.md # Skill definition (built-in onchainos demo)
│ └── references/
├── LICENSE
├── CHANGELOG.md
└── README.md
undefinedgit clone --depth=1 git@github.com:YOUR_USERNAME/plugin-store-community.git
cd plugin-store-community
plugin-store init <your-plugin-name>
这会创建`submissions/<your-plugin-name>/`目录,包含完整模板:
submissions/<your-plugin-name>/
├── plugin.yaml # 插件清单(填写你的信息)
├── skills/<name>/
│ └── SKILL.md # Skill定义(内置onchainos演示)
│ └── references/
├── LICENSE
├── CHANGELOG.md
└── README.md
undefinedStep 2: Edit plugin.yaml
步骤2:编辑plugin.yaml
Pure Skill — just fill in the basics:
yaml
schema_version: 1
name: <your-plugin-name> # lowercase + hyphens, 2-40 chars
version: "1.0.0"
description: "What your plugin does"
author:
name: "Your Name"
github: "your-github-username" # must match PR submitter
license: MIT
category: utility # trading-strategy | defi-protocol | analytics | utility | security | wallet | nft
tags: [keyword1, keyword2]
components:
skill:
dir: skills/<your-plugin-name>
api_calls: [] # external API domains your plugin callsSkill + Source Code — add a section pointing to your source repo:
buildyaml
undefined纯Skill只需填写基础信息:
yaml
schema_version: 1
name: <your-plugin-name> # 小写字母+连字符,2-40个字符
version: "1.0.0"
description: "你的插件功能描述"
author:
name: "你的名称"
github: "你的GitHub用户名" # 必须和PR提交者一致
license: MIT
category: utility # 可选值:trading-strategy | defi-protocol | analytics | utility | security | wallet | nft
tags: [关键词1, 关键词2]
components:
skill:
dir: skills/<your-plugin-name>
api_calls: [] # 你的插件调用的外部API域名Skill + 源代码需要额外添加部分指向你的源码仓库:
buildyaml
undefined... same as above, plus:
... 和上面配置一致,额外添加:
build:
lang: rust # rust | go | typescript | node | python
source_repo: "your-org/your-tool" # your GitHub repo with source code
source_commit: "a1b2c3d4e5f6..." # full 40-char commit SHA (git rev-parse HEAD)
binary_name: "your-tool" # compiled output name
main: "src/index.js" # required for typescript/node/python
**How to get the commit SHA:**
```bash
cd your-source-repo
git push origin main
git rev-parse HEAD # copy this 40-char string into build.source_commitbuild:
lang: rust # 可选值:rust | go | typescript | node | python
source_repo: "你的组织/你的工具仓库" # 你的GitHub源码仓库地址
source_commit: "a1b2c3d4e5f6..." # 完整40位commit SHA(执行git rev-parse HEAD获取)
binary_name: "your-tool" # 编译后的输出文件名
main: "src/index.js" # TypeScript/Node.js/Python必填
**如何获取commit SHA:**
```bash
cd your-source-repo
git push origin main
git rev-parse HEAD # 复制这个40位字符串到build.source_commit字段Step 3: Write SKILL.md
步骤3:编写SKILL.md
SKILL.md teaches the AI agent how to use your plugin. Required sections:
- YAML frontmatter — name, description, version, author, tags
- Overview — what the plugin does (2-3 sentences)
- Pre-flight Checks — what needs to be installed before use
- Commands — specific onchainos commands with When to use / Output
- Error Handling — table of common errors and resolutions
- Skill Routing — when to defer to other skills
Critical rule: All on-chain write operations (signing, broadcasting, swaps, contract calls) MUST use onchainos CLI. Querying external data sources (third-party APIs, price feeds) is freely allowed.
SKILL.md指导AI Agent如何使用你的插件,必填部分:
- YAML frontmatter —— 名称、描述、版本、作者、标签
- 概述 —— 插件功能介绍(2-3句话)
- 前置检查 —— 使用前需要安装的依赖
- 命令 —— 具体的onchainos命令,包含使用场景/输出说明
- 错误处理 —— 常见错误及解决方案表格
- Skill路由 —— 何时需要调用其他Skill
**关键规则:**所有链上写操作(签名、广播、兑换、合约调用)必须使用onchainos CLI。查询外部数据源(第三方API、价格喂送)不受限制。
Step 4: Validate locally
步骤4:本地验证
bash
plugin-store lint ./submissions/<your-plugin-name>/Fix all errors (❌), then re-run until you see ✓. Warnings (⚠️) are advisory.
bash
plugin-store lint ./submissions/<your-plugin-name>/修复所有错误(❌),重新运行直到出现✓。警告(⚠️)仅为建议。
Step 5: Submit via Pull Request
步骤5:通过Pull Request提交
bash
git checkout -b submit/<your-plugin-name>
git add submissions/<your-plugin-name>/
git commit -m "[new-plugin] <your-plugin-name> v1.0.0"
git push origin submit/<your-plugin-name>Then create a PR from your fork to . Each PR must contain exactly one plugin.
okx/plugin-store-communitybash
git checkout -b submit/<your-plugin-name>
git add submissions/<your-plugin-name>/
git commit -m "[new-plugin] <your-plugin-name> v1.0.0"
git push origin submit/<your-plugin-name>然后从你的Fork向创建PR,每个PR只能包含一个插件。
okx/plugin-store-communityWhat happens after submission
提交后流程
Phase 2: Structure check (~30s) — bot validates plugin.yaml + SKILL.md
Phase 3: AI code review (~2min) — Claude reads your code, writes a 9-section report
Phase 4: Build check (if binary) — compiles your source code on 3 platforms
Phase 7: After merge — auto-publishes to registry, users can install immediatelyHuman review takes 1-3 days. Once merged, your plugin is live:
bash
plugin-store install <your-plugin-name>阶段2:结构检查(~30秒)—— 机器人验证plugin.yaml + SKILL.md
阶段3:AI代码评审(~2分钟)—— Claude读取你的代码,生成9部分的报告
阶段4:构建检查(如果包含二进制文件)—— 在3个平台上编译你的源代码
阶段7:合并后 —— 自动发布到注册中心,用户可立即安装人工审核需要1-3天,合并后你的插件就正式上线了:
bash
plugin-store install <your-plugin-name>Source code requirements by language
各语言源代码要求
| Language | Key requirements |
|---|---|
| Rust | |
| Go | |
| TypeScript | |
| Node.js | |
| Python | |
| 语言 | 核心要求 |
|---|---|
| Rust | |
| Go | |
| TypeScript | |
| Node.js | |
| Python | |
Common lint errors
常见lint错误
| Error | Fix |
|---|---|
| E031 name format invalid | Use lowercase + hyphens only: |
| E052 missing SKILL.md | Put SKILL.md in the path specified by |
| E110/E111 binary needs build | Add |
| E122 source_repo format | Use |
| E123 commit SHA invalid | Must be full 40-char hex from |
| 错误代码 | 修复方案 |
|---|---|
| E031 名称格式无效 | 仅使用小写字母+连字符: |
| E052 缺失SKILL.md | 将SKILL.md放在 |
| E110/E111 二进制文件需要build配置 | 添加 |
| E122 source_repo格式无效 | 使用 |
| E123 commit SHA无效 | 必须是 |
Supported Agents
支持的Agent
| Agent | Detection | Skills Path | MCP Config |
|---|---|---|---|
| Claude Code | | | |
| Cursor | | | |
| OpenClaw | | | Same as skills |
| Agent | 检测方式 | Skill存储路径 | MCP配置路径 |
|---|---|---|---|
| Claude Code | | | |
| Cursor | | | |
| OpenClaw | | | 和Skill路径一致 |
Plugin Source Trust Levels
插件来源信任等级
| Source | Meaning | Behavior |
|---|---|---|
| Plugin Store official | Install directly |
| Published by the DApp project | Install directly |
| Community contribution | Show warning, require user confirmation |
| 来源 | 含义 | 行为 |
|---|---|---|
| 插件商店官方发布 | 直接安装 |
| DApp项目方官方发布 | 直接安装 |
| 社区贡献 | 展示警告,需要用户确认 |
Error Handling
错误处理
| Error | Action |
|---|---|
| Network timeout during install | Retry once; if still failing, suggest manual install from https://github.com/okx/plugin-store |
| Try |
| Command returns non-zero exit | Report error verbatim; suggest |
| Registry cache stale / corrupt | Run |
| Show error codes and fixes; refer to the lint error table above |
| 错误 | 处理方案 |
|---|---|
| 安装时网络超时 | 重试一次;如果仍然失败,建议用户从https://github.com/okx/plugin-store手动安装 |
安装后提示 | 直接尝试运行 |
| 命令返回非零退出码 | 原样上报错误;建议运行 |
| 注册中心缓存过期/损坏 | 运行 |
| 展示错误代码和修复方案;参考上方的lint错误表格 |
Skill Self-Update
Skill自更新
To update this skill to the latest version:
macOS / Linux:
bash
plugin-store install plugin-store --agent claude-code --skill-onlyOr re-run the installer:
bash
curl -sSL https://raw.githubusercontent.com/okx/plugin-store/main/skills/plugin-store/install.sh | sh<rules> <must> - Always run `plugin-store list` for capability/discovery questions — never use a hardcoded plugin list - Present plugin lists as clean tables (name, category, downloads, description); omit internal fields like registry URLs or file paths - Present capabilities in user-friendly language: "You can trade on Uniswap across 12 chains", not "uniswap-ai supports uniswap-v2, uniswap-v3 protocols" - After any action, suggest 2–3 natural follow-up steps - Support both English and Chinese — respond in the user's language - For developer workflow: always run `plugin-store init` first, then guide through editing, linting, and PR submission - For lint errors: show the error code, explain the fix, and offer to help edit the file </must> <should> - For community-source plugins, proactively warn the user before installing - After installing a plugin, read the installed SKILL.md and trigger the skill's onboarding flow immediately - When guiding plugin development, ask which type (Pure Skill or Skill + Binary) and which language - Suggest running `plugin-store lint` after every edit to catch issues early </should> <never> - Never expose internal skill names, registry URLs, file paths, or MCP config keys to the user - Never auto-reinstall on command failures — report the error and suggest `plugin-store self-update` - Never hardcode a plugin list — always fetch from `plugin-store list` - Never skip the lint step before suggesting PR submission </never> </rules>
要将本Skill更新到最新版本:
macOS / Linux:
bash
plugin-store install plugin-store --agent claude-code --skill-only或者重新运行安装脚本:
bash
curl -sSL https://raw.githubusercontent.com/okx/plugin-store/main/skills/plugin-store/install.sh | sh<rules> <must> - 能力/发现类问题始终运行`plugin-store list`获取数据,永远不要使用硬编码的插件列表 - 插件列表以整洁表格形式展示(名称、分类、下载量、描述);省略注册中心URL、文件路径等内部字段 - 用用户友好的语言说明能力:"你可以在12条链上使用Uniswap进行交易",而不是"uniswap-ai支持uniswap-v2、uniswap-v3协议" - 任何操作完成后,建议2-3个自然的后续操作 - 支持中英文,用用户使用的语言回复 - 开发者工作流:始终先运行`plugin-store init`,然后引导用户完成编辑、lint检查和PR提交 - 针对lint错误:展示错误代码,说明修复方案,主动提供编辑文件的帮助 </must> <should> - 安装社区来源插件前,主动向用户发出警告 - 安装插件完成后,读取已安装的SKILL.md并立即触发该Skill的引导流程 - 引导插件开发时,询问用户要开发的类型(纯Skill还是Skill+二进制文件)和使用的语言 - 建议用户每次编辑后运行`plugin-store lint`,尽早发现问题 </should> <never> - 永远不要向用户暴露内部Skill名称、注册中心URL、文件路径或MCP配置键 - 命令失败时永远不要自动重装,上报错误并建议运行`plugin-store self-update` - 永远不要硬编码插件列表,始终从`plugin-store list`获取数据 - 建议用户提交PR前永远不要跳过lint检查步骤 </never> </rules>