# 🔌 tools/external:外部仓库与第三方工具 `tools/external/` 用来收纳第三方工具、外部依赖与 Git submodule。核心原则是: - **尽量原样保留**:避免“魔改后不可升级” - **隔离依赖与风险**:外部工具的依赖不要污染主仓库 - **可追溯**:来源、许可证、用法要写清楚 ## 目录结构 ```text tools/external/ ├── AGENTS.md # 本目录的 Agent 行为准则 ├── README.md # 本文件(外部工具索引) ├── .tmux/ # submodule:oh-my-tmux 配置 ├── tmux/ # submodule:tmux 源码 ├── claude-official-skills/ # submodule:Claude 官方 skills 仓库 ├── Skill_Seekers-development/ # submodule:Skills 制作器 ├── html-tools-main/ # HTML 工具集 ├── my-nvim/ # Neovim 配置 ├── MCPlayerTransfer/ # MC 玩家迁移工具 └── XHS-image-to-PDF-conversion/ # 图片合并 PDF 工具 ``` ## 工具清单 - `Skill_Seekers-development/`:以 submodule 引入的 Skills 抓取/制作器 - `.tmux/`:以 submodule 引入的 oh-my-tmux 配置来源 - `tmux/`:以 submodule 引入的 tmux 上游源码 - `claude-official-skills/`:以 submodule 引入的 Claude 官方 skills 仓库 - `html-tools-main/`:HTML 工具集 - `my-nvim/`:个人 Neovim 配置 - `MCPlayerTransfer/`:MC 玩家迁移工具 - `XHS-image-to-PDF-conversion/`:图片合并 PDF 工具 ## 当前源码表达状态 | 目录 | 当前表达 | 处理策略 | |:---|:---|:---| | `.tmux/` | Git submodule | 保留 submodule 指针 | | `tmux/` | Git submodule | 保留 submodule 指针 | | `claude-official-skills/` | Git submodule | 保留 submodule 指针,并通过 `skills/claude-official-skills` 软链接展示 | | `Skill_Seekers-development/` | Git submodule | 保留 submodule 指针,并通过 `skills/auto-skill/scripts/Skill_Seekers-development` 软链接供 auto-skill 使用 | | `html-tools-main/` | 普通目录 | 体量小,暂作为本仓库工具快照保留;确认上游 URL 后可转 submodule | | `my-nvim/` | 普通目录 | 体量小,暂作为配置样例保留;确认上游 URL 后可转 submodule | | `MCPlayerTransfer/` | 普通目录 | 体量小,暂作为独立工具快照保留;确认上游 URL 后可转 submodule | | `XHS-image-to-PDF-conversion/` | 普通目录 | 体量小,暂作为独立工具快照保留;确认上游 URL 后可转 submodule | 普通目录不得继续扩张为大型源码快照;新增外部仓库默认使用 submodule。 为避免外部工具源码影响主仓库语言统计,根目录 `.gitattributes` 已将 `tools/external/**` 标记为 `linguist-vendored`。 ## 当前软链接显示 | 事实来源 | 展示入口 | 说明 | |:---|:---|:---| | `tools/external/claude-official-skills/` | `skills/claude-official-skills` | Claude 官方 skills 仓库 | | `tools/external/Skill_Seekers-development/` | `skills/auto-skill/scripts/Skill_Seekers-development` | `auto-skill` 的 Skill Seekers 工具来源 | ## 表达规则 - 完整外部仓库:优先 `git submodule add tools/external/`。 - 跨目录展示入口:使用相对软链接,例如 `skills/ -> ../tools/external/`。 - 不允许:软链接到本机绝对路径、复制大型上游源码、提交构建产物/生成物、提交二进制运行时。 - 需要本地改造第三方工具时:优先 fork 后以 submodule 指向 fork;不要在主仓库直接魔改一份不可升级的源码快照。 ## 新增外部工具(最小清单) 1. 优先新增 submodule:`git submodule add tools/external/`。 2. 只在没有上游仓库、且体量小/与本项目强耦合时,才创建普通目录:`tools/external//`。 3. 必备文件:`README.md`(用途/入口/依赖/输入输出)、许可证与来源说明(如 `LICENSE` / `SOURCE.md`)。 4. 依赖约束:尽量使用工具自带的虚拟环境/容器化方式,不影响仓库其他部分。 5. 文档同步:在本 README 增加一行工具说明,保证可发现性。