Files
2026Technology-Competition/data/import-verification/02-standard-formats/team-coding-rules.yaml
T

97 lines
4.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ┌─────────────────────────────────────────────────────┐
# │ 净码特工 · 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]