apswin/scout-dog
GitHub: apswin/scout-dog
scout-dog 是一个 Claude Code 技能,让用户用自然语言驱动网络搜索、内容过滤与信息监控,并自动生成调查结果笔记。
Stars: 0 | Forks: 0
# scout-dog (用于 Claude Code)
一个为 [Claude Code](https://claude.com/claude-code) 设计的发现技能。用简单的自然语言描述你想要寻找的内容,scout-dog 会运行布尔网络搜索,根据你的保留/剔除 (KEEP/DROP) 标准过滤搜索结果,读取它可以访问的页面,并将整理好的调查结果笔记写入 `./runs/`。
它负责查找、阅读并列出候选名单——它**绝不**会进行主动联系或联系任何人。
```
"find Reddit threads naming good SEO audit tools"
"find 50 X profiles who post about GEO and AI search"
"round up recent articles on agentic RAG"
"new SF 2BR apartments under $6500/mo on Craigslist, last 24h"
│
▼
gather → dedupe → filter → fetch & summarize → ./runs/findings_.md
```
包含两种收集模式,会根据你的要求自动选择:
- **web** — 在开放网络上进行布尔搜索(默认)。
- **site** — 获取单个网站自身的过滤列表/信息流,支持结构化过滤器(价格、卧室数、位置)和时效性(“过去 24 小时”)。在可用的情况下使用网站的 RSS;对于有反爬虫机制的网站,它会通过 Claude 的 fetch 功能读取结果页面。
## 工作原理
单一智能层:你正在与之对话的 Claude 模型负责执行简报、KEEP/DROP 过滤,以及总结/分类。纯 Python 脚本仅负责确定性的机械工作(搜索、去重、抓取、渲染)并输出 JSON。**没有第二个模型,也不需要 API key** —— 密集的页面读取工作会被分发给 Claude Code 的 subagent,因此它永远不会淹没你的主聊天上下文。
查看 [`SKILL.md`](.claude/skills/scout-dog/SKILL.md) 了解完整的 pipeline,以及
[`references/brief-schema.md`](.claude/skills/scout-dog/references/brief-schema.md)
了解所有的配置项。
## 安装
**选项 A — 在此 repo 中使用(最简单)。** 克隆 repo,在 repo 中打开 Claude Code,然后只需提问:
```
git clone https://github.com/apswin/scout-dog
cd scout-dog
claude # then: "find Reddit threads about ..."
```
`.claude/skills/scout-dog/` 中的技能会被自动发现。
**选项 B — 全局安装**,以便在任何项目中使用:
```
cp -r .claude/skills/scout-dog ~/.claude/skills/
```
### 首次运行
当你首次调用它时,scout-dog 会运行一次性设置:它会创建一个 virtualenv,安装基础依赖项(`ddgs`、`requests`、`beautifulsoup4`),询问一次你是否需要为 JavaScript 密集型网站启用可选的 Playwright 浏览器层,并运行一次冒烟测试。之后每次运行都会直接跳到搜索阶段。
你也可以手动运行设置:
```
bash .claude/skills/scout-dog/scripts/setup.sh # base
bash .claude/skills/scout-dog/scripts/setup.sh --with-playwright # + browser
```
要求 Python 3.9+。
## 输出
每次运行都会在 `./runs/` 下生成自己的文件夹(已被 gitignored):
```
runs/--/
├── brief.json the contract you agreed to
├── 01_raw.json 02_deduped.json 03_findings.json
├── findings_.md ← the deliverable you read
├── findings_.csv
└── _run.md the funnel (searched → kept → fetched → snippet-only)
```
为一次搜索提供一个 `slug`,即可将其变成一个可重复运行的 monitor:它的运行结果会累积在 `runs//` 下,并且 `_seen_urls.txt` 注册表会跳过任何已经找到的内容。
## 调度
调度是可选的。在一次成功的运行后,该技能会询问你是否希望它自动运行,并且每次只显示新结果。如果你同意,它会在你选择的时间设置一个循环运行任务(对于更新频繁的列表为每天一次,对于内容发现为每周一次),默认使用你当地的时区。调度由 Claude Code 自带的调度器驱动——而不是脚本上的 cron——因为过滤和总结需要 Claude 的参与。你也可以随时直接要求“运行 `` monitor”。
## 客观的局限性
有登录限制的网站(X、LinkedIn、Instagram……)在没有身份验证的情况下无法被读取,因此对于这些网站,scout-dog 会返回搜索片段并如实说明情况。可选的 Playwright 层有助于处理 JavaScript 渲染的页面,但无法突破登录限制。
## 许可证
MIT — 见 [LICENSE](LICENSE)。
标签:Claude Code, LLM Agent, 数字取证, 特征检测, 自动化脚本, 逆向工具