为你的 agent 工作流,找对的开源工具
安装 tool-scout这是什么
tool-scout 是一个 Claude Code skill:它读你指定 agent 的会话历史(回溯模式)或就新项目跟你访谈(立项模式),提炼你的工作画像,再从 SummFlow 的开源工具目录里语义匹配能解决你实际摩擦的工具,给出推荐理由和安装命令。零配置——装好即用。
安装
Claude Code 插件市场(推荐):
/plugin marketplace add david-bowiegxw/summflow复制/plugin install tool-scout@summflow复制不用插件?复制 SKILL.md 手动装
放进 ~/.claude/skills/tool-scout/SKILL.md:
---
name: tool-scout
description: 从用户的工作轨迹里找出能提效的开源工具。读用户指定 agent 的会话历史(回溯模式)或就新项目访谈(立项模式),提炼工作画像,再从 SummFlow 工具目录语义匹配能解决观察到的摩擦的工具,给出推荐理由 + 安装命令。需要「帮我看看有什么工具能改进我的工作流 / 这个新项目该上哪些工具」时使用。
---
# tool-scout:把工作轨迹匹配成工具推荐
你在帮用户从 SummFlow 工具目录里找出能提效的工具。**铁律**:用户的历史与画像绝不外发(就地读、在上下文里推理);唯一的网络动作是 read-only GET 拉目录;不替用户装任何东西,只给命令。每条推荐都要绑定一条观察到的具体摩擦,绝不泛泛而谈。
## 模式判定
- 用户想「看看现有工作流能上什么工具」→ **回溯模式**(读历史)。
- 新项目起步、无历史可读、或用户明确想就需求咨询 → **立项模式**(访谈)。
---
## 回溯模式
### R0 · 同意闸(必做,先于一切文件读取)
明确告诉用户:「我将读取本机 `<provider>` 的会话记录,用于提炼你的工作画像;**内容不外发**,只在本地推理。可以吗?」未得明确许可不读任何历史文件。用户拒绝 → 转立项模式或退出。
### R1 · 探测 + 选范围
- 运行 `node scripts/scout-history.mjs --detect`,把探测到的 provider 列给用户(present 的、各自 file_count)。
- 让用户选要分析的 provider。**P1 只验证过 Claude Code(`verified: true`)**;其余(含 OpenCode——现版本改用 SQLite 存储,P1 未读取)均未验证,选了未验证的就如实说「该 provider 历史格式 P1 未验证,结果可能不准」,由用户决定是否继续。
- 范围默认近期(`--limit 50`,即最近 50 个会话文件)。用户要更宽/更窄就调 `--limit`。
### R2 · 提炼画像
- 运行 `node scripts/scout-history.mjs --provider <id> --limit <n>`,拿到 profile JSON(`signals` + `installed`)。
- **先看有没有 `unreadable` 字段**:有就说明该 provider 格式 P1 未解析、`signals` 是空的(是「没读到」不是「没摩擦」)——别拿空 signals 当结论,告知用户改用 Claude Code 或转立项模式。
- 读 `signals`:`userTurns`(反复出现的诉求)、`bashCommands`/`toolCalls`(反复手动跑的命令)、`keywords`(技术栈/领域)。**这些是候选信号,判断由你来下**——从里面识别真正的摩擦点(手动重复、卡壳、缺工具的地方),不要把每个高频命令都当摩擦(`git`/`ls` 是日常,不是摩擦)。
### R3 · 拉目录
GET `https://summflow.com/tools-index.json`(用 WebFetch 或 `curl -fsSL`)。这是唯一外发动作,read-only。失败 → 告知「目录拉取失败」并停,不用任何陈旧副本冒充。
### R4 · 语义匹配(你来推理)
对每个识别出的摩擦,在目录里找能解决它的工具:
- **绑定摩擦**:每条推荐 = 「你反复在手动做 X(证据:bashCommands 里 `pdftotext` ×9 / userTurns 里多次提到转 markdown)→ 工具 Y 能解决」。
- **去重**:对照 `installed.skills` / `installed.mcp` / `installed.plugins`(插件装的技能如 superpowers/gstack 在这里),已装的不推。
- **诚实空态**:目录里没有对应工具就说「这块目前没有匹配的卡」,不硬凑、不降格塞沾边的。
- **排序**:按「摩擦严重度 × 匹配贴合度」取 top 3–5。
### R5 · 出报告(见下「报告格式」)。
---
## 立项模式
### G1 · 访谈
一轮结构化提问问清:项目类型、技术栈、要解决的核心问题、现有工具链、最头疼的环节。在脑中形成同样的「画像」(领域/栈 + 痛点)。
### G2–G4
同回溯的 R3(拉目录)→ R4(匹配,摩擦换成访谈得到的痛点)→ R5(报告)。去重时若用户提了已有工具链,同样不重复推荐。
---
## 报告格式
对话内排序报告,每条:
- **工具名 + 一句它解决什么**(取卡片 `positioning`)。
- **为什么推给你**:绑定的那条摩擦/痛点(引用具体证据)。
- **怎么装**:卡片 `install` 数组里的命令(逐字,可直接复制);没有就略过。
- **看详情**:`https://summflow.com<url>`(卡片 `url` 字段)。
语气沉稳、只陈述不安利(沿用站点卡片去 AI 味规范:不堆形容词、不替用户下惊叹)。无任何匹配时如实说明,不出空骨架。
结尾问一句:**要不要把这份推荐存成 markdown 存档?**(默认不存;用户确认才写到用户指定路径。)
## 绝不
- 读历史前不征得许可;把历史/画像发到任何网络位置;用陈旧目录副本冒充。
- 替用户执行安装命令 / 改用户环境(只给命令,用户自己跑)。
- 推荐目录里不存在的工具,或硬凑沾边的凑数。
支持的 agent
- Claude Code 已验证
- OpenCode 等 适配中
用法示例
装好后,在 Claude Code 里直接说:
「帮我看看有什么工具能改进我的工作流」
tool-scout 会回溯你的会话、列出几条带理由和安装命令的推荐。新项目时说「这个新项目该上哪些工具」走立项访谈模式。
局限(如实说)
- 工具目录还不够全 —— 仍在持续收录,冷门好工具可能漏。
- 匹配机制(语义匹配)还不够完善,偶尔会给出不贴切的推荐。
- 目前只在 Claude Code 上验证过;其它 agent 适配待办。
提点改进意见
哪里不好用、想要什么工具、匹配错在哪 —— 都可以直接说,我会定期看并改进。