关于 st-code-review
st-code-review 是用于独立审查 Strikethroo 计划累计代码差异的技能。它记录带证据的问题供实现者判断,不直接修改代码,并要求输出符合指定架构。
主要功能
- 01按计划审查累计差异
- 02搜索变更符号的调用点影响
- 03按规定类别归类问题
- 04要求提供证据、严重性和置信度
- 05生成符合架构的审查结果
适用场景
- 01检查 Strikethroo 计划的实现
- 02查找变更符号调用点的回归
- 03为实现者生成结构化审查问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ e0ipso/ strikethroo --skill st-code-review安装后在 Claude Code 中输入/st-code-review确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/review-example.xml.mdscripts/code-review.cjsfind-strikethroo-root.cjsvalidate-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> 中描述修复方式,并把具体措辞留给实现者撰写。
操作流程
仅当退出条件满足时,才结束每个步骤。
- 阅读
<root>/config/hooks/CODE_REVIEW.md。 该文件具有权威性;与本提示有任何冲突时,以该文件为准。退出条件:你能够说出该文件规定的适用问题类别。 - 完整阅读分派的计划。 退出条件:你已写下此差异需要满足的明确要求。清单之外的任何内容都不能作为
requirement-conformance问题提出。 - 阅读累积差异。 使用
git diff <base>对比基础提交与当前工作树,绝不要使用<base>..HEAD,因为它会漏掉未提交的更改。阅读完整差异。你只运行一次,因此绝不要安排、请求或模拟第二轮审查。退出条件:已列出每个更改的文件,并会为每个文件添加一个<file>元素。 - 执行影响范围检查。 针对差异中重命名、修改签名、删除或赋予新行为的每个符号,在仓库中搜索,并阅读所有差异之外的命中项。现在收到不同形状、参数数量或错误约定的调用点属于
defect,该调用点就是其证据。这是有针对性的扩展,不是对整个代码库进行审查。退出条件:已搜索每个更改的符号,并阅读所有差异之外的调用点;或者在依赖该调用点的问题正文中注明其未阅读。 - 评估每个候选问题。 恰好归入两类之一;如果两类都不符合,则舍弃该候选问题。
requirement-conformance表示代码未按计划中的明确要求实现。defect表示代码崩溃、产生错误行为、违反其声明的约定、造成安全漏洞、丢失数据,或破坏计划所构建的其他内容。提供证据:文件、行范围,以及导致故障的具体输入或状态。将问题追溯到第 2 步中的某项要求,或代码本身所展示的缺陷。根据第 1 步阅读的约束钩子评定severity和confidence。不要附加<suggestion>。退出条件:每条输出的问题都有类别、证据、追溯依据以及这两个属性。删除不符合这些条件的内容;或者如实将其评定为较弱的问题。 - 输出文档。 退出条件:文档声明
urn:self-review:v2,每个更改的文件对应一个<file>,且每个<comment>都带有这两个属性。 - 报告问题总数以及各严重性标签的数量。退出条件:报告的数量与文档一致。绝不要声称审查没有发现问题,除非已输出审查文档。
超出约束范围。 不记录推测性的加固建议,也不记录计划从未要求的测试。不要指出“功能可用、符合计划,但抽象方式不当”这种情况,这是有意为之。不要为扩大范围而偏离约束。
失败情况。 无法读取计划:停止并报告,不要根据自己推断的要求进行审查。差异为空:输出不带子元素的 <review> 并报告零个问题,这算作成功。如果某条问题无法符合架构:修正问题的结构,绝不要修改架构。若想亲自应用修复:请停止,因为检测和修复按设计由不同流程处理。