首页龙虾技能列表 › Dependency Autopsy — 依赖树深度健康分析

Dependency Autopsy — 依赖树深度健康分析

v1.0.0

对依赖树进行深度健康分析,不仅检查是否过时,还评估维护者是否活跃、依赖是否被废弃、包体积是否臃肿、是否存在许可证风险等,帮助开发者全面了解生产环境中依赖的真实健康状况。

0· 257·0 当前·0 累计
by @jcools1977 (John DeVere Cooley)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/3/4
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
技能目标(深度依赖健康分析)看似合理,但指令暗示需要访问仓库历史、CI 和代码库,而技能声明没有必需文件、凭证或安装步骤——这种不一致值得警惕。
评估建议
此技能描述了一种有价值但数据需求量大的分析。在安装或运行之前:1) 请向技能(或其作者)确认它将读取哪些文件和服务(package.json、lockfile、node_modules、源文件、Git remote)以及是否会向外发送数据;2) 预期它可能需要只读令牌(例如,限制为 public_repo 或 repo:status 的 GitHub 令牌)来检查提交、PR 和 CI;请勿交出广泛范围的令牌或个人凭证;3) 更倾向于在本地运行分析:提供 package.json 和 lockfile 的副本,或在沙盒环境中运行技能,而不是授予对仓库的网络访问权限;4) 如必须提供凭证,请使用最小权限、短期令牌并监控其使用情况;5) 如果技能将执行源代码分析以确定“使用的导出”,请确保了解代理是否会向任何外部端点上传源代码;如若如此,请在获得明确保证之前不要继续。由于 SKILL.md 未声明数据/凭证需求,请将此技能视为可能过度授权,直到作者记录了所需输入和数据流。...
详细分析 ▾
用途与能力
该技能声称执行深度分析(提交历史、CI 状态、导出使用、tree-shakeability、许可证扫描、传递依赖分析)。执行这些检查通常需要访问项目的 package.json/lockfile 和源代码和/或通过令牌访问远程 API(GitHub/GitLab、npm/PyPI)。该技能未声明所需配置路径、二进制文件或环境凭证,与其描述的能力不一致。
指令范围
SKILL.md 是一份详细的诊断规范,但内容较为高层,没有明确限制代理应从何处获取数据。为了生成承诺的指标,代理需要读取本地文件(package.json、package-lock/yarn.lock、源文件)和/或调用远程服务(仓库托管、npm registry、CI)。关于数据来源或限制缺乏明确指令,使代理可以广泛酌情请求或访问仓库数据或外部 API。
安装机制
这是一个纯指令型技能,没有安装规范和代码文件,因此没有安装时需要获取或执行的代码。这最大程度减少了磁盘持久化和安装时风险。
凭证需求
所述分析通常需要以下只读访问:仓库元数据(提交历史、PR、CI 状态),这通常需要 GITHUB/GITLAB 令牌;包注册表元数据(npm/PyPI);以及本地文件(package.json、lockfiles 和源代码)。该技能未声明所需环境变量或配置路径,因此必需的凭证/路径未明确说明——这不成比例,并模糊了代理将需要哪些密钥或文件访问权限。
持久化与权限
该技能不请求永久存在(always: false),也不声明任何自修改或跨技能配置行为。默认允许自主调用,但这本身并不是新权限。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

🖥️ OSmacOS · Linux · Windows

版本

latestv1.0.02026/3/4

首次发布

● 无害

安装命令 点击复制

官方npx clawhub@latest install dependency-autopsy
镜像加速npx clawhub@latest install dependency-autopsy --registry https://cn.clawhub-mirror.com

技能文档

"Every dependency is a bet: you're betting that someone you've never met will maintain code you've never read for as long as you need it. How much do you actually know about those bets?"

它做什么

npm audit 告诉你已知的漏洞。npm outdated 告诉你版本漂移。两者都不能告诉你真正重要的事情:

  • 维护者是否仍在积极开发?
  • 上次有意义的提交是什么时候(不仅仅是 CI 配置调整)?
  • 这个包的 14,000 行代码你实际使用了多少?
  • 如果这个包明天消失,更换有多难?
  • 这个包是否为了一个工具函数引入了 47 个传递依赖?
  • 这个包的 bus factor 是否 literally 是 1?

Dependency Autopsy 对你树中的每个依赖执行完整健康检查并生成风险调整后的报告。

尸检报告卡

每个依赖都会收到七项生命体征的健康评分:

生命体征 1:脉搏(活跃度)

这个项目还活着吗?

信号健康警告危险
上次有意义的提交< 3 个月3-12 个月> 12 个月
开放 issue 响应时间< 1 周1-4 周> 4 周或从不
发布频率规律放缓停止
CI 状态通过不稳定失败或缺失
无人 review 的开放 PR< 55-20> 20
"Last meaningful commit" means a commit that changes source code. Dependency bumps, CI tweaks, and README updates don't count. A project can look active while being effectively abandoned.

生命体征 2:Bus Factor(维护者健康)

有多少人需要消失这个项目才会死亡?

信号健康警告危险
独立提交者(过去一年)> 52-51
有组织所有权(非个人)-否(个人仓库)
有多个 npm/PyPI 发布者-否(单一发布者)
企业支持非正式
继任计划可见不清楚

生命体征 3:膨胀因子(重量)

这个包你实际使用了多少?

ANALYSIS:
├── Total package size: 2.4 MB
├── Exports used by your code: 3 of 147 (2%)
├── Tree-shakeable: No
├── Transitive dependencies: 23
├── Transitive dependencies YOU also use directly: 2
│   └── (the other 21 exist solely because of this package)
├── Estimated bundle impact: +340 KB
└── Could be replaced with: ~30 lines of code

VERDICT: You imported an aircraft carrier to cross a creek.

