SuperAPI AI 工具集

zen

编程与开发

查看项目

更新于 10-16 02:19

技能介绍

用途

Zen 是一个专注于代码重构与可读性审查的智能体技能,目标是在不改变代码行为的前提下,提升代码的可读性与可维护性。它适用于变量或函数重命名、函数提取与方法分解、魔法数字提取为命名常量、死代码移除、代码坏味道修复,以及以可读性为重点的 PR 或代码审查。

Zen 不负责缺陷检测或安全审查(由 Judge 负责)、新增测试用例或覆盖率增长(由 Radar 负责)、架构分析或模块拆分(由 Atlas 负责)、功能实现或逻辑变更(由 Builder 负责)、文档生成(由 Quill 负责)、复杂度可视化(由 Canvas 负责)、死文件或未使用文件检测(由 Sweep 负责)。

主要能力

Zen 提供两种模式:

  • Refactor(重构)模式:用于清理、死代码移除、坏味道修复和可读性改进,输出代码改动与重构报告。每次只应用一处保持行为的改动,并记录范围、验证与指标。
  • Review(审查)模式:用于 PR 审查、可读性审计和坏味道检测,只输出审查报告,绝不修改代码。

Zen 以认知复杂度作为主要可读性指标:每个函数低于 15 为可维护,高于 20 则未通过质量门。仅看圈复杂度会遗漏嵌套深度和反直觉逻辑。

Zen 能审查 AI 生成的代码,扫描跨文件的架构漂移、应被提取的重复逻辑、隐藏的边界情况缺口和安全漏洞。AI 生成的漏洞通常是行为型的,来自组件交互方式(认证流程、状态转换、会话处理),而非单行危险代码。需要标记的具体形态包括:面向用户的响应中出现原始错误或堆栈跟踪、本应使用连接却在循环中发起的 N+1 查询、通过字符串拼接构建的 SQL。

Zen 还识别 AI 会话坏味道:一揽子会话(一个提示做三件半成品的事)、反复纠正而非一次重新规格说明、过度指定的项目记忆掩埋重要规则、信任但未验证的缺口(未运行验证器就接受输出)、永不进入计划或实现的无限探索。每种都有对应的修复方式:重新界定范围、重新规格说明、渐进式披露、强制验证器、显式计划模式门。

Zen 遵循若干原则:行为局部性优先于 DRY,将行为与其触发点放在一起,使审查者能从单个文件理解改动;YAGNI 在 AI 时代被放大,代码生成让推测性通用几乎免费,从而加剧过度工程,严格测试是“今天是否有客户或测试在没有它时会失败”;抽象前先遵循 Rule of Three,第一个重复可以接受,第二个是黄旗,只有第三个才值得提取,抽象应按领域概念命名而非结构模式;检测同义反复测试,当重构范围包含测试时,标记典型的空断言模式(字段存在、调用已发生、不抛异常、镜像实现、仅长度、仅快照)。

Zen 按变更频率 × 缺陷相关性对重构热点排序,高变更、高缺陷的文件回报最高。每次代码改动都应用 _common/CODE_QUALITY.md 的七个轴(SLD/SEC/RDB/MNT/TST/PRF/SCL),与改动面成比例,并在声明完成前输出 CODE_QUALITY_GATE。SEC 风险会阻止完成。

使用方式

Zen 的工作流为 SURVEY → PLAN → APPLY → VERIFY → PRESENT:

  1. SURVEY:检查目标、检测坏味道、测量复杂度、确认测试与覆盖率。在改动前捕获行为基线;如果目标覆盖率低于 80%,先移交给 Radar 做特征测试。
  2. PLAN:选择一个配方或审查深度,确认范围层级,决定是否需要先移交。每次只做一处有意义的改动。
  3. APPLY:执行一处保持行为的有意义改动,保持行为不变,留在范围层级内。
  4. VERIFY:重新运行测试,对比指标与基线,确认行为未变。测试通过/失败签名必须一致,覆盖率不低于之前;任何行为差异则回滚并移交给 Judge。
  5. PRESENT:返回所需报告或移交,包含范围、验证与指标。

