
# 通用需求审查 ChecklistCHK-Common 适用范围对任何业务领域的需求文档进行评审时的通用基线规则集。 使用方式按需求实际涉及的字段/动作/场景挑选下方对应类别的规则进行核对命中条件成立时使用建议追问作为评审话术。 严重度基线blocker critical major minor。金融/医疗/安全敏感场景应整体上调一级。---## 目录- [一、boundary 边界类](#一boundary-边界类)- [CHK-BD-001 字符串字段的长度边界](#chk-bd-001-字符串字段的长度边界)- [CHK-BD-002 数值字段的取值范围](#chk-bd-002-数值字段的取值范围)- [CHK-BD-003 日期与时间字段的边界](#chk-bd-003-日期与时间字段的边界)- [CHK-BD-004 集合列表类字段的容量边界](#chk-bd-004-集合列表类字段的容量边界)- [CHK-BD-005 文件与二进制内容的边界](#chk-bd-005-文件与二进制内容的边界)- [二、null_empty 空值缺省类](#二null_empty-空值缺省类)- [CHK-NE-001 必填与可选字段的明确性](#chk-ne-001-必填与可选字段的明确性)- [CHK-NE-002 空白与不可见字符的处理](#chk-ne-002-空白与不可见字符的处理)- [三、error_handling 错误与异常类](#三error_handling-错误与异常类)- [CHK-EH-001 错误码错误消息与用户提示](#chk-eh-001-错误码错误消息与用户提示)- [CHK-EH-002 外部依赖失败时的降级与超时](#chk-eh-002-外部依赖失败时的降级与超时)- [CHK-EH-003 输入校验失败的反馈](#chk-eh-003-输入校验失败的反馈)- [四、concurrency 并发与竞态类](#四concurrency-并发与竞态类)- [CHK-CC-001 同一资源的并发修改](#chk-cc-001-同一资源的并发修改)- [CHK-CC-002 重复请求与幂等性](#chk-cc-002-重复请求与幂等性)- [五、state 状态与生命周期类](#五state-状态与生命周期类)- [CHK-ST-001 状态机的完备性](#chk-st-001-状态机的完备性)- [CHK-ST-002 数据生命周期与软硬删除](#chk-st-002-数据生命周期与软硬删除)- [六、data_consistency 数据一致性类](#六data_consistency-数据一致性类)- [CHK-DC-001 跨服务跨表的事务一致性](#chk-dc-001-跨服务跨表的事务一致性)- [CHK-DC-002 唯一性与去重规则](#chk-dc-002-唯一性与去重规则)- [七、security_authz 安全与权限类](#七security_authz-安全与权限类)- [CHK-SA-001 鉴权与授权的覆盖](#chk-sa-001-鉴权与授权的覆盖)- [CHK-SA-002 敏感数据的存储传输与展示](#chk-sa-002-敏感数据的存储传输与展示)- [CHK-SA-003 注入与不可信输入](#chk-sa-003-注入与不可信输入)- [八、performance 性能与容量类](#八performance-性能与容量类)- [CHK-PF-001 性能与容量指标](#chk-pf-001-性能与容量指标)- [CHK-PF-002 大数据量下的查询与导出](#chk-pf-002-大数据量下的查询与导出)- [九、i18n_l10n 国际化本地化类](#九i18n_l10n-国际化本地化类)- [CHK-IL-001 文案与多语言](#chk-il-001-文案与多语言)- [CHK-IL-002 区域格式日期数字货币姓名地址](#chk-il-002-区域格式日期数字货币姓名地址)- [十、compatibility 兼容性类](#十compatibility-兼容性类)- [CHK-CP-001 客户端浏览器与设备兼容](#chk-cp-001-客户端浏览器与设备兼容)- [CHK-CP-002 接口数据的版本与向后兼容](#chk-cp-002-接口数据的版本与向后兼容)- [十一、observability 可观测性类](#十一observability-可观测性类)- [CHK-OB-001 日志监控与告警](#chk-ob-001-日志监控与告警)- [CHK-OB-002 审计与可追溯](#chk-ob-002-审计与可追溯)- [十二、ux_interaction 交互与可用性类](#十二ux_interaction-交互与可用性类)- [CHK-UX-001 反馈与等待提示](#chk-ux-001-反馈与等待提示)- [CHK-UX-002 二次确认与可撤销](#chk-ux-002-二次确认与可撤销)- [CHK-UX-003 可访问性A11y](#chk-ux-003-可访问性a11y)- [使用建议](#使用建议)---## 一、boundary 边界类### CHK-BD-001 字符串字段的长度边界- 类别: boundary- 默认严重度: blocker- 适用范围: 任何用户输入的字符串字段名称、描述、备注、标签等- 检查问题:1. 是否明确了最小字符数2. 是否明确了最大字符数3. 空字符串、纯空格如何处理拒绝/默认值/允许4. 超长输入是截断、报错还是拒绝- 命中条件: 需求中提到输入/名称/描述/备注/标签等字段但未给出长度范围- 建议追问: 请明确 字段名 的字符数范围含上下界、空值/纯空格的处理、超长输入的处理策略。[⬆ 返回目录](#目录)### CHK-BD-002 数值字段的取值范围- 类别: boundary- 默认严重度: blocker- 适用范围: 任何数值型字段金额、数量、年龄、评分、阈值、百分比、坐标等- 检查问题:1. 是否明确了最小值和最大值含/不含边界2. 是否允许 0、负数是否允许超大值如 Integer.MAX_VALUE3. 小数位数与精度含舍入规则四舍五入/向下取整/银行家舍入是否定义4. 单位是否明确元/分、米/厘米、秒/毫秒等单位转换是否有损5. 越界输入的处理策略拒绝/截断到边界/报错/使用默认值- 命中条件: 需求中出现数值字段但未给出范围、精度、单位或越界处理- 建议追问: 请明确 字段名 的取值范围含上下界是否包含、单位、精度与小数位、舍入规则以及越界值的处理策略。[⬆ 返回目录](#目录)### CHK-BD-003 日期与时间字段的边界- 类别: boundary- 默认严重度: blocker- 适用范围: 任何时间/日期/时间段字段开始时间、结束时间、生效日期、过期时间、定时任务等- 检查问题:1. 时间格式与精度年/月/日/时/分/秒/毫秒是否明确2. 时区如何处理UTC、用户本地、服务器本地夏令时是否影响3. 起止关系是否定义start end、start end、可否相等4. 是否允许过去时间、未来时间、跨年/跨月/跨日5. 闰年 2/29、闰秒、月末28/29/30/31边界是否覆盖6. 最大可允许的时间跨度是多少- 命中条件: 需求涉及时间字段、时间段、定时触发但未说明时区、格式、跨度或起止关系- 建议追问: 请明确 字段名 的时间格式、时区、精度、起止关系约束以及最大允许跨度。[⬆ 返回目录](#目录)### CHK-BD-004 集合列表类字段的容量边界- 类别: boundary- 默认严重度: critical- 适用范围: 数组、列表、批量提交、多选项、文件上传列表、标签集合等- 检查问题:1. 元素数量的最小值/最大值是多少空集合是否允许2. 是否允许重复元素去重规则是什么大小写、空格敏感与否3. 元素顺序是否有意义是否需要保持插入顺序4. 超过上限时如何处理拒绝整批/截断/分批- 命中条件: 需求中出现多个/列表/批量/集合等描述但未限定容量与去重规则- 建议追问: 请明确 集合字段 的元素数量上下限、是否允许重复及去重规则、顺序语义、超限处理策略。[⬆ 返回目录](#目录)### CHK-BD-005 文件与二进制内容的边界- 类别: boundary- 默认严重度: critical- 适用范围: 任何文件上传/下载、图片、音视频、附件、导入/导出- 检查问题:1. 单文件大小上限、总大小上限是多少2. 允许的文件类型/MIME/扩展名白名单是什么3. 文件名长度、字符集、特殊字符空格、中文、emoji、路径分隔符如何处理4. 同名文件是覆盖、重命名还是拒绝5. 损坏文件、空文件0 字节如何处理- 命中条件: 需求涉及文件上传/导入但未限制大小、类型或同名策略- 建议追问: 请明确 文件场景 的大小上限、类型白名单、文件名规则、同名/空文件/损坏文件的处理策略。[⬆ 返回目录](#目录)---## 二、null_empty 空值缺省类### CHK-NE-001 必填与可选字段的明确性- 类别: null_empty- 默认严重度: blocker- 适用范围: 任何输入/输出字段、API 参数、表单项- 检查问题:1. 每个字段是否明确标注必填/可选2. 可选字段的默认值是什么默认值是否随上下文变化3. 未传 (undefined/缺省) 与传 null 是否语义不同4. 必填校验在前端、后端、数据库的哪一层执行- 命中条件: 需求列出字段但未标注必填性或未定义默认值- 建议追问: 请明确 字段名 的必填性、默认值、未传 vs null 的语义差异以及校验位置。[⬆ 返回目录](#目录)### CHK-NE-002 空白与不可见字符的处理- 类别: null_empty- 默认严重度: major- 适用范围: 任何字符串输入用户名、搜索关键词、ID、配置项等- 检查问题:1. 前后空格是否自动 trim中间多空格是否归一2. 全角空格、Tab、换行、零宽字符ZWSP/BOM如何处理3. 纯空白字符串是否视为空- 命中条件: 需求涉及字符串输入但未规定空白处理- 建议追问: 请明确 字段名 是否 trim、是否归一空白、对不可见字符全角空格/零宽字符的处理。[⬆ 返回目录](#目录)---## 三、error_handling 错误与异常类### CHK-EH-001 错误码错误消息与用户提示- 类别: error_handling- 默认严重度: critical- 适用范围: 所有可能失败的功能API、表单提交、外部调用、后台任务- 检查问题:1. 每种错误是否定义了唯一错误码与分类业务/系统/网络/权限2. 给用户的提示与给开发者的日志是否分离文案是否需多语言3. 是否区分可重试错误与终态错误4. 是否会泄露敏感信息堆栈、SQL、内部 ID- 命中条件: 需求只描述成功路径未列举失败场景与错误码- 建议追问: 请补充 功能 的全部失败场景、错误码定义、用户提示文案、可重试性以及敏感信息脱敏要求。[⬆ 返回目录](#目录)### CHK-EH-002 外部依赖失败时的降级与超时- 类别: error_handling- 默认严重度: critical- 适用范围: 调用第三方 API、数据库、缓存、消息队列、文件存储、外部服务- 检查问题:1. 调用超时阈值是多少是否设置连接/读取分离的超时2. 失败时是重试、降级、熔断还是直接报错重试次数与退避策略3. 部分成功如批量中某条失败如何处理4. 外部服务不可用时的用户可见行为是什么- 命中条件: 需求涉及外部调用但未定义超时、重试与降级策略- 建议追问: 请明确 外部依赖 的超时阈值、重试策略、熔断/降级方案与部分失败处理。[⬆ 返回目录](#目录)### CHK-EH-003 输入校验失败的反馈- 类别: error_handling- 默认严重度: major- 适用范围: 任何表单/请求参数校验- 检查问题:1. 校验失败是首错即返还是返回全部错误2. 错误是否定位到具体字段提示是否对用户可操作3. 客户端与服务端校验规则是否一致- 命中条件: 需求中有字段校验但未说明反馈形式- 建议追问: 请明确校验失败的返回结构首错/全部、字段定位方式与前后端规则一致性策略。[⬆ 返回目录](#目录)---## 四、concurrency 并发与竞态类### CHK-CC-001 同一资源的并发修改- 类别: concurrency- 默认严重度: blocker- 适用范围: 多用户/多端可同时编辑或操作同一记录的场景- 检查问题:1. 是否使用乐观锁版本号或悲观锁冲突如何提示2. 后写覆盖 是否可接受3. 是否需要幂等键防止重复提交4. 同一用户多端登录的行为如何互踢/共存/同步- 命中条件: 需求涉及编辑/状态变更但未说明并发控制- 建议追问: 请明确 资源 的并发控制方式锁/版本号/幂等键、冲突提示与多端登录策略。[⬆ 返回目录](#目录)### CHK-CC-002 重复请求与幂等性- 类别: concurrency- 默认严重度: critical- 适用范围: 写操作 API、支付、扣减库存、发券、消息推送- 检查问题:1. 是否定义幂等键幂等窗口多长2. 网络重试、用户连点、消息重投是否会产生副作用3. 幂等判断在哪一层网关/服务/DB 唯一约束- 命中条件: 涉及关键写操作但未提及幂等设计- 建议追问: 请明确 操作 的幂等键来源、幂等窗口、判定层级及重复请求的返回语义。[⬆ 返回目录](#目录)---## 五、state 状态与生命周期类### CHK-ST-001 状态机的完备性- 类别: state- 默认严重度: blocker- 适用范围: 订单、任务、审批流、设备、会话等具有多状态的实体- 检查问题:1. 是否枚举了所有状态及合法迁移路径2. 非法迁移如已取消→已支付的拒绝与提示是什么3. 是否存在终态终态后能否再变更4. 状态变更的触发者用户/系统/定时任务与权限是否明确5. 状态变更是否需要审计日志/通知- 命中条件: 需求出现状态/流程等词但未给出完整状态图- 建议追问: 请补充 实体 的完整状态枚举、合法迁移矩阵、终态定义、触发者权限与审计要求。[⬆ 返回目录](#目录)### CHK-ST-002 数据生命周期与软硬删除- 类别: state- 默认严重度: major- 适用范围: 任何可被删除的业务数据- 检查问题:1. 删除是软删除标记还是硬删除物理2. 软删除数据是否参与查询、统计、唯一性校验3. 关联数据外键、缓存、索引、文件如何同步处理4. 是否支持恢复保留期多长过期清理策略- 命中条件: 需求出现删除/移除/下架但未区分软/硬删除及级联策略- 建议追问: 请明确 实体 的删除语义、对查询/唯一性的影响、级联处理、恢复机制与保留期。[⬆ 返回目录](#目录)---## 六、data_consistency 数据一致性类### CHK-DC-001 跨服务跨表的事务一致性- 类别: data_consistency- 默认严重度: blocker- 适用范围: 同一业务动作需更新多个表/服务/外部系统- 检查问题:1. 一致性级别要求是强一致、最终一致还是无要求2. 中间步骤失败的回滚或补偿机制是什么3. 是否需要分布式事务/Saga/对账任务4. 用户可见的中间态如何处理中提示等- 命中条件: 需求一次动作影响多个数据源但未说明一致性方案- 建议追问: 请明确 动作 的一致性级别、失败补偿、对账机制与用户可见中间态。[⬆ 返回目录](#目录)### CHK-DC-002 唯一性与去重规则- 类别: data_consistency- 默认严重度: critical- 适用范围: 业务主键、自然键、用户名、手机号、订单号等- 检查问题:1. 唯一性范围是全局、租户内还是分组内2. 大小写、空格、全半角是否参与唯一性判定3. 软删除记录是否占用唯一性4. 冲突时的提示与处理拒绝/合并/覆盖- 命中条件: 需求声明字段唯一但未限定范围与归一规则- 建议追问: 请明确 字段 的唯一性范围、归一规则、软删占用情况与冲突处理。[⬆ 返回目录](#目录)---## 七、security_authz 安全与权限类### CHK-SA-001 鉴权与授权的覆盖- 类别: security_authz- 默认严重度: blocker- 适用范围: 所有 API、页面、操作按钮、数据访问- 检查问题:1. 每个操作的访问角色/权限点是否明确2. 是否区分功能权限与数据权限行级/列级3. 越权访问水平/垂直如何防御4. 未登录用户的行为是什么- 命中条件: 需求描述功能但未列出权限矩阵- 建议追问: 请补充 功能 的权限点、角色矩阵、数据权限范围与越权防御策略。[⬆ 返回目录](#目录)### CHK-SA-002 敏感数据的存储传输与展示- 类别: security_authz- 默认严重度: blocker- 适用范围: 身份证、手机号、银行卡、密码、密钥、个人隐私字段- 检查问题:1. 是否加密存储加密算法与密钥管理方式2. 传输是否强制 HTTPS/TLS3. 前端/日志/导出是否脱敏脱敏规则是什么4. 是否符合所在地区法规如 GDPR、等保、个保法- 命中条件: 需求涉及敏感字段但未约定加密、脱敏与合规- 建议追问: 请明确 敏感字段 的存储加密、传输加密、脱敏规则与合规要求。[⬆ 返回目录](#目录)### CHK-SA-003 注入与不可信输入- 类别: security_authz- 默认严重度: critical- 适用范围: 所有外部输入流入 SQL、Shell、HTML、URL、模板、文件路径的场景- 检查问题:1. 是否使用参数化查询、转义或白名单2. 富文本/HTML 输入是否做 XSS 过滤3. 文件路径是否防止目录穿越4. 重定向 URL 是否做白名单校验- 命中条件: 需求允许用户输入并参与到查询、渲染或外链跳转- 建议追问: 请明确 输入点 的过滤/转义策略、富文本白名单、路径与重定向的校验规则。[⬆ 返回目录](#目录)---## 八、performance 性能与容量类### CHK-PF-001 性能与容量指标- 类别: performance- 默认严重度: critical- 适用范围: 所有对外服务、批处理任务、报表、列表查询- 检查问题:1. 预期 QPS/TPS、峰值倍数、并发用户数是多少2. 响应时间 SLAP50/P95/P99是多少3. 数据量级行数、容量当前与 13 年后的预估4. 是否需要分页、流式、异步、缓存- 命中条件: 需求未提及性能、容量、SLA- 建议追问: 请明确 功能 的吞吐目标、响应时间 SLA、数据规模预估及性能保障手段。[⬆ 返回目录](#目录)### CHK-PF-002 大数据量下的查询与导出- 类别: performance- 默认严重度: major- 适用范围: 列表、搜索、报表、导出、批量操作- 检查问题:1. 是否强制分页最大页大小限制是多少2. 深分页offset 过大的方案是什么3. 导出是否异步、是否限流、是否有最大行数限制4. 排序与过滤字段是否有索引覆盖- 命中条件: 需求出现列表/搜索/导出/统计但未限制规模- 建议追问: 请明确 场景 的分页规则、最大返回行数、导出方式与索引设计。[⬆ 返回目录](#目录)---## 九、i18n_l10n 国际化本地化类### CHK-IL-001 文案与多语言- 类别: i18n_l10n- 默认严重度: major- 适用范围: 任何对外可见文案UI、邮件、短信、推送、错误消息- 检查问题:1. 支持哪些语言默认语言与回退策略2. 文案是否抽离到资源文件而非硬编码3. 复数、性别、变量插值如何处理4. 文案长度变化如德语变长是否影响布局- 命中条件: 需求面向多地区/多语言用户但未说明语言支持- 建议追问: 请明确支持的语言列表、回退策略、文案抽离方式与布局自适应要求。[⬆ 返回目录](#目录)### CHK-IL-002 区域格式日期数字货币姓名地址- 类别: i18n_l10n- 默认严重度: major- 适用范围: 涉及时间、金额、数字、地址、姓名展示与输入的场景- 检查问题:1. 日期/时间格式是否随区域变化MM/DD vs DD/MM2. 数字千分位、小数点符号是否本地化3. 货币符号、汇率、币种切换如何处理4. 姓名顺序姓在前/名在前、地址结构差异是否考虑- 命中条件: 需求展示或输入上述类型数据但未说明区域适配- 建议追问: 请明确 字段 的本地化格式、币种与汇率处理、姓名与地址结构差异适配。[⬆ 返回目录](#目录)---## 十、compatibility 兼容性类### CHK-CP-001 客户端浏览器与设备兼容- 类别: compatibility- 默认严重度: major- 适用范围: Web、移动端、桌面端、IoT 设备- 检查问题:1. 支持的浏览器/操作系统/设备型号/最低分辨率2. 不支持的环境是降级展示还是阻断访问3. 是否考虑无网络/弱网/离线模式- 命中条件: 需求未列出兼容矩阵- 建议追问: 请明确支持的客户端矩阵、降级策略与弱网/离线行为。[⬆ 返回目录](#目录)### CHK-CP-002 接口数据的版本与向后兼容- 类别: compatibility- 默认严重度: critical- 适用范围: 对外 API、SDK、数据格式、数据库 Schema、消息协议- 检查问题:1. 版本号策略是什么URL/Header/字段2. 新增/删除/修改字段的兼容规则是什么3. 旧版本的下线计划与通知机制4. 历史数据迁移与回滚方案- 命中条件: 需求修改既有接口或数据结构- 建议追问: 请明确版本策略、字段变更兼容规则、旧版本下线计划与数据迁移/回滚方案。[⬆ 返回目录](#目录)---## 十一、observability 可观测性类### CHK-OB-001 日志监控与告警- 类别: observability- 默认严重度: major- 适用范围: 所有线上功能- 检查问题:1. 关键路径是否打点请求量、耗时、错误率、业务指标2. 日志级别、采样率、保留期是否定义是否含追踪 ID3. 告警阈值、接收人、升级路径是什么4. 是否提供运维看板/排障手册- 命中条件: 需求未涉及监控、日志与告警- 建议追问: 请补充 功能 的监控指标、日志规范、告警阈值与排障手册。[⬆ 返回目录](#目录)### CHK-OB-002 审计与可追溯- 类别: observability- 默认严重度: major- 适用范围: 涉及权限、资金、合规、关键业务变更的操作- 检查问题:1. 谁、何时、对什么、做了什么、结果如何 — 是否全量记录2. 审计日志是否防篡改、可独立查询3. 保留期与导出能力- 命中条件: 涉及敏感或合规操作但未提及审计- 建议追问: 请明确审计字段、防篡改方式、查询能力与保留期。[⬆ 返回目录](#目录)---## 十二、ux_interaction 交互与可用性类### CHK-UX-001 反馈与等待提示- 类别: ux_interaction- 默认严重度: minor- 适用范围: 所有可能耗时的操作提交、上传、加载、跳转- 检查问题:1. 操作进行中是否有 Loading/进度提示是否禁用重复点击2. 成功/失败的反馈方式是什么Toast/弹窗/页面跳转3. 超长等待是否提供取消能力- 命中条件: 需求描述操作但未定义中间反馈- 建议追问: 请补充 操作 的进行中提示、防重复点击、结果反馈与可取消性。[⬆ 返回目录](#目录)### CHK-UX-002 二次确认与可撤销- 类别: ux_interaction- 默认严重度: major- 适用范围: 删除、批量操作、不可逆动作发送、扣款、发布- 检查问题:1. 是否需要二次确认确认信息是否包含影响范围2. 是否支持撤销/回滚时间窗口多长3. 危险操作是否需要二次鉴权密码/短信码- 命中条件: 需求包含不可逆或影响大的操作- 建议追问: 请明确 操作 的二次确认形式、撤销能力与二次鉴权要求。[⬆ 返回目录](#目录)### CHK-UX-003 可访问性A11y- 类别: ux_interaction- 默认严重度: minor- 适用范围: 所有面向终端用户的界面- 检查问题:1. 是否支持键盘操作、读屏器、足够的色彩对比度2. 表单是否有正确的 label/aria 属性3. 错误提示是否对辅助技术友好- 命中条件: 需求面向公众或合规要求 A11y 但未提及- 建议追问: 请明确 A11y 支持范围WCAG 等级、键盘可达性与辅助技术兼容性。[⬆ 返回目录](#目录)---## 使用建议1. **挑选而非全用**每条需求按其类型从上表中挑选适用规则。可在 references/review_checklist_by_type/ 下为不同需求类型如配置类/流程类/接口类维护必检子集。2. **严重度可上调不可下调**默认严重度是通用基线对金融/医疗/安全敏感场景应整体上调。3. **命中即追问**每条规则的命中条件用于触发建议追问可直接作为评审会议或文档批注的标准话术。4. **可扩展字段**在落地时可为每条规则补充 examples正反例、related_rules关联规则 ID字段便于交叉引用。5. **版本化维护**每次修订建议在文件顶部维护变更记录日期 / 修改人 / 变更摘要并保持规则编号永不复用。[⬆ 返回目录](#目录)