# ┌─────────────────────────────────────────────────────┐ # │ 净码特工 · Code Purifier — 用户自定义规则文件 │ # │ 文件路径:.code-review/rules/user-rules.yaml │ # │ 格式说明:YAML 数组,每条规则为一个 - id 开头的条目 │ # └─────────────────────────────────────────────────────┘ # # 字段说明: # id 必填,规则唯一标识(kebab-case) # severity 必填,严重度:error / warning / info # description 必填,规则简要描述 # message 必填,展示给开发者的提示消息 # languages 可选,规则生效的语言列表(不填则对所有语言生效) # excludeLanguages 可选,规则排除的语言列表(优先级高于 languages) # # 内行数组语法:[javascript, typescript] # ── 安全类 ────────────────────────────────────────────── - id: no-hardcoded-credentials severity: error description: 禁止在源码中硬编码密码、令牌、API Key 等敏感凭证 message: 检测到疑似硬编码凭证,请使用环境变量或密钥管理服务注入 languages: [javascript, typescript, java] - id: no-eval-usage severity: error description: 禁止使用 eval() 函数,存在代码注入风险 message: eval() 存在安全风险,请使用 JSON.parse() 或 Function 构造器替代 languages: [javascript, typescript] - id: no-innerhtml-assignment severity: warning description: 禁止直接赋值 innerHTML,可能导致 XSS message: 避免直接操作 innerHTML,请使用 textContent 或 DOMPurify 清洗 # ── 命名规范类 ────────────────────────────────────────── - id: require-constant-case severity: warning description: 常量命名必须使用全大写加下划线(SCREAMING_SNAKE_CASE) message: 常量应使用全大写命名,如 MAX_RETRY_COUNT languages: [javascript, typescript, java] - id: require-boolean-prefix severity: info description: 布尔变量和方法名应以 is/has/can/should 开头 message: 布尔变量建议添加 is/has/can/should 前缀以提升可读性 languages: [javascript, typescript] # ── 性能类 ────────────────────────────────────────────── - id: no-nested-loops-deep severity: warning description: 禁止三层及以上嵌套循环,时间复杂度过高 message: 检测到深层嵌套循环(≥3层),建议重构为扁平结构或使用查找表优化 languages: [javascript, typescript, java] - id: no-sync-in-async severity: warning description: 异步函数内禁止调用同步阻塞 API message: 在 async 函数中调用同步 API 会阻塞事件循环,请改用异步版本 languages: [javascript, typescript] # ── 代码风格类 ────────────────────────────────────────── - id: require-type-annotation severity: info description: 函数参数和返回值应显式标注 TypeScript 类型 message: 建议为函数添加显式类型注解,提升类型安全性 languages: [typescript] - id: no-magic-numbers severity: info description: 禁止在代码中直接使用魔法数字,应提取为命名常量 message: 检测到魔法数字,建议提取为具名常量以提升可维护性 languages: [javascript, typescript] # ── 团队约定类 ────────────────────────────────────────── - id: require-error-context severity: warning description: throw 语句必须携带错误上下文信息 message: throw 时应提供足够的上下文信息,便于问题定位 languages: [javascript, typescript, java] - id: no-todo-in-production severity: info description: 生产代码中不应遗留 TODO/FIXME/HACK 注释 message: 代码中发现 TODO/FIXME/HACK 注释,请在发布前处理 excludeLanguages: [sql] - id: require-function-doc severity: info description: 公共函数应添加文档注释(JSDoc / Javadoc) message: 公共函数缺少文档注释,建议补充说明用途、参数和返回值 languages: [javascript, typescript, java]