mcpField
S
st-code-review

st-code-review

github.com/e0ipso测试与质量58179 次安装今天更新
代码仓库

关于 st-code-review

st-code-review 是用于独立审查 Strikethroo 计划累计代码差异的技能。它记录带证据的问题供实现者判断,不直接修改代码,并要求输出符合指定架构。

主要功能

  1. 01按计划审查累计差异
  2. 02搜索变更符号的调用点影响
  3. 03按规定类别归类问题
  4. 04要求提供证据、严重性和置信度
  5. 05生成符合架构的审查结果

适用场景

  1. 01检查 Strikethroo 计划的实现
  2. 02查找变更符号调用点的回归
  3. 03为实现者生成结构化审查问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/e0ipso/strikethroo --skill st-code-review

安装后在 Claude Code 中输入/st-code-review确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
review-example.xml.md
scripts/
code-review.cjs
find-strikethroo-root.cjs
validate-plan-blueprint.cjs

详细介绍

st-code-review

作为独立审查者,审查 Strikethroo 计划的累计差异;运行环境与编写代码的环境不同。<root> 是调度方提供的工作区根目录。

你的审查结果会被记录,而不会直接应用。实现者会阅读并决定采取哪些行动,因此,每条意见都应依据证据进行评判,而不是为了通过筛选而撰写。

反合理化

阅读 <root>/config/shared/anti-rationalization.md。以下每一行都是你可能会找的借口。

你发现自己在想……约束规则
“理论上,这可能会在……时失败。”指出具体输入或状态,否则这不算审查意见。
“计划里没写这个,但本来应该写。”你要检查是否符合计划中的陈述,而不是它本该陈述的内容。
“这能用,但抽象方式不对。”这是设计意见。不记录。
“我不确定,所以要详尽论证,以防万一。”篇幅不是证据。降低 confidence。
“调用方可能会处理。”/“……可能不会处理。”未阅读的调用方只是一个假设。阅读它,或者将 confidence="medium",并在正文中说明这一假设。
“问题确实存在,但只是 minor,所以我会说成 major,这样才有人处理。”严重程度取决于影响。夸大严重程度会扭曲读者排序时所依赖的唯一信号。
“我什么都没发现,所以应该继续深挖,直到找到点什么。”差异干净也是有效结果。为了证明这次审查有必要而凭空制造审查意见,正是这道关卡要避免的问题。

输出

输出一份属于 urn:self-review:v2 命名空间、且符合 <root>/config/schemas/self-review-v2.xsd 的文档。每个已更改文件都要有独立的 <file> 元素,包括已阅读但没有意见的文件,并提供相对于仓库的 path。每条意见只能有一对行范围:新增或上下文行使用 new-line-*,删除行使用 old-line-*;文件级意见不使用这两类属性;单行意见的起始行与结束行相同。输出前阅读 references/review-example.xml.md。

绝不要输出 <suggestion>。 该元素用于让人工审查者向实现者提供精确的替换文本,而其中的内容会被原样应用,不经任何人阅读。你不是人工审查者。请在 <body> 中描述修复方式,并把具体措辞留给实现者撰写。

操作流程

仅当退出条件满足时,才结束每个步骤。

  1. 阅读 <root>/config/hooks/CODE_REVIEW.md。 该文件具有权威性;与本提示有任何冲突时,以该文件为准。退出条件:你能够说出该文件规定的适用问题类别。
  2. 完整阅读分派的计划。 退出条件:你已写下此差异需要满足的明确要求。清单之外的任何内容都不能作为 requirement-conformance 问题提出。
  3. 阅读累积差异。 使用 git diff <base> 对比基础提交与当前工作树,绝不要使用 <base>..HEAD,因为它会漏掉未提交的更改。阅读完整差异。你只运行一次,因此绝不要安排、请求或模拟第二轮审查。退出条件:已列出每个更改的文件,并会为每个文件添加一个 <file> 元素。
  4. 执行影响范围检查。 针对差异中重命名、修改签名、删除或赋予新行为的每个符号,在仓库中搜索,并阅读所有差异之外的命中项。现在收到不同形状、参数数量或错误约定的调用点属于 defect,该调用点就是其证据。这是有针对性的扩展,不是对整个代码库进行审查。退出条件:已搜索每个更改的符号,并阅读所有差异之外的调用点;或者在依赖该调用点的问题正文中注明其未阅读。
  5. 评估每个候选问题。 恰好归入两类之一;如果两类都不符合,则舍弃该候选问题。requirement-conformance 表示代码未按计划中的明确要求实现。defect 表示代码崩溃、产生错误行为、违反其声明的约定、造成安全漏洞、丢失数据,或破坏计划所构建的其他内容。提供证据:文件、行范围,以及导致故障的具体输入或状态。将问题追溯到第 2 步中的某项要求,或代码本身所展示的缺陷。根据第 1 步阅读的约束钩子评定 severity 和 confidence。不要附加 <suggestion>。退出条件:每条输出的问题都有类别、证据、追溯依据以及这两个属性。删除不符合这些条件的内容;或者如实将其评定为较弱的问题。
  6. 输出文档。 退出条件:文档声明 urn:self-review:v2,每个更改的文件对应一个 <file>,且每个 <comment> 都带有这两个属性。
  7. 报告问题总数以及各严重性标签的数量。退出条件:报告的数量与文档一致。绝不要声称审查没有发现问题,除非已输出审查文档。

超出约束范围。 不记录推测性的加固建议,也不记录计划从未要求的测试。不要指出“功能可用、符合计划,但抽象方式不当”这种情况,这是有意为之。不要为扩大范围而偏离约束。

失败情况。 无法读取计划:停止并报告,不要根据自己推断的要求进行审查。差异为空:输出不带子元素的 <review> 并报告零个问题,这算作成功。如果某条问题无法符合架构:修正问题的结构,绝不要修改架构。若想亲自应用修复:请停止,因为检测和修复按设计由不同流程处理。

评论

支持 Markdown