用途
interface-review 用于审查一次变更(change),而不是一个屏幕:未提交的工作、当前分支,或一个拉取请求。它覆盖界面质量,不覆盖正确性、测试、安全与性能,这些属于项目通用代码审查。
该技能只负责变更范围:解析审查目标、把被改文件扩展为受影响的界面、读取 diff 两侧、分类每条发现。领域规则属于 better-* 系列技能;模式、严重性、合并、覆盖率、上限、输出格式与结论属于 better-interface,本技能将审查交给它,不在此重复或覆盖其规则。
主要能力
- 范围解析:处理目标与命令、默认分支、合并基点、PR 与 fork 引用、仓库状态、无可审查内容、重命名、排除项与消费者扩展。
- 删除信号:检查 hunk 的 - 侧,判断被删除的无障碍、焦点、动效、文本等信号,并路由到对应技能。
- 核心原则:
- 先解析变更范围。未提供目标时按顺序解析:HEAD 领先合并基点则审查该范围加未提交更改;工作区脏则审查未提交更改;两者皆无则停下询问。排除锁文件、快照、生成输出、第三方代码与二进制文件,并说明排除了什么。
- 无变更时询问而非虚构。不得自行回退到 HEAD~1..HEAD。应陈述仓库事实,提供选项并等待:上次提交(以短 SHA 与主题命名)、用户指定的目标、或整仓库界面审计。
- diff 不是界面。被改文件是证据,不是审查对象;其影响半径是它渲染的表面。默认扩展一跳(直接导入者与调用者),设计令牌、主题值与共享原语扩展两跳。最多审查五个消费者并说明未扩展数量。
- 读取删除行。回归在变更后状态中不可见;读取每个 hunk 的 - 侧。删除只是线索,只有当变更未替换它时才成为回归,由领域技能判断并确认。
- 分类每条发现:Introduced(本次变更造成)、Regression(削弱了原本正确的功能)、Pre-existing(存在于被触及代码但非本次变更造成)。按 diff 实际触及内容判定,必要时用 git blame 对基线确认。
- 让变更符合其声明意图:读取 PR 标题与正文、关联 issue、提交信息,检查界面是否兑现承诺。关注不完整变更,例如新变体只应用于部分状态、新字符串缺少翻译条目、新组件缺少空/加载/错误/禁用/窄宽度状态、控件只加到一个表面而兄弟表面未加。不报告范围蔓延。
- 把审查交给 better-interface:附上范围块与每条发现的状态,由它路由领域技能、应用严重性、合并、执行上限并给出结论。若不可用,报告已解析范围与文件清单,指出缺失技能并停止,不虚构严重性、上限或结论。
- 绝不修改工作区:变更审查是只读的,包括检出。可 fetch PR 引用,但绝不 checkout。gh pr checkout、git checkout、git switch、git stash 一律禁止。渲染验证为可选项,默认标记为未验证;如需使用隔离 worktree 并在完成后移除。
使用方式
命令形如 /interface-review quick pr 482,模式之后的部分是目标。无目标时按原则 1 的顺序解析。审查输出格式由 better-interface 拥有,本技能提供范围块,字段包括 Target、Base ref、Head ref、Commits、Files in scope、Excluded、Surfaces expanded,并为每条发现附状态。在 Verification 下列出确切的 git 与 gh 命令及结果,包括每次对 .git 的写入(fetch、deepen、set-head、worktree),使只读声明可审计。
常见错误
包括:只审查一次杂散编辑而非整个分支(应先检查合并基点并报告两个计数);因无变更而审查上次提交(应陈述事实并提供选项);审查 hunk 而不看其消费者(应扩展一跳,令牌与原语两跳,并说明跳过内容);只读 diff 的 + 侧(应搜索 - 侧的删除信号);把等价替换报告为回归(应路由给所属技能并只报告其确认内容);把删除报告为新错误(应标为 Regression);把 hunk 附近未触及的行标为 Introduced;为审查而检出 PR(应 fetch 引用并就地审查);引用被审引用上不存在的行号(应对范围块中的 head ref 引用);在此重述模式、严重性、上限、输出格式或结论(应交由 better-interface);报告中包含正确性或安全发现(应点名一次并指向项目代码审查)。
适用场景与限制
适用于需要审查一次界面相关变更、尤其关注删除行可能引入的回归与变更声明意图是否兑现的场景。限制:不覆盖正确性、测试、安全、性能;严重性与结论依赖 better-interface;无法获得该技能时应停止而非自行发挥;渲染与运行时声明默认为未验证;审查过程只读,不得检出或 stash。