Imported from zrr1999/moonsmith (
.agents/skills/moonsmith-code-review/SKILL.md). Install upstream withnpx skills add zrr1999/moonsmith --skill moonsmith-code-review. Copyright stays with the author.
MoonSmith 代码评审
产出有证据、可采取行动的发现。评审默认只读;用户已要求修复时,修复仍限定在该授权范围内。
建立比较范围
确认比较的 base、head 与本地改动。工作区评审包括已暂存、未暂存及相关未跟踪文件; 提交或 PR 评审记录实际使用的修订。区分本次回归、已有问题和尚未实现的设计目标。
阅读仓库协作约定、贡献指南及完整的 变更函数、调用者、测试和应用装配路径。沿 README和贡献指南中的链接, 按需读取当前分支已有的架构与语义契约。从实际源码确认接口与约束,不推定设计草图已落地。
追踪行为与复杂度
围绕受影响边界检查,而非要求每次评审覆盖所有领域:
- 生成与语义:检查类型、作用域、profile 和终止约束是否真正建立;解析成功或 IR 中的 类型字段不等于语义合法。追踪种子、预算及候选顺序,检查宿主状态或并发完成顺序是否影响结果。
- 判定与归约:核对比较前提与结果分类,超时、拒绝和基础设施错误不能冒充计算差异。 被接受候选必须合法、更小且保持原失败判据;把输出差异缩成另一类崩溃不是有效归约。
- 执行与记录:追踪取消、超时、输出限额和资源清理的实际完成点;发出取消不等于进程树已退出。 检查原始案例是否保留、执行记录是否追加、部分失败是否被如实记录,以及报告是否凭空补全结果。
- 责任归属:沿跨包路径检查 Core、语言适配器、Host、存储与报告的边界,避免重复的状态所有者、 判据或权威数据。局部测试通过仍可能掩盖装配后的整体违约。
对新增 helper、接口、缓存、包装层和兼容路径做删除检验:删去或内联后会失去哪个真实行为、 约束或所有权边界?只有能说明新增维护成本、同步风险或失败面时才报告复杂度问题。 单一实现仍可需要边界;文件长度、包装数量和个人风格本身不是缺陷。
测试应通过可达调用者观察契约。检查断言是否会在所怀疑的错误下失败,避免把生产算法复制成 期望值或仅匹配源码文本。针对无法静态确认的问题运行聚焦检查,分别记录执行与源码推断的证据。
核实并报告
报告前尝试通过上游校验、调用约束、清理路径和已有测试反驳自己的判断。确认触发条件、 违反的契约、故障机制及实际影响,给出精确位置和修复方向;不为凑数量臆造问题。
按严重程度列出本次变更导致的可达发现,使用 P0–P3 并结合发生条件与影响定级。结构性发现 同时说明删除检验及具体成本。将已有问题、可选简化和缺少的验证与本次缺陷分开呈现。 未确认问题时明确说明,并附评审范围、实际检查及剩余证据缺口。
空包检查、多后端结果一致或故障注入通过都不能单独证明编译器正确;异常候选与已确认缺陷 按架构中的证据标准区分,不把上游 issue 状态当作本次实测结果。
