用途:adversarial-python 是一个 Python 代码审查门禁(gate),针对现代惯用法与代码结构做通过/失败判定。它只给出裁决,从不修改代码;只有当每条规则都为 PASS 或 N/A 时整体才 PASS。适用对象为即将合并的 Python 功能、端点或模块,或代理扩展遗留代码后疑似照搬旧模式的改动。
主要能力:规则分六类。disp-(调度与控制流)门禁 if/elif 分支阶梯、isinstance 阶梯、重复状态字面量、布尔参数分叉;model-(数据建模)门禁手写 init/repr/eq、参数簇、越界后仍按字符串键访问外部负载;alt-(抽象层级)门禁单方法类、1:1 透传包装、单实现 ABC、为复用而具体继承;typing-(现代类型)门禁 typing.List/Optional/Union、TypeVar/Generic 仪式、类名返回;std-(标准库时效)门禁手写 os.path、重复实现 batched/pairwise/cache/tomllib、utcnow()、独立来源的 zip;flow-(异步与错误流)门禁 create_task 发射不管、宽泛 except 静默吞掉。
使用方式:先确定审查目标(diff、文件集或 PR)并记录 ref 与路径;再从 pyproject.toml(requires-python)、.python-version、setup.cfg 或 CI 矩阵读取 Python 版本下限并注明来源,若未声明则按最新稳定版判定;对比 metadata.json 的 verified_python,若下限高于已验证版本,需抓取对应 whatnew 文档生成版本差异简报,并记录到 gotchas.md。随后读取 references/_sections.md 与 references/ 下全部规则文件,用规则、目标、版本下限与差异简报填充 references/reviewer-prompt.md,派发一个盲审 Task 子代理,最后按 assets/templates/verdict.md 渲染裁决。FAIL 时聚合为修复清单,按类别重要性排序,每条需给出可应用的具体改动与位置。
限制:对不含 Python 源码的目标会返回 GATE NOT APPLICABLE;不适用于用户想要解释或重构而非裁决的场景;不评判命名品味、函数长度、文档字符串与测试覆盖、性能调优;任一 FAIL 即门禁失败,不得平均、加权或豁免。若同一规则在未变目标上反复翻转,视为可判定性缺陷,应记录并改进规则而非覆盖门禁。官方页面未提供更多安装与配置细节。