用途:跟踪 OpenClaw 全部依赖的版本漂移,检测可用更新、生成报告并通知用户。它只做检测与报告,不自动更新,由用户决定何时更新。
主要能力与跟踪对象:
- 托管技能(GitHub):依据 .skill-lock.json,用 GitHub Contents API 做 git 哈希比对。
- 托管技能(ClewHub):依据 _meta.json,用 ClewHub API 做版本比对。
- 捆绑技能(/app/skills/):与 OpenClaw 版本绑定。
- 工作区技能(workspace/skills/):本地 git 自行管理。
- OpenClaw 版本:通过 npm registry 与 GitHub Releases 检查。
- npm 依赖(/app/node_modules/):使用 npm outdated。
- pip 包:使用 pip3 list --outdated。
- CLI 工具:通过 PATH 与版本命令检查。
使用方式:脚本位于技能目录 ~/.openclaw/workspace/skills/dependency-tracker/scripts/。按顺序执行: python3 scripts/scan.py python3 scripts/check.py python3 scripts/report.py scan 用于构建或刷新本地清单,check 用于对比本地与远程版本,report 生成可读的 Markdown 报告。
按需检查流程:运行 scan.py 刷新清单,运行 check.py 对比远程源,运行 report.py 生成报告,将报告摘要发送给用户(Telegram);若发现来源不明的技能,通知 Boss。
定时检查:可配置每周 cron 任务,依次运行三个脚本,将报告摘要推送到 Telegram,仅在发现更新或发生错误时通知。
数据文件:运行时数据存放在 data/ 目录(已从备份中忽略),包括 manifest.json(完整依赖清单)、check-results.json(最近检查结果)以及 reports/YYYY-MM-DD-report.md(生成的报告)。
关键设计:不自动更新,仅检测与报告;GitHub 使用本地 git hash-object 与 GitHub Contents API 的 SHA 精确比对,避免误报;以 .skill-lock.json 作为托管技能注册表的真实来源,提供仓库 URL 与安装元数据;对有更新的 GitHub 技能会抓取近期提交作为变更上下文;无来源可追溯的技能会被标记并上报。限制:具体通知渠道配置、cron 安装步骤及错误处理细节暂未提供。