clonedeps 是一个工作流类技能(而非命令包装器),目标是让用户把少量重要的依赖源码仓库在本地变得可被 OpenCode 读取。它不做通用依赖转储,只推荐源代码比文档或当前仓库本身更有价值的仓库,通常不超过 3-5 个核心依赖,优先 0-3 个强推荐。
工作流程:先检查 .slim/clonedeps.json 是否存在并复用已有克隆;再委托 @librarian 给出克隆计划(依赖名、版本范围、官方仓库 URL、要检出的 tag/commit/ref、monorepo 中的包子目录、原因与注意事项);由编排者校验 ref(可用 git ls-remote)、默认仅接受 HTTPS 的 GitHub/GitLab 风格仓库地址,并向用户展示计划和请求确认。
克隆前需更新 .gitignore 与 .ignore 的受管标记块:.gitignore 忽略 .slim/clonedeps/repos/,.ignore 用允许列表放行 .slim/、清单文件和 repos 内容,并排除其中的 .git。每个源仓库在 .slim/clonedeps/repos/<safe-repo-name>/ 下创建一个目录,安全名由仓库 owner/name 推导(如 opencode-ai__opencode),同一 monorepo 只克隆一次、用 packagePath 区分包。使用常规 git 命令,尽量减少子模块与递归克隆,优先浅克隆。
完成后写入 .slim/clonedeps.json 作为结构化清单(含 version、updatedAt、dependencies 列表),并在仓库根 AGENTS.md 中追加或更新 “Cloned Dependency Source” 段落。
限制:不在克隆仓库中运行依赖安装/构建/测试脚本;默认拒绝 file://、SSH、本地路径、含凭据或需认证的 URL;克隆内容为只读,不应编辑。清理时删除 .slim/clonedeps/repos/ 及受管标记块,删除清单文件或 AGENTS.md 段落前需询问。该技能不包含自动化脚本。