用途:这是一个按技术栈加载的 Python 代码审查规则集,当项目中出现 pyproject.toml 或 *.py 文件时由 dh:code-reviewer 载入。应用检查前需先阅读 Review principles,其中定义权威、适用性、证据与阻断标准。若可用,加载 /python-engineering:standards-for-python-development 共享 Python 策略;不可用时按目标项目支持的 Python 版本、契约与现有工具执行,并报告该策略引用缺失,但不将其作为审查前提。
主要能力: 类型注解:检查公共参数与返回值注解是否传达受支持契约,执行项目的注解门槛(含显式 None 返回);对 Any、宽泛 object 与未检查 cast 要求显式动态或外部边界及类型化输出;按用途匹配数据结构,不强制为所有跨模块值使用 TypedDict;支持版本允许时优先原生泛型与联合语法;检查 Protocol 或 ABC 是否建模可替换契约。 Linter 合规:读取现有 linter 配置并报告其对规则的违反,审查中不新增规则;调查裸捕获与意外库输出;标记无说明常量、未用导入和导出歧义;保留受支持的插值惯用法,包括延迟日志格式化;检查预期导出含 all。 类型检查器证据:从 hooks/CI 发现活动检查器与命令,复现相关诊断;沿已声明依赖、支持运行时与源码根追踪未解析导入,不默认需要新增依赖;执行项目抑制策略并调查抑制隐藏内容,不虚构内联忽略或放宽门槛;检查器与测试的导入路径需解析到预期来源。 测试模式:使用 /dh:test-reviewer 评估有效性,保留项目测试框架与布局;检查行为导向命名、夹具与替身是否保持生产边界、断言能否区分必需结果、避免顺序依赖、参数化不掩盖不同义务。 执行与依赖:使用目标实际支持的命令,uv 环境按 uv 惯例;验证依赖变更与锁文件一致、文档化干净安装可提供所需导入;PEP 723 脚本检查内联依赖与受支持调用(如 uv run --script),不因编辑器工具要求重复根依赖。 错误处理:追踪每个捕获到恢复方、附加上下文或有意边界转换;广泛捕获需有理由的边界并保留失败信号;报告被吞错误或误导性成功;异常消息需含足够诊断上下文,如 raise ValueError(f"Expected positive int, got {value!r}");哨兵返回值需有文档化契约。 受支持惯用法:按支持版本下限检查语法与 API;match、pathlib、datetime、异常组遵循共享策略;TOML 区分只读解析与保留格式的编辑;调查手动前后缀切片边界;新代码可用更清晰方法。 反模式示例:裸 except 后 pass 属错误,应窄捕获并记录;未解释域限制应先确定契约;os.path.join 受支持路径构造非缺陷,新代码可用 pathlib。
限制:所有检查以目标项目契约与已启用工具为准,不编造规则或依赖;共享策略与 /dh:test-reviewer 为可选引用。