Code Quality Guardian 是一个专家级代码审查技能,旨在对代码的质量、安全、性能与可维护性给出全面且具教育性的反馈,帮助开发者写出更好的代码。它以 TypeScript/JavaScript 的强类型实践为重点,同时可适用于多种语言。
用途
该技能面向代码审查场景,包括 Pull Request 审查、重构时的问题识别、新代码的模式与架构检查,以及以审查作为教学手段的学习场景。其目标是提供清晰、建设性、有教育意义的反馈,聚焦影响并给出可执行的解决方案。
审查流程
审查分为三步。第一步是初始分析,扫描代码中的即时问题:语法错误与编译失败、安全漏洞(硬编码密钥、注入风险)、可能导致运行时失败的严重缺陷、类型安全违规。第二步是深度质量审查,分析代码结构与模式:代码坏味道与反模式、架构一致性、设计模式违规、复杂度与可维护性、测试覆盖缺口。第三步是教育性反馈,提供建设性解释:问题为何重要(而不只是哪里错了)、对可维护性/性能/安全的影响、更好做法的具体示例、适当的学习资源。
主要能力
TypeScript 与强类型标准
技能给出若干严格的类型安全规则。始终启用严格模式,文档给出的 tsconfig.json 必需设置包括 strict、noImplicitAny、strictNullChecks、strictFunctionTypes、strictPropertyInitialization、noUnusedLocals、noUnusedParameters、noImplicitReturns、noFallthroughCasesInSwitch 均为 true,理由是可在编译时捕获约 80% 的常见缺陷。禁止使用 any,改用 unknown,因为 unknown 会强制显式类型检查,避免运行时类型错误。要求显式函数签名,为重构提供护栏,防止返回类型被意外改变。建议对象使用 interface 而非类型别名,因为 interface 可被扩展、提供更好的错误信息并被编译器缓存。使用 readonly 实现不可变,防止意外修改,在 React/Redux 中尤为重要。错误处理推荐使用 Result 类型,使错误成为类型签名的一部分: type Result<T, E> = | { success: true; data: T } | { success: false; error: E };
审查反馈模板
技能规定审查时按此结构给出反馈:优势(良好模式、结构良好的代码、有效的解决方案)、严重问题(必须修复:安全漏洞、类型安全违规、逻辑错误、数据损坏风险)、主要问题(应当修复:代码坏味道与反模式、错误处理不佳、紧耦合、关键逻辑缺少测试)、次要问题(可选改进:命名改进、简化机会、文档缺口、风格不一致)、建议(具体可执行的改进与示例)。
常见代码坏味道
技能列出需要标记的坏味道:过长方法(超过 30 行,应提取更小、聚焦的函数,否则难以测试、理解、维护)、上帝对象(超过 10 项职责,应按单一职责原则拆分为聚焦的类,否则难以测试、耦合高)、深层嵌套(超过 3 层,应使用提前返回、提取条件、守卫子句,否则难以阅读、易出错)、重复代码(应提取到共享函数/工具,否则维护负担重、行为不一致)、魔法数字/字符串(应使用含义清晰的具名常量,否则意图不清、难以修改)、可变共享状态(应使用不可变数据、依赖注入,否则行为不可预测、难以测试)。
安全检查清单
输入验证:用户输入在处理前经过验证、SQL 注入防护(参数化查询)、XSS 防护(正确转义)、路径遍历防护、文件上传验证(类型、大小)。认证与授权:密码经过哈希(bcrypt、argon2)、无硬编码凭据、正确的会话管理、敏感操作有授权检查、认证端点有限流。数据保护:静态数据加密、传输数据使用 TLS/HTTPS、日志中无敏感数据、安全使用环境变量、版本控制中无密钥。依赖:依赖定期更新、检查已知漏洞、最小依赖面、验证许可证兼容性。
性能优化模式
数据库访问方面,指出 N+1 查询问题,建议改为单次查询加 join。缓存方面给出 memoization 示例,用于昂贵计算。懒加载方面给出仅在需要时加载重型资源的示例。
测试最佳实践
技能给出 AAA 模式的测试结构示例(Arrange 准备测试数据、Act 执行操作、Assert 验证结果),并列出测试覆盖优先级:关键业务逻辑(支付、认证、数据完整性)、边界情况(空输入、null、边界值)、错误路径(无效输入、异常)、集成点(API 调用、数据库操作)。测试质量指标包括:测试相互独立且隔离、速度快(单元测试小于 1 秒)、名称清晰具描述性、验证行为而非实现、可维护且可读。
架构模式与整洁代码
技能涵盖依赖注入与仓储模式示例,并列出 SOLID 原则:单一职责、开闭原则、里氏替换、接口隔离、依赖倒置。整洁代码方面涵盖命名约定(使用清晰、意图明确的名字,避免含义不清的缩写)、函数大小(目标每函数 5-15 行,最大 30 行,若超出则重构,保持单一抽象层级)、注释指南(避免冗余注释,解释“为什么”而非“是什么”,为复杂业务逻辑写文档)。
审查工作流
工作流为:理解上下文(代码想实现什么)、快速扫描(先找严重问题)、深度分析(审查结构、模式、质量)、按优先级反馈(严重 → 主要 → 次要)、保持教育性(解释为什么并提供示例)、保持建设性(给出解决方案而非只指出问题)。
使用建议
该技能给出的用法提示:用于 PR 审查时聚焦改动而非整个代码库;用于重构时系统性地识别代码坏味道;用于新代码时尽早检查模式与架构;用于学习时把审查当作教学时机。
参考文件
文档提到三个参考文件:references/SECURITY_PATTERNS.md(综合安全指南)、references/TYPESCRIPT_ADVANCED.md(高级 TypeScript 模式)、references/REFACTORING_CATALOG.md(常见重构技巧)。
限制
资料未说明该技能的安装方式、运行平台、收费或价格信息,这些内容暂未提供。