用途
lean-review 是 CocoLean 体系下的差异范围过度设计审计。它只审查当前未提交的 git diff(暂存与未暂存改动),不对整个代码库做审计,目的是在开发者提交前这一最易接受反馈的时刻给出可操作结论。
运行前提
执行前需确认 .cocoplus/ 目录存在。若不存在,应输出“CocoPlus is not initialized. Run $pod init first.”并停止。
主要能力
第一步运行确定性差异扫描器:调用 cocolean/lean-review-engine。该脚本读取 git diff,进行 AST 级模式匹配,输出 JSON 发现列表。若没有未提交改动,则提示无改动并停止。
第二步按五类标签对发现进行分类,按严重程度分三层:
第一层(存在性,优先展示):
- delete:没有调用方、没有测试、spec.md 或 discuss.md 中也没有声明未来用途的代码。若触及信任边界则为 blocking,否则为 important。
- yagni:为当前规格中不存在的需求而投机添加的抽象、配置开关、扩展点或泛化层。无安全风险时为 nit;若扩大攻击面或增加未测试代码路径则为 important。
第二层(正确性,其次展示):
- stdlib:重新实现 Snowflake 内置函数或标准 SQL 已有功能的逻辑,需在发现中给出具体替代构造。严重程度 important。
- native:用自定义 AI 函数完成更适合用原生 Snowflake 对象(物化视图、stream、task、动态表、策略、alert)表达的任务,需给出推荐的原生对象类型。严重程度 important。
第三层(风格,最后展示):
- shrink:执行单一逻辑操作但代码超出所需,实现正确但过于冗长。严重程度 nit。
第三步按严重程度顺序展示发现,包含标签、文件与行号、严重程度、问题说明和 Action 建议。若没有发现,输出 clean diff 提示。
第四步例外条款检查:在展示任何发现前,确认其不针对以下构造:信任边界验证、数据丢失防护机制、安全控制、法规合规要求、防止静默数据损坏的错误处理、spec.md 中明确要求的能力。命中例外则静默丢弃该发现。
第五步模式相关行为:读取 .cocoplus/modes/lean.mode。lite 模式仅作建议展示,开发者可照常提交;full 模式建议先处理第一层(delete、yagni),第二三层为建议;ultra 模式下 blocking 发现会阻止提交,important 发现需显式确认并给出理由。
使用方式
在 .cocoplus/ 已初始化的仓库中,对存在未提交改动的仓库执行 lean review。技能内部调用 cocolean/lean-review-engine 扫描差异,再依上述步骤分类、排序、过滤并展示结果。
适用场景
适用于 Snowflake 相关代码提交前的快速审查,帮助识别无调用方代码、投机性抽象、重复实现内置功能、可用原生对象替代的自定义逻辑以及可简化的冗长实现。
限制
仅覆盖当前 diff,不做全库审计;需要 .cocoplus/ 初始化;无未提交改动时不产生结果;存在例外条款的构造不会被报告;不同模式下的执行强度不同。具体价格、平台支持范围等资料暂未提供。