# 插件市场设计总览

本文档汇总 Neo-MoFox 插件市场方案，按职责拆分为 CLI、Server 后端、Frontend 前端三部分，便于分别移交至对应团队推进。

## 设计目标

插件市场采用“中心索引服务 + GitHub Release 分发 + CLI 标准发布链路”的方案。

该方案的核心目标如下：

1. 中心服务器只保存插件元数据、审核状态、版本索引与兼容性信息，不托管插件包。
2. 插件源码与发布产物托管在 GitHub 仓库与 GitHub Release，利用现成的协作、版本与分发能力。
3. 使用 CLI 工具统一插件初始化、打包、发布、同步元数据，避免作者手工操作导致市场数据失真。
4. 客户端通过中心服务器完成搜索与版本决策，再从 GitHub Release 下载插件包并进行完整性校验。

## 总体架构

### 角色划分

1. 中心服务器
   负责插件注册、作者绑定、元数据存储、搜索、版本索引、审核、封禁、统计与兼容性过滤。
2. GitHub 仓库与 Release
   负责源码托管、协作开发、版本标签、发布产物存储与下载分发。
3. CLI 工具
   负责初始化项目、生成规范仓库、打包发布、调用 GitHub API、同步中心服务器元数据。
4. 客户端前端
   负责插件检索、详情展示、版本选择、风险提示、安装入口和安装态展示。

### 核心数据流

1. 作者通过 CLI 初始化插件项目并绑定 GitHub 仓库。
2. 作者通过 CLI 校验、打包并发布 GitHub Release。
3. CLI 将插件基础信息、版本信息、下载地址、校验值、兼容性信息同步到中心服务器。
4. 用户端从中心服务器检索插件与版本。
5. 用户端根据宿主版本、平台与插件 API 版本选择合适版本。
6. 用户端根据中心服务器返回的 GitHub Release 资产链接下载插件包。
7. 用户端完成校验后再执行本地安装。

## 设计原则

1. 索引与分发分离，控制中心服务器复杂度与运维成本。
2. 发布流程标准化，降低作者心智负担与元数据不一致问题。
3. 元数据可信优先，中心服务器对“谁发布了什么版本”负责。
4. 兼容性前置判断，避免客户端下载后才发现不可安装。
5. 治理能力内建，必须支持审核、下架、撤回与风险提示。

## 文档拆分

1. [CLI 设计](./cli.md)
2. [Server 后端设计](./server-backend.md)
3. [Frontend 前端设计](./frontend.md)

## 建议的交付顺序

1. 先确定后端对象模型、鉴权方式、审核状态机与同步协议。
2. 再确定 CLI 发布流水线与 GitHub 仓库规范。
3. 最后由前端基于稳定 API 设计搜索、详情和安装流程。

## MVP 范围建议

第一阶段建议只覆盖以下内容：

1. 中心服务器保存插件和版本元数据。
2. GitHub Release 作为唯一分发源。
3. CLI 支持初始化、校验、打包、发布 Release、同步市场。
4. 前端支持搜索、详情、版本选择、安装引导与风险提示。
5. 管理端支持人工审核、下架、版本撤回。

以下能力建议放到后续阶段：

1. 多源镜像分发。
2. 自动化安全扫描平台。
3. 评分评论系统。
4. 推荐算法与榜单系统。
5. 多代码托管平台支持。