# tools/external/ 目录 Agent 指南 本目录用于收纳 **外部工具/第三方项目**(含 Git submodule),保持“主仓库资产”和“外部依赖”边界清晰、可审计、可更新。 ## 目录结构(约定) ```text tools/external/ ├── AGENTS.md # 本文件(目录级行为准则) ├── README.md # 外部工具索引 ├── .tmux/ # submodule:oh-my-tmux 配置 ├── tmux/ # submodule:tmux 源码 ├── claude-official-skills/ # submodule:Claude 官方 skills 仓库 ├── Skill_Seekers-development/ # submodule:Skill Seekers 工具来源 ├── html-tools-main/ # 普通目录:HTML 工具集 ├── my-nvim/ # 普通目录:Neovim 配置 ├── MCPlayerTransfer/ # 普通目录:MC 玩家迁移工具 └── XHS-image-to-PDF-conversion/ # 普通目录:图片合并 PDF 工具 ``` ## 当前软链接显示 ```text skills/claude-official-skills -> ../tools/external/claude-official-skills skills/auto-skill/scripts/Skill_Seekers-development -> ../../../tools/external/Skill_Seekers-development skills/auto-skill/scripts/skill-seekers-configs -> Skill_Seekers-development/configs skills/auto-skill/scripts/skill-seekers-src -> Skill_Seekers-development/src ``` ## 操作规范 ### 允许 - 新增外部依赖(优先 Git submodule,确保可复现) - 更新 submodule 指针(明确记录上游来源与用途) - 用相对软链接把 `tools/external/` 下的事实来源暴露到其它目录,软链接目标必须仍在仓库内 - 为已复制进主仓库的外部源码建立清退计划:上游 URL、保留理由、迁移方式、验证命令 ### 禁止 / 不推荐 - 直接复制粘贴大型第三方仓库内容到主仓库(优先 submodule) - 将 submodule 替换为本地绝对路径软链接(会导致他人环境不可用) - 提交第三方仓库的构建产物、生成物、运行时二进制或缓存目录 - 在主仓库直接魔改第三方源码快照;需要改造时先 fork,再以 submodule 指向 fork ## 仓库表达决策 1. **完整外部仓库**:优先使用 `git submodule`,主仓库只记录 commit 指针。 2. **同仓多入口展示**:使用相对软链接,例如 `skills/ -> ../tools/external/`。 3. **项目内小工具**:只有在无上游、体量小、与本项目强耦合时才直接追踪源码。 4. **生成输出**:默认不跟踪;若必须保留样例,只提交最小样例和生成说明。 5. **普通目录**:`html-tools-main/`、`my-nvim/`、`MCPlayerTransfer/`、`XHS-image-to-PDF-conversion/` 当前作为小体量工具快照保留;确认上游 URL 后再转 submodule。 6. **清退触发**:普通目录出现体量膨胀、生成物混入、上游仓库明确或需要频繁升级时,必须优先转 submodule 或迁出主仓库。 7. **语言统计**:`tools/external/**` 已在根目录 `.gitattributes` 标记为 `linguist-vendored`,避免外部工具源码污染主仓库语言占比。