用途:Dependency Doctor 用于在用户本机检查一个依赖清单文件,排查直接依赖的表面级隐患,并在解释后提供小范围、可审查的修复建议。它不诊断 pip 或 uv 解析失败,也不是仓库级 lint 规则、CI 门禁或跨项目依赖策略工具。
主要能力:支持 requirements.txt、使用 PEP 621 或常见 Poetry 依赖表的 pyproject.toml、package.json 的依赖部分。离线检查覆盖:以 Python 标准库名发布的包、在受支持 Python 版本上不应安装的已知 backport、缺少可用版本约束的依赖、重复包条目、同一包冲突的精确锁定。对 package.json 不适用 Python 标准库和 backport 检查,但仍检查未锁定值和重复条目。可选在线检查会把包名和精确锁定版本发送到 pypi.org,仅当某版本所有文件都被标记 yanked 时报告,网络失败会转为低严重度发现。
使用方式:从技能目录运行 python3 scripts/dep_doctor.py /path/to/requirements.txt --json;启用在线检查加 --online,且需先获得许可。报告包含 file、findings(severity、kind、package、line、why、fix)和 summary。展示发现前应阅读 references/dependency-pitfalls.md,按高、中、低严重度排序,逐条给出包名、源码行、可能问题和建议修复。
适用场景:用户要求检查、审计或诊断依赖清单;在深入安装调试前排除直接清单问题;怀疑存在过时锁定、backport、重复条目或依赖腐化;询问依赖是否有异常。
限制:不用于安装当前依赖、升级全部包或添加新包;不做完整漏洞审计(CVE 覆盖应使用 pip-audit、npm audit 或项目批准的安全扫描器);不创建仓库级 CI 检查。若未给路径且存在多个清单,应询问检查哪一个,不要扫描整个仓库。修复需用户批准后再改,改后重跑离线诊断和项目现有安装或测试命令,不引入新 CI 门禁。