用途:在选择命令行工具、工具执行过慢或用户提到“最佳工具/用哪个工具/替代工具”时使用,帮助把任务映射到当前环境下最合适的 CLI 工具,并在工具缺失时优雅降级。不适用于工具选择已固定或仅需简单单行命令的场景。
主要能力:内置检测脚本,在推荐工具前先运行 bun /Users/mg/Developer/outfitter/agents/outfitter/skills/which-tool/scripts/index.ts,解析可用现代工具、缺失工具和系统上下文(操作系统、包管理器),结果可在会话内缓存。提供任务到工具的映射表,例如按文件名查找用 fd(回退 find)、搜索内容用 rg(回退 grep)、AST 感知检索用 sg(回退 rg/grep)、处理 JSON 用 jq(回退 python/node)、查看文件用 bat、列目录用 eza、查看 git diff 用 delta、目录跳转用 zoxide、模糊选择用 fzf、HTTP 请求用 httpie(回退 curl)。
使用方式:按任务类型分类,结合检测结果选工具并以合适参数执行;当首选工具缺失时,若提升有限则静默改用次优方案,若提升达 2 倍以上则给出安装建议(如 brew install jq)但不阻塞;若任务极其繁琐则提示风险并让用户选择。工具耗时超过预期 3 倍、用户要求更好方案或缺少专用工具时,触发调研:搜索近年 CLI 工具、查看 GitHub 趋势,从速度、易用性、维护状态、安装复杂度和兼容性评估候选,并输出名称、优势、安装命令、示例与权衡。
限制:不得在未检测的情况下假设工具已安装,不得因缺少非必需工具阻塞流程,不推荐无人维护的工具,也不得在可用现代工具时仍使用旧工具;会话内应缓存检测结果,除非工具可用性发生变化。相关文档包括 tool-catalog.md、alternatives.md 和 detection-script.md。