技能家族 · 级别:参考

质量与测试

五个证明工作正确的技能:simplify、浏览器测试、iOS 模拟器、dogfood QA、线上 UX polish。

ce-simplify-code

目的:简化代码以提升复用、质量、效率,并剪除不带来价值的测试与注释 — 行为保持不变。5 个审查者并行。

5 步流程

  1. 范围:用户指定 > 与 base 的 git diff > 指定文件;用户指定的范围可以是整个仓库、一个区域或一个路径。跳过 若无实质代码(仅文档/生成/外部依赖/依赖项)。
  2. 5 个审查者并行:code-reuse-reviewer、code-quality-reviewer、efficiency-reviewer、comment-reviewer、test-value-reviewer。人格 prompt 放在 references/personas/;逐字 传入,不要改写。
  3. 直接应用有价值的发现;低价值发现记为 skipped,不再询问。只 编辑已解决的范围 + import/export 行。
  4. 验证行为保持:typecheck、lint、定向测试、若无法衡量范围则跑全量套件。修复或回退 由简化引发的失败。
  5. 总结 按 复用 / 质量 / 效率 / 注释 / 测试价值 分别列出已应用项;不要用“净减少行数”作为成功指标。

调用令牌

mode:pipeline 与每个 proof-test:<path> 都在把其余输入读成范围之前剥掉。proof-test 路径是第 3 步的上下文、永远不是范围——它点名"这个测试证明了本次改动",简化要绕开它;调用方可以给多个。

硬规则

References(5 个人格 + 2 份流程参考)

ce-test-browser

目的:对当前 diff/PR 影响到的页面跑浏览器测试。优先用宿主原生浏览器;用 agent-browser 兜底;绝不引入第三种浏览器栈。

驱动策略(3 层,只选一种)

  1. 宿主原生集成浏览器 — Claude Code 的 Chrome 集成、Cursor 的集成等。遵循宿主自身指令。
  2. agent-browser CLI 兜底 — references/agent-browser-driver.md。
  3. 绝不 独立的 Play / Puppeteer / 第三方浏览器 MCP。

模式

模式行为
手动(默认)由用户控制 dev server。在兜底路径下询问 headed/headless。
流水线(mode:pipeline)无头,永不在 human-verify 处暂停。记录 + 带原因 skip。在 server-start 块内执行 scripts/resolve-port.sh --free。

端口解析

scripts/resolve-port.sh 顺序:参数 --port → package.json dev 脚本中的 --port → .env* 中的 PORT= → 3000。每次 shell 调用独立执行。

路由映射

流水线模式下的覆盖规则

结果格式

每个被影响的路由一行:Pass / Fail / Skip(附原因)。末尾汇总。漏掉一条路由 = 失败。

References(3 文件,219 行)

ce-test-xcode

目的:通过 XcodeBuildMCP 在模拟器上测试 iOS 应用。disable-model-invocation: true — 仅手动调用。

2 个阶段

  1. 准备与启动(references/setup-and-build.md):XcodeBuildMCP 可用性 → 项目 + scheme → 模拟器选择 → 构建 → 安装 → 启动 → 日志捕获。
  2. 演练与报告(references/test-and-report.md):每屏证据 → 仅人工流程 → SwiftUI 内联链接限制 → 失败处理 → 清理 → 固定汇总。

结果枚举

按表面:PASS / FAIL / SKIP。整体:只要有 FAIL 即 FAIL;无 FAIL 但存在范围性跳过时为 PARTIAL;其余为 PASS。

边界

若需要修复,以收窄的权限调用 ce-debug — 收窄到不进行 commit/push/PR。

ce-dogfood

目的:无人值守的浏览器 QA。Diff 范围(非全应用)。驱动真实浏览器,用回归测试修小问题,按产品人格评判体验,写出一份耐久报告。

disable-model-invocation: true — 手动调用。

7 个阶段(顺序不可变)

  1. Scope
  2. Analyze the diff
  3. Map the flows
  4. Derive the matrix
  5. Serve
  6. Execute
  7. Fix loop → report

硬规则

报告

<root>/dogfood-reports/YYYY-MM-DD-<branch-slug>-dogfood.md,基于 references/dogfood-report-template.md。矩阵一成立就建(全 Pending),每个场景判完与每次修复提交后更新——磁盘上的报告是后续运行或同事续接的依据,中断的运行必须留下模板形状的检查点,而不是一张裸矩阵。

要不要叫人

只有两种情况停下来问:跑不下去而缺口只在用户手里(例如应用启动需要的密钥);下一步会改动用户自己的工作(例如切他的 checkout)。其余需要人做的事一律记录下来,收尾时一次性交回。两种记录态:

每种都只结束该场景、不结束运行:矩阵继续跑,绝不在本轮或续接时静默重排一个已 blocked 的场景。

References(4 文件)

ce-polish

目的:通过实时用户反馈打磨 UX。disable-model-invocation: true — 仅手动。

循环

用户在浏览器里看线上功能 → 用户说改哪里 → 仅在必要时检视 → 编辑 → 热重载 → 再看。用户主导;没有自主清单。

Live 模式

任何 server 启动之前问一次:live 还是 traditional。live 模式需要环境里有 OpenAI key——页面里运行一个语音访谈者,听得见用户说话、被告知用户的点击与圈画、在用户指点或要求时查看屏幕;会话流式送到本技能在本地运行的端点。riffrec 尚未接入应用时,会在当前分支上留一个 setup commit(新增 riffrec 依赖与 provider 挂载),会话结束后保留;这一切在提问时一并披露。live 会话由 references/live-start.md(前置条件、安装、端点、URL 交接)接管,再路由到 references/live-loop.md(会话与收尾);传统流程的步骤 2–5 在 live 会话中不运行。riffrec 的浏览器不在本机时(LAN / tailnet 对端),references/live-remote.md 规定两个 origin 的可达与 HTTPS 规则——浏览器只向安全上下文授予麦克风与屏幕捕获。

riffrec 从 riffrec@^2.2.1 起在 npm 包里即含「能看的访谈者」能力(点击播报、look_at_screen、端点确认后不再产出 zip),因此安装走 registry 而非 git pin;实际安装的版本写进 setup commit 消息与报告。live 会话的收尾除常规报告外,还给出未应用单元的残留清单与会话日志路径。

边界

收尾

用户说完成时,调用 ce-commit 提交 polish 改动。汇报 commit、仍在运行的 server URL、残留阻塞。

References(16 文件,1,248 行)

polish 技能拥有最深的框架专属 dev-server 配置库 — 每个支持的框架一份(Astro、Next、Nuxt、Rails、Remix、SvelteKit、Vite、Procfile)。另有 references/launch-json-schema.md 描述 .claude/launch.json。

跨技能边界

FromTo何时
ce-simplify-code(输出:对工作树的编辑)lfg step 3
ce-test-browser(输出:报告)lfg step 8
ce-test-xcodece-debug(收窄)需要修复时;以收窄的权限
ce-dogfoodce-worktree, ce-debug, ce-commit, ce-compound按需委托
ce-polishce-commit收尾时