开发与工程 cli-uxclackterminal-output-outputcommand-line-patternsopencode

Clack CLI 模式规范

为 OpenChamber 终端命令定义统一的交互提示、--quiet 与 -- 输出契约,确保任何运行模式下策略校验先行、行为确定一致。

FollowSkills 评估 · FSRS-2.0
谨慎使用
57/ 100 五分制 2.9 / 5
1 2 3 4 5 6
1信任安全18 / 25 · 3.6/5

该技能为纯文档型编码规范,无可执行脚本、无网络/文件系统副作用、不收集数据,红线风险不存在;模式契约明确要求验证先于展示、非TTY不挂起、JSON模式严格输出,安全导向良好。扣分点:未涉及回滚机制、来源归属仅泛指仓库路径,发布者未经验证。

2可靠稳定9 / 20 · 2.3/5

指令内部自洽:模式表、完成标准、代码片段一一对应,snippets.md 与主文档引用一致,失败反馈(非零退出、JSON错误负载)有明确要求。扣分点:静态审查无法验证 @clack/prompts 用法与 packages/web/bin/cli.js 等先例文件的实际实现是否匹配,无针对该技能关键路径的测试证据,故上限内偏保守。

3适用触发11 / 15 · 3.7/5

触发条件清晰(创建/修改 OpenChamber CLI 命令、提示、--quiet/-- 行为),并明确排除 Web UI 和 VS Code 样式场景,边界声明好。扣分点:仅适用于 OpenChamber 仓库内部,受众极窄;无中文支持说明;无环境可达性问题但依赖 GitHub 生态。

4规范维护9 / 15 · 3.0/5

文档分层良好(概览→模式契约→原语标准→输出契约→完成标准→片段引用),含 MIT 许可、明确的 scope 排除和已知限制(checklist 中体现测试局限)。扣分点:技能自身无版本号或变更日志,无 FAQ/故障排查章节,维护责任未在技能文件中说明。

5有效结果6 / 15 · 2.0/5

作为内部编码约定,它提供可复用的模式、片段和完成清单,对保证 CLI 五种模式一致性有实际边际价值,超出单纯口头约定。扣分点:输出为代码规范而非直接可用产物,价值依赖开发者/代理正确遵循,静态审查无法验证实际效果,未提供替代方案对比。

6证据核验4 / 10 · 2.0/5

主文档与 snippets.md 相互印证,且引用了具体先例文件(cli.js、cli-output.js)可供核查。扣分点:这些先例文件未在提供材料中出现,五类模式'必须有测试'的要求仅为声明,无针对该技能的可复现测试或第三方执行证据,静态上限5内取保守值。

证据充分度: 评估于 2026年9月9日 审查版本 f8b929edf989
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 该技能仅适用于 OpenChamber 仓库内的终端 CLI 开发,不适合其他项目或仓库,语义触发时应核对目标仓库。
  • 技能文档引用的先例文件(cli.js、cli-output.js)未在本次审查材料中提供,静态审查无法核实其一致性;使用前建议人工核对。
  • 技能本身无版本号/变更日志,更新时可能悄然变化,建议锁定版本引用。
  • 技能要求五种模式均有测试覆盖,但未附带可直接运行的测试,落地成本需自行承担。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

