任务名称不同
Plugins 使用 Installed / Marketplace / Errors 和“Install”;Skills 使用 Browse / Discovery 和“New skill”;MCP 使用服务器侧栏、“Browse catalog”和“Add server”。相同用户意图在不同页面使用不同名称和位置。
本文定义 OpenProgram 所有者如何在 Web UI 中发现、添加、配置、启用、诊断和移除三类扩展。读者是 Web 与运行时维护者。本任务不涉及 Programs、agent 专属允许列表、第三方市场治理或新包格式。
74d971ff候选版本 5e754c2b审查通过无新增依赖Plugins 使用 Installed / Marketplace / Errors 和“Install”;Skills 使用 Browse / Discovery 和“New skill”;MCP 使用服务器侧栏、“Browse catalog”和“Add server”。相同用户意图在不同页面使用不同名称和位置。
Skills 有页面错误栏。Plugin 初始加载可能失败却没有页面级错误。若干 MCP 修改操作忽略非 2xx 响应,使可见状态保持不变且没有说明。
Plugins 展示信任与加载错误,Skills 展示启用状态,MCP 展示实时就绪状态和工具数量。页面框架未说明各计数代表已安装、已启用、已就绪还是失败。
MCP 同时将 Discover 用作二级标签和顶层操作。该标签仅打开模态框,而 Installed 仍保持激活,因此导航状态与可见内容不一致。
| 用户任务 | Plugins | Skills | MCP 服务器 |
|---|---|---|---|
| 已安装 | 已安装的包 | 本地及内置 SKILL.md 条目 | 已配置的服务器 |
| 发现 | 市场索引 | 已配置的技能目录 | 精选及自定义 MCP 目录 |
| 添加 | 安装包或本地路径 | 从目录安装或本地创建 | 安装目录条目或手动配置 |
| 可用性 | 已启用 + 已加载 | 已启用 | 已启用 + 已就绪 |
| 诊断 | 验证与加载错误 | 解析/加载错误 | 连接错误与工具 |
| 移除 | 卸载 | 删除自有技能 | 删除配置 |
视觉系统由共享条目组件定义。已安装条目使用统一行结构;发现条目使用统一目录卡片结构。页面保持开放背景,与 OpenProgram 其余界面一致。
添加、启用、刷新、测试、更新或移除。控件进入忙碌状态,并保留操作名称。
由一个客户端解析 error 和 FastAPI detail,保留 status/code,并抛出统一错误类型。
成功后刷新受影响集合和选择。失败在集合或对话框附近持续可见,并说明恢复操作。
复用 ManagePageHeader, ManageSubnav, ManageRow、现有对话框、现有路由和原生 fetch。保留各子系统的后端与安全边界。
统一任务用语、摘要位置、加载/错误反馈及请求错误解析。顶部工具栏仅包含搜索和刷新。二级标签决定主体内容,并包含唯一的添加操作。Plugins、Skills 和 MCP 共享相同的已安装行与发现目录卡片。MCP 详情采用标准详情对话框,不使用永久分栏布局。
不添加装饰性外层主体边框,不采用 MCP 专属分栏页面结构,不重复发现操作,不使用发现模态框,不建立通用扩展后端,不合并持久化 schema,不引入新状态库。
参考比较:Claude Code 插件管理器支持已安装/发现/错误任务,但未定义 OpenProgram Skills 或 MCP 运行时就绪状态;opencode 的 MCP 和插件界面没有提供跨类型统一管理模型;Hermes 对技能分组,但缺少三类扩展的可用性摘要。因此目标采用共享任务用语,同时保留 OpenProgram 专属的 MCP 实时状态和 Skill 层级。
| 批准的来源 | 本文;skills-and-plugins; mcp-integration;位于以下位置的当前公开路由:/plugins, /skills,以及 /mcp. |
| 生产文件 | apps/web/components/capabilities/、三个管理页面组件目录、apps/web/components/ui/manage-page*,以及 apps/web/lib/net/fetch-client.ts. |
| RED 证据 | 当任务用语/状态摘要不一致,或非 2xx 扩展请求没有可见错误路径时,专项可执行 Web 检查必须失败。 |
| 必要行为 | 每种类型将已安装和发现作为决定主体内容的导航状态;顶部工具栏仅包含搜索与刷新;二级导航包含唯一的添加操作;二级标签比顶部能力标签使用更弱的视觉处理;不添加装饰性外层主体边框;Plugins、Skills 和 MCP 的已安装列表使用相同行结构;三个发现视图使用相同目录卡片结构;MCP 详情在标准详情对话框中打开,不使用永久分栏布局;计数明确区分已安装/可用/问题;修改操作展示进度、成功后的刷新和可操作错误。 |
| 兼容性 | 现有 URL、API payload、存储数据、密钥掩码、目录来源、Skill 层级、插件信任确认和 MCP 重启/选择行为保持不变。 |
| 安全性 | 不读取或回显已存储密钥。远程目录策略保留在服务端。UI 错误不得增加凭据或原始密钥值。 |
| 排除范围 | Programs、agent 允许列表、后端 schema 合并、Windows 工作、密钥环、新市场和插件运行时隔离。 |
| 门禁清单 | 扩展管理专项检查;Web 单元测试;TypeScript/构建检查;所有者身份验证与密钥不可取回检查;文档链接检查;diff 检查;默认 App/18100 实例上的桌面可视验收及窄屏验收。 |
| 先前视觉修订 | f6bad3ac → f43c327a 将添加移至二级任务栏并引入更弱的标签样式,但外层边框处理及 MCP 专属内部组件未符合批准的产品界面规范。 |
| 组件修订 | 74d971ff → 5e754c2b。已移除装饰性主体边框和 MCP 分栏侧栏。已安装条目共享 ManageRow;三个发现视图共享 ManageCatalogCard;MCP 详情使用标准 Dialog。 |
| RED / GREEN | 专项检查起初因缺少共享条目/卡片约定而失败,随后连同无障碍关联、所有者身份验证、密钥不可取回、TypeScript、51 项 Web 单元测试、生产构建、文档链接及 diff 检查一起通过。 |
| 审查 | 在以下版本完善标签/面板、Switch 和文件夹按钮语义后,规格审查通过:ff3ec9a1。在以下版本补充对话框内 MCP 错误及真实 Plugins/Skills 加载状态后,质量审查通过:5e754c2b. |
| 剩余门禁 | 可视验收明确留给用户提供截图或直接检查。完整 Web 门禁仍在此前已复现、位于本子系统之外的 check:center-tabs 目标提示断言处停止。 |