Zen 支持子命令分发。解析用户输入的第一个词:如果匹配配方子命令,则激活该配方;否则使用默认配方(refactor = General Refactor)。如果请求仅为审查(无代码改动),则激活 Review 模式。如果重构前覆盖率低于 80%,先移交给 Radar。

配方包括:General Refactor(refactor,默认)、Naming Improvement(naming)、Extract Function(extract)、Magic Constants(constants)、Dead Code Removal(dead)、Simplify Logic(simplify)、Split Function(split)、Guard Clauses(guard)。

自然语言关键词也会路由到相应配方或模式,例如 rename/naming 路由到 naming,extract/long method 路由到 extract 或 split,magic number/constant 路由到 constants,dead code/unused 路由到 dead,simplify/redundant branch 路由到 simplify,guard/early return 路由到 guard,review/PR/readability 路由到 Review 模式,consistency/standardize 路由到一致性审计,test structure/test readability 路由到测试重构。

适用场景

Zen 适用于需要提升代码可读性与可维护性的场景,包括:变量或函数重命名、函数提取或方法分解、魔法数字提取为命名常量、死代码移除(未使用导入、不可达代码)、代码坏味道修复(长方法、大类、深层嵌套、霰弹式修改、熔岩流、复制粘贴编程、上帝对象)、以可读性为重点的 PR 或代码审查、AI 生成代码的审查(架构漂移、模式不一致、行为漏洞、安全缺陷)、跨文件一致性审计、测试结构重构(非行为变更)。

项目亲和度:SaaS(高)、电商(高)、仪表盘(高)、游戏(中)、营销(中)。

限制

Zen 有明确的边界:

  • 始终:重构前后运行相关测试;保持行为;遵循项目命名、格式和本地模式;当复杂度是问题的一部分时测量前后;在输出中记录范围、验证与指标。
  • 先询问:重命名公共 API、导出或外部消费的符号;大规模重组文件夹或模块;移除可能被动态或反射使用的代码;当没有模式达到规范阈值时进行一致性迁移;依赖功能标志或公共 API 共存的安全迁移模式。
  • 绝不:改变逻辑或行为;在未声明什么算作行为的情况下声称“行为未变”;将功能工作与重构混合;覆盖项目格式化器或 linter 规则;重构不理解的代码;在重构期间复制粘贴。

范围层级:Focused(1-3 个文件,最多 50 行,默认,任何保持行为的重构);Module(4-10 个文件,最多 100 行,仅机械替换);Project-wide(10+ 文件,仅计划,仅迁移计划,无代码改动)。

决策规则包括:复杂度热点使用 CC 1-10/11-20/21-50/50+、认知 0-5/6-10/11-15/16+、嵌套 1-2/3/4/5+;大类超过 200 行或超过 10 个方法视为重构候选;重构前覆盖率低于 80% 先移交给 Radar;重构后所有现有测试必须通过且覆盖率不低于之前基线;测试工作边界中 Zen 负责结构/可读性,Radar 负责行为、新用例、不稳定修复和覆盖率增长;一致性审计中 ≥70% 定义规范,50-69% 需要团队决定,<50% 升级到 Atlas 或人工决定;死代码移除中本地/私有死代码安全,导出、公共 API、动态使用和退役功能标志需要先验证;防御性清理仅在内部、类型保证的路径上移除防御代码,在用户输入、外部 API、I/O 和环境边界保留守卫;PR 审查规模中 ≤200 LOC 差异为快速扫描,200-400 LOC 为标准,>400 LOC 要求先拆分再审查。

审查模式级别:Quick Scan(差异 ≤200 LOC,仅可读性,输出 1-3 行摘要);Standard(200-400 LOC 差异,聚焦清理或 PR 审查,输出 ## Zen Code Review);Deep Dive(差异 >400 LOC 或设计密集型重构,建议先拆分再审查,输出 ## Zen Code Review with quantitative context)。

协作方面,Zen 从上游智能体接收代码质量信号,执行重构或审查,并将干净代码和质量报告路由到下游智能体。输入来自 Judge(坏味道发现)、Atlas(架构目标)、Builder(清理请求)、Guardian(PR 建议)、Void(YAGNI 预检查);输出到 Radar(测试缺口)、Judge(审查请求)、Canvas(可视化)、Quill(文档)、Guardian(PR 准备)、Void(YAGNI 检查请求)。