Skip to content
dsh.fish
Bundle

dsh-plugin-deep-scan

dsh plugin: iterative GitHub deep search — multi-query × 4-channel search (phrase / loose / README full-text / topic sweep), mine new query terms from hit topics, iterate rounds with a diminishing-returns stop rule, and rank by channel precision + stars.

Source
121212165
License
MIT
Updated
Updated 19 days ago

Readme

# dsh-plugin-deep-scan

**EN** · Iterative GitHub deep search: four channels (exact phrase, broad match, README body, topic expansion), new keywords mined out of the previous round, and a diminishing-returns stop rule instead of a fixed page count. `/deep-scan` returns a ranked pool annotating which channel found each hit and which words matched. · Limits: the search API caps at 1,000 results per query; generic cross-industry words sink to the noisy channels.

DeepSeek Harness (dsh) 插件:**GitHub 赛道深度扫描器**。一条链路跑完"多词搜索 → 挖词 → 迭代 → 止损",自动把一个口语化的赛道需求变成几百个候选仓库的精准榜单。

适合回答:"这个赛道有哪些开源项目/竞品?我下一个产品该卡哪个位?哪个是漏网大鱼?"

同系列:[price-aware](https://github.com/121212165/dsh-plugin-price-aware) · [cost-ledger](https://github.com/121212165/dsh-plugin-cost-ledger) · [relay-quota](https://github.com/121212165/dsh-plugin-relay-quota) · [transcript](https://github.com/121212165/dsh-plugin-transcript) · [transcript-search](https://github.com/121212165/dsh-plugin-transcript-search) · [obsidian-push](https://github.com/121212165/dsh-plugin-obsidian-push) · [session-insights](https://github.com/121212165/dsh-plugin-session-insights) · [eco-scan](https://github.com/121212165/dsh-plugin-eco-scan)。

## 链路

```
词1|词2|词3
  └─ 第1轮:每词 × 四通道并行搜索
       短语(phrase)   "词" 精确短语匹配 —— 精准度最高
       泛搜(loose)    词 名字/简介/topic —— 按 star 排
       正文(readme)   词 in:readme —— 挖简介没写但 README 详述的
       赛道(topic)    topic:x —— 从精准命中挖出的标签横扫
  └─ 挖词:统计精准命中池的 topics 高频标签(滤掉 ai/llm 等噪声标签,
          排除已搜过的词,出现≥2次才入选)
  └─ 第2..N轮:用挖出的 topic:xxx 当新一轮搜索词,重复上述链路
  └─ 止损:某轮新发现占比 < newKeepRatio(默认25%),或挖不出新词 → 收
  └─ 排序:通道精准度优先(短语>泛搜>正文>赛道),同通道按 star
  └─ 深挖:Top N 仓库补 README 摘要,尾部附完整候选池(标注命中通道+词)
```

设计依据(AI 小说赛道实测):泛词必被巨库淹没(搜"AI 小说"出来的是 LangChain);精确短语一击命中真竞品;`in:readme` 捞回简介漏写的大鱼(AI_NovelGenerator 6.1k★ 靠"伏笔"命中);第 3 轮起边际收益明显下降——所以默认 `mineRounds: 2`(最多 3 轮)。

## 用法

- **`/deep-scan 写小说|网文|AI novel`**:多词用 `|` 分隔(含全角),上限 6 个
- **`deep_scan` 工具**(给 agent 用):`{ queries: "写小说|网文|AI novel", language?, minStars? }`

搜索词要具体:给 2-4 个同义词/中英文变体。词内可带 GitHub 限定符(`pushed:>2025-06-01`)。

## 配置

| 字段 | 默认 | 说明 |
|---|---|---|
| `tokenEnv` | `[GITHUB_TOKEN, GH_TOKEN]` | GitHub token(无 token 搜索限流 10 次/分,建议设置) |
| `perChannel` | `30` | 每通道每词拉取条数 |
| `mineRounds` | `2` | 首轮之后自动挖词迭代几轮 |
| `deep` | `5` | 深挖(README 摘要)的仓库数 |
| `newKeepRatio` | `0.25` | 一轮新发现占比低于此值 → 止损 |

## 已知边界

- 挖词只走 topics 标签(确定性可测),简介里的功能词(如"去AI味/拆文")由 agent 看完报告后自行追加搜索——这是分工:插件负责可复现的链路,agent 负责语义跳转
- 跨行业通用词(审稿/续写/工作流)会漏噪声进池,但噪声沉在泛搜/正文通道底部,不动摇深挖区
- GitHub 搜索 API 上限 1000 条/查询,超大赛道建议加 `minStars` 收窄

## 安装

三步,实测于 `@deepseek-ai/dsh@0.1.7-alpha.1`(需 `pnpm` 在 PATH 上):

```sh
# ① 装进 profile:dsh plugin 把参数原样转发给 pnpm,git 包会自动跑 prepare 构建 lib/
dsh plugin --profile web add github:121212165/dsh-plugin-deep-scan
```

② 把本仓库根目录 `cordis.patch.yml` 的内容**并进** `$DSH_HOME/profiles/web/cordis.patch.yml`。
该文件默认是 `[]`,所以要么整份替换,要么把 insert 条目并进同一个数组;**不要直接追加**——
追加会形成两个 YAML 文档,启动即报
`failed to parse overlay ... end of the stream or a document separator is expected`(本机实测踩过)。

③ 重启 dsh。配置层与 client 半都要重启才生效(客户端按 boot 时算出的内容 rev 下发,硬刷新浏览器没用)。

自检挂载:`dsh --profile web --dump-config | grep dsh-plugin-deep-scan`,应看到该条目。

Install

dsh plugin --profile web add github:121212165/dsh-plugin-deep-scan

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source