OpenChamber UI/API 分层规范
为 OpenChamber 共享界面代码划定数据访问边界:官方走 SDK、自有能力走 RuntimeAPIs,避免硬编码 URL、令牌与传输假设。
技能明确要求最小权限(特权留在原生边界)、信任边界变更需显式确认、URL 中禁止长期凭证、边界处解析外部数据、失败不得伪装为空值;安全数据流披露较完整。扣分:发布者身份未经注册表验证,部分安全声明(如 ui-auth 允许列表、作用域令牌)仅为主张,未静态核实实现。
SKILL.md 内部自洽,分类表、规则、反模式、参考文件路径和测试清单一致且可静态交叉对照;有明确失败反馈规则(规则8)。扣分:静态审查未执行任何测试,未确认所列测试文件均存在且通过,边界场景覆盖靠声明。
description 触发条件列举具体(RuntimeAPIs、runtime fetch/auth、SDK 调用、运行时切换等),误触发风险低;明确列出五个运行时及不支持行为。扣分:技能高度绑定 OpenChamber 仓库内部结构,对外部项目几乎不可用,边界与非适用范围未显式声明为限制。
分层良好:SKILL.md 主文 + 三个任务导向参考文件,渐进披露清晰,仓库有 MIT 许可证、版本号与变更脚本。扣分:技能文件本身无版本/更新记录,维护责任与更新路径仅在仓库层面部分体现。
对该仓库内 UI/API 解耦开发任务能提供直接、可操作的规则与代码路径,明显优于口头约定。扣分:仅静态评估,未验证产出可直接使用;适用面窄,通用边际价值有限。
引用了具体测试文件路径与验证清单,主张与文件位置可审计。扣分:静态审查未执行测试,未确认测试文件内容或 CI 实际覆盖这些路径,证据类型单一。
- 该技能仅适用于 OpenChamber 仓库内部开发,不适合作为通用架构指导;
- 静态审查未执行任何测试,所列测试文件与 CI 覆盖情况未经独立验证;
- 发布者未经验证,安全相关主张(作用域 URL 令牌、允许列表)应在使用前对照实际代码核实;
- 技能文件无独立版本/变更记录,更新时需自行比对仓库提交历史。
这个 Skill 能做什么,适合哪些场景?
这是 OpenChamber 仓库(openchamber/openchamber)18 个内置技能中的一个,位于 .agents/skills/ui-api-decoupling/。它是一份纯指导型 SKILL.md,没有脚本,作用是在创建或修改 OpenChamber 共享 UI 的数据访问层时,约束 AI 助手遵守项目既定的分层规则。核心边界是:官方 OpenCode API 必须通过 @opencode-ai/sdk/v2 的 opencodeClient 调用;OpenChamber 自有 HTTP 能力走 RuntimeAPIs 或显式路由的 runtimeFetch;浏览器/实时场景使用运行时 URL 解析器。技能还附带三份参考文档(浏览器资产与认证、运行时一致性、实现地图),按任务选择性加载。
读取任务类型后按对照表加载 references/browser-assets-and-auth.md、references/runtime-parity.md 或 references/implementation-map.md;提供'先分类再动手'的路由表(官方端点→opencodeClient,OpenChamber 路由→runtimeFetch,运行时能力→RuntimeAPIs,SSE/WebSocket→所属传输层并加载 relay-transport);给出 13 条强制规则,包括不得绕过 SDK、路由先于通用代理注册、调用时才解析运行时状态、URL 不得携带长期凭证、在边界处解析外部载荷、用判别联合建模真实契约等;附带 runtimeFetch 使用示例代码和常见反模式对照表;最后给出验证清单,要求传输/桥接/代理/认证/运行时切换测试通过,仅静态类型检查不算数。
- 在 OpenChamber 仓库中让 AI 助手新增或修改共享 UI 的数据访问代码,需要它自动走正确的 SDK/路由路径而不是随手 fetch
- 开发者要在 web、Electron、VS Code、移动端等多种运行时间保持行为一致,需要技能强制声明各运行时的支持或明确的不支持响应
- 处理需要认证的浏览器资产(iframe、下载、原始图片、对象 URL),需要按参考文档使用短时效作用域 URL 令牌而非把令牌拼进链接
- 实现运行时切换功能,需要审查并重置缓存的 base URL、凭证、SDK 客户端和实时传输状态,避免切换后复用旧端点数据
- 代码评审时用技能的反模式表和验证清单检查:请求保真度、失败信号化、权限留在原生边界等是否到位
这个 Skill 有哪些优点和局限?
- 规则极其具体:给出逐项分类表、可直接照抄的 runtimeFetch 代码示例和反模式对照表,AI 执行时歧义空间小
- 附带三份按任务分流的参考文档(浏览器资产/运行时一致性/实现地图),深度覆盖认证、权限和运行时切换等易错点
- 强调失败必须显式信号化、在边界解析外部载荷、用判别联合建模契约,能显著减少静默状态污染类 bug
- 纯 Markdown 指导,无脚本依赖,移植到任何 Agent Skills 兼容客户端成本低
- 强绑定 OpenChamber 代码库的内部概念(RuntimeAPIs、opencodeClient、runtimeFetch、relay-transport),脱离该仓库几乎没有直接价值
- 属于约束型规范而非可执行工具,没有脚本或自动化验证,效果完全依赖模型遵守 13 条规则
- references/implementation-map.md 等文档内容未在来源中展示,无法评估其覆盖完整性
- 验证清单要求传输/桥接/认证等测试通过,但来源未展示这些测试本身,实际保障程度未知
如何安装这个 Skill?
该技能随 OpenChamber 仓库分发,位于仓库内 .agents/skills/ui-api-decoupling/。OpenChamber 用户可通过应用内'技能目录和本地技能管理'使用仓库内的技能(README 提到此功能,但未说明安装单个技能文件到其他 Agent Skills 客户端的具体步骤)。若在其他兼容客户端使用,需自行将整个 ui-api-decoupling 目录(含 SKILL.md 和 references/)复制到该客户端的技能目录;具体路径以客户端文档为准,来源未给出通用安装命令。
如何使用这个 Skill?
技能通过其 description 自动触发:当任务涉及 OpenChamber 共享 UI 数据访问、OpenCode SDK 调用、RuntimeAPIs、运行时 fetch/认证/URL、认证浏览器资产、桥接/代理、运行时切换或服务端 API 路由时即适用。也可在提示中显式引用,例如:'为设置页新增一个 OpenChamber 路由的数据加载,按 ui-api-decoupling 技能的规则先分类该走 runtimeFetch 还是 SDK,并加载对应 references 再改代码。'