这是 OpenChamber 仓库(一个 OpenCode AI 代理的桌面与网页界面项目)内 .agents/skills/clack-cli-patterns/SKILL.md 中的技能,采用 MIT 许可证。它规范了基于 @clack/prompts 的终端 CLI 开发方式:策略与校验必须先于界面呈现,交互提示只是体验增强而非强制手段。技能详细给出五种运行模式(交互 TTY、完整标志、非 TTY、--quiet、--)的提示、输出与失败语义契约,并提供 Clack 原语使用标准与集中式输出适配器模式。适用范围仅限终端 CLI(如 packages/web/bin/*),明确排除网页 UI 与 VS Code webview 样式工作。

该技能是一份指令文档,不执行代码:它指导开发者(或代理)在编写或修改 OpenChamber CLI 命令时,如何在所有模式下先运行安全与正确性校验;何时允许/禁止交互提示(非 TTY、--quiet、-- 下禁止提示);如何用 isCancel、cancel(...) 和 SIGINT 处理取消;如何按标准使用 intro/outro、log.*、note/box、spinner/progress/tasks 等 Clack 原语;如何集中封装 cli-output.js 适配器(isJsonMode、createSpinner、printJson 等薄层助手);以及 --quiet 输出紧凑机器可读行、-- 严格只输出 JSON 并保留非零退出码。还可加载 references/snippets.md 中的可复用代码片段。

  1. OpenChamber 贡献者新增 CLI 子命令,需要同时满足交互、--quiet、--、非 TTY 四种输出且退出码一致
  2. 开发者为长时间运行的操作(如 tunnel start/stop)加入 spinner 反馈,需在 quiet/ 模式下保持非动画
  3. 代理需要为流水线脚本生成确定性输出,避免交互提示导致挂起
  4. 团队统一错误提示风格,采用 [CODE] 短码(如 [PORT_MISMATCH])便于用户快速识别重复指引
  5. 审查现有命令是否满足技能列出的五项完成标准(默认 TTY、quiet、、非 TTY、错误路径)

这个 Skill 有哪些优点和局限?

优点
  • 以模式契约表明确界定每种运行模式的提示、输出与失败语义,减少歧义
  • 给出具体、可复制的薄层适配器函数清单(isJsonMode、createSpinner、printJson 等)与参考实现文件路径
  • 涵盖细节级 UX 规范:intro/outro 配对、spinner.clear()、依赖顺序的提问流、 initialValue 预填、窄终端可读性
  • 附有可加载的 references/snippets.md 代码片段,覆盖提示守卫、非交互回退、spinner 生命周期等常见实现
局限
  • 与 OpenChamber 代码库强绑定(packages/web/bin/*、@clack/prompts),直接用于其他项目需改编
  • 技能中未包含自动化测试套件的证据;完成标准仅是清单要求,无法验证现有命令是否已全部达标
  • 未说明如何在不使用 @clack/prompts 的项目中替代其原语
  • 仓库 README 主要描述整个 OpenChamber 应用,该技能本身的成熟度、使用频率与社区反馈无独立数据

如何安装这个 Skill?

技能随 openchamber/openchamber 仓库分发,路径为 .agents/skills/clack-cli-patterns/。获取方式:git clone https://github.com/openchamber/openchamber,然后将 .agents/skills/clack-cli-patterns 文件夹复制到你的 Agent Skills 兼容客户端的技能目录(如 Claude Code 的 .agents/skills/)。仓库 README 未单独说明此技能的安装步骤;可复用片段位于同目录的 references/snippets.md。

如何使用这个 Skill?

当创建或修改 OpenChamber CLI 命令、提示、终端输出、非 TTY 行为或 --quiet/-- 行为时,代理会依据技能描述自动加载。你也可以显式提示:"按照 clack-cli-patterns 技能为这个新 CLI 命令实现五种模式的输出契约"。实现时按技能要求加载 references/snippets.md,并将校验逻辑放在所有模式分支之前;完成标准是五个用例(默认 TTY、--quiet、--、非 TTY、错误路径)均产生确定性的输出和退出行为。

这个 Skill 与同类方案有什么区别?

源材料未提供可直接对比的替代方案;该技能自我定位为 OpenChamber CLI 一致性与安全策略的权威规范。

常见问题

我不用 OpenChamber,这个技能对我有用吗?
核心思想(策略先于 UX、按模式区分输出契约、集中输出适配器)是通用的,但示例、文件路径与 Clack 原语标准都针对 OpenChamber 代码库,移植需要改编。
技能会执行代码或访问网络吗?
不会。它是一份纯指令文档;按其实现时需要 Node.js 生态中的 @clack/prompts 库与对 OpenChamber 终端代码的文件访问,但技能本身不发起网络请求。
-- 模式下出错怎么办?
契约要求警告与错误以 JSON 字段(如 status、messages)表示,输出严格为纯 JSON,失败时保留非零退出码。
如何判断实现是否完成?
技能给出五项完成标准:默认交互 TTY 输出、--quiet 输出、-- 输出、非 TTY(管道)行为、以及人和 两种模式下的错误路径,全部需经测试且行为确定。

同仓库的其他 Skills

均来自 openchamber/openchamber

开发与工程

Locale UI Patterns —— OpenChamber 界面文案国际化规范

为 OpenChamber 项目编写或修改任何用户可见文案时,确保每个语言的字典都拿到真正的翻译,而不是英文占位符。

开发与工程

OpenChamber 中继传输技能

为 OpenChamber 的端到端加密中继隧道正确编写 WebSocket、SSE 与流式端点,避免只在桌面直连下能通过的隐性中继缺陷。

开发与工程

OpenChamber 桌面外壳技能

在修改 OpenChamber 的 Electron 主进程、preload、IPC 或打包逻辑时,为 AI 代理提供正确的架构边界与安全规则。

设计与前端

OpenChamber 拖拽排序技能(drag-to-reorder)

一份沉淀自真实项目的 @dnd-kit 拖拽排序实践指南,专门解决变宽条目、换行布局和移动端触摸交互中最容易踩的坑。

设计与前端

OpenChamber 设置界面模式指南

在修改 OpenChamber 设置页面、对话框和搜索行为时,强制代理使用共享原语与本地化、搜索注册约定,避免各页面各自造轮子。

开发与工程

OpenChamber 性能工程技能

在优化单条操作之前先消除结构性浪费:为交互、渲染、轮询、缓存与大规模数据路径提供以测量为准的性能优化方法论。

开发与工程

OpenChamber UI/API 分层规范

为 OpenChamber 共享界面代码划定数据访问边界:官方走 SDK、自有能力走 RuntimeAPIs,避免硬编码 URL、令牌与传输假设。

设计与前端

OpenChamber 主题系统技能

在修改 OpenChamber UI 时,强制使用语义化主题令牌、共享按钮/图标契约与键盘导航规范,避免硬编码颜色和重复实现。

开发与工程

OpenChamber 变更纪律

在修改 OpenChamber 代码库时,强制执行“最小完整变更 + 最窄级别验证”的工程纪律,防止局部修复演变成投机性重写。

开发与工程

serve-sim — 终端里的 iOS 模拟器遥控器

无需打开 Xcode,就能在终端中启动、安装、串流并操控 Apple 模拟器里的 Capacitor iOS 应用。

开发与工程

OpenChamber 同步状态不变量守则

在改动会话同步、事件归约器、轮询与缓存逻辑时,一套强制执行的状态所有权与失败语义规范,防止数据误删与状态错乱。

相关 Skills