生命体征 4:替换难度

如果这个依赖今天消失,换掉有多难?

难度描述示例
trivial存在即插即用的替代品,或者你可以内联代码left-pad → 1 行代码
Easy存在替代品但有轻微 API 差异momentdate-fns(有完善文档的迁移)
Moderate存在替代品但需要实质性重构ExpressFastify(不同的中间件模型)
Hard很少有替代品,已深度集成ReactVue(重写)
Critical没有替代品,深度嵌入,你被锁定Terraform → ?(供应商锁定)

生命体征 5:版本健康

你的版本是当前的吗,升级安全吗?

ANALYSIS:
├── Your version: 3.2.1
├── Latest stable: 5.1.0
├── Versions behind: 2 major, 0 minor
├── Breaking changes between yours and latest: 14
├── Deprecated APIs you use: 3 (removed in v4+)
├── Security patches you're missing: 1 (medium severity)
├── Estimated upgrade effort: 8 hours
└── Risk of staying: Medium (deprecated APIs may break with Node upgrade)

生命体征 6:许可证健康

你法律上安全吗?

ANALYSIS:
├── Direct dependency license: MIT ✓
├── Transitive dependency licenses:
│   ├── MIT: 19 packages ✓
│   ├── Apache-2.0: 3 packages ✓
│   ├── ISC: 1 package ✓
│   └── GPL-3.0: 1 package ⚠ (copyleft — may require your code to be GPL)
└── License compatibility with your project: WARNING — GPL transitive dep

生命体征 7:依赖深度

兔子洞有多深?

YOUR PACKAGE
└── dependency-a (you chose this)
    ├── dep-a-1 (you didn't choose this)
    │   ├── dep-a-1-1 (you definitely didn't choose this)
    │   │   └── dep-a-1-1-1 (nobody chose this)
    │   └── dep-a-1-2
    ├── dep-a-2
    └── dep-a-3
        └── dep-a-3-1
            └── dep-a-3-1-1
                └── dep-a-3-1-1-1 (8 levels deep. Welcome to JavaScript.)

STATS: ├── Direct dependencies you chose: 24 ├── Total dependency tree: 847 packages ├── Maximum depth: 11 levels ├── Packages with 0 weekly downloads: 3 (why do these exist?) ├── Packages last published > 3 years ago: 12 └── Packages with install scripts (potential risk): 2

完整尸检报告

╔══════════════════════════════════════════════════════════════╗
║ DEPENDENCY AUTOPSY                                          ║
║ 24 direct / 847 total dependencies                          ║
║ Overall Health: B+ (Good, with concerns)                    ║
╠══════════════════════════════════════════════════════════════╣
║                                                              ║
║ CRITICAL FINDINGS (2):                                      ║
║ ├── 🔴 image-tools@1.3.0                                    ║
║ │   ├── Pulse: DEAD (last commit 26 months ago)             ║
║ │   ├── Bus Factor: 1 (personal GitHub repo)                ║
║ │   ├── You use: 1 of 23 functions (4%)                     ║
║ │   ├── Known vulns: 1 (high — prototype pollution)         ║
║ │   └── RECOMMENDATION: Replace with sharp (actively        ║
║ │       maintained, covers your use case). ~2h effort.      ║
║ │                                                           ║
║ │── 🔴 GPL-3.0 license found in transitive dependency       ║
║ │   ├── Package: obscure-xml-parser@0.1.2                   ║
║ │   ├── Required by: dep-a → dep-a-1 → obscure-xml-parser   ║
║ │   └── RECOMMENDATION: Confirm GPL compatibility or find   ║
║ │       alternative XML parser in dep-a-1.                  ║
║                                                              ║
║ WARNINGS (4):                                               ║
║ ├── 🟡 lodash@4.17.21 — you use 3 functions. Consider        ║
║ │   individual imports or native replacements (-340KB).     ║
║ ├── 🟡 auth-lib@2.1.0 — 2 major versions behind.            ║
║ │   3 deprecated APIs in your code. Upgrade: ~8h.           ║
║ ├── 🟡 date-formatter@3.0.0 — bus factor 1, slowing pulse.  ║
║ │   Consider date-fns as insurance.                         ║
║ └── 🟡 config-parser@1.0.0 — pulls 21 transitive deps       ║
║     for a 40-line utility. Consider inlining.               ║
║                                                              ║
║ HEALTHY (18):                                               ║
║ All vitals green. Active maintenance, healthy bus factor,   ║
║ appropriate usage, compatible licenses.                      ║
║                                                              ║
║ TREE STATS:                                                 ║
║ ├── Duplicate packages (different versions): 7             ║
║ ├── Total install size: 148 MB                              ║
║ ├── Estimated used code: 12 MB (8% of installed)           ║
║ └── Potential size reduction: 89 MB (remove bloat + dupes) ║
╚══════════════════════════════════════════════════════════════╝

何时调用

  • 添加新依赖之前 — 在你 npm install 之前进行完整尸检
  • 每月对现有依赖进行健康检查
  • 在评估是否升级或替换库时
  • 在安全审计或合规审查之前
  • 在调查意外的 bundle 大小增长时
  • 在任何 npm audit 报告之后(深入了解不仅仅是 CVE 编号)

为什么重要

平均 JavaScript 项目有 800+ 个传递依赖。平均 Python 项目有 40+ 个。每一个都是你没有编写、没有审查、且无法控制的代码——以与你的代码相同的权限运行。

npm audit 告诉你已知的漏洞。Dependency Autopsy 告诉你可能未来的问题——被废弃的项目、单维护者风险、许可证雷区和膨胀。

尚未发现的漏洞存在于没有人关注的包中。

零外部依赖。零 API 调用。纯包清单和注册表分析。

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务