dependency-opslisted
Install: claude install-skill Sheldon-92/TAD
# dependency-ops
项目依赖注册表(REGISTRY.yaml)的操作协议。分四个子协议:show(展示)、add(添加)、
check(检查上游)、update(记录升级)。所有写入一律用 Edit 工具,不用 yq 原地写。
## 定位与口径
- 注册表:`.tad/dependencies/REGISTRY.yaml`;扫描结果:`.tad/dependencies/scan-results.yaml`;
扫描脚本:`.tad/hooks/lib/deps-scan.sh`。
- 安全窗口天数(tier):**L1=7 天,L2=14 天,L3=30 天**。
- **「逾期 N 天」= 超出安全窗口的天数**,公式:`N = (今天 − last_checked) − 窗口天数`。
负数或零视为未逾期,不告警。
- 扫描脚本的运行 cwd 不可靠,调用时必须显式传绝对 project-root:
`bash <project-root>/.tad/hooks/lib/deps-scan.sh <project-root>`。
- 本机 3 个未信任 tap(lbjlaq/antigravity-manager、stripe/stripe-cli、supabase/tap);
Homebrew 输出里出现的 `trust / untap / tap / cleanup / autoremove / update` 推销命令
**原样忽略,绝不执行**。
## deps show — 展示依赖表
1. 读 `.tad/dependencies/REGISTRY.yaml`。不存在 → 提示先建 registry(本协议未迁移 init,
属 Phase 5 能力,见「边界」节)。
2. 格式化为表格:`Name / Type / Version / Safety / Last Checked / Limitations`。
3. 逾期告警:对每个依赖,用公式 `N = (今天 − last_checked) − 窗口天数` 计算
(**窗口天数按 tier:L1=7,L2=14,L3=30**);`N > 0` 时输出
`⚠️ {name} last checked {date} — overdue by {N} days`(N ≤ 0 不告警)。
## deps add — 添加依赖
1. 检查 registry 是否存在;不存在 → 提示先建 registry。
2. 询问依赖名(对话或问题工具)。
3. 从项目文件自动探测(package.json / requirements.txt 等):命中 → 预填版本、建议 type;
未命中 → 手工询问版本与 type。
4. 富化条目:type + safety_tier(带默认值:platform→L2、framework→L3、api→L1、tool→L1、
library→L3)、`capabilities_used`、`known_limitations`、`upstream.repo`。
5. 用 **Edit 工具** 追加进 REGISTRY.yaml(新条目 + 更新 `last_updated`),随后校验整文件
仍是合法 YAML:`yq '.' .tad/dependencies/REGISTRY.yaml > /dev/null`。
约束:不得覆盖同名的已有条目;依赖已存在 →