# dsh-need-finder 路线图（Roadmap）

> 基线：**v0.2.0**（已发布 npm / 已挂 vertical-toolkits profile）
> 范围：接下来 5 个版本 **v0.3.0 → v0.7.0**
> 规划原则：匹配保持零网络零依赖、纯函数可单测；目录与配方为纯数据文件，可自行增删。

## 版本总览

| 版本 | 主题 | 关键交付 |
|---|---|---|
| v0.3.0 | 匹配透明化 | 打分明细（命中字段与权重）+ 分类/标签过滤 + 同分类多样性限流 |
| v0.4.0 | 目录更新 | 从 awesome README 增量更新 `guide-data.json`（离线渲染 + 本地写入） |
| v0.5.0 | 配方增强 | 依赖求解与冲突检测 + 配方导出（YAML/命令脚本） |
| v0.6.0 | 组合推荐 | 多需求 → 插件组合方案（含冗余/冲突提示） |
| v0.7.0 | 个性化 | 记录已装插件，过滤已装并提示可升级/替代 |

## v0.3.0 ✅ 已完成 — 匹配透明化

### 新增能力
- **打分明细**：每条命中结果附带 `reasons`（字段：name +3 / tag +2 / description +1 / 中文子串 / 分类词典兜底）与总分，模型可解释为什么推荐它。
- **过滤与多样性**：`plugin_guide` 支持 `category` 与 `tag` 过滤；`diversify`（默认 true）限制同一分类最多 N 条，避免一次全推同一类插件。

### 实现位置
- `lib/match.js`：新增明细打分结构与多样性选择纯函数
- `lib/index.js`：`plugin_guide` 增加 `category` / `tag` / `diversify` / `perCategory` 参数与输出字段

### 验收标准
- [ ] `node --check` 通过；新增单测 ≥ 6 个（明细字段、权重、过滤、多样性、边界）
- [ ] 原有 `match.test.mjs` / `recipe.test.mjs` 全绿
- [ ] README 更新（参数表与"为什么推荐"示例）
- [ ] vertical-toolkits dump-config 正常

## v0.4.0 — 目录更新

- `guide_refresh`：解析 awesome-dsh-plugin README → 归一化条目 → 与内置目录合并（新增/更新/移除计数）
- 离线优先：网络失败时保留内置目录并明确提示

## v0.5.0 — 配方增强

- 配方依赖求解（顺序 DAG 校验、循环/缺失检测）与互斥冲突提示
- `recipe export`：导出 YAML 或可执行安装脚本

## v0.6.0 — 组合推荐

- 多需求输入 → 组合方案（去重、角色分工、冗余提示）
- 与 `recipe` 打通：组合可一键转配方

## v0.7.0 — 个性化

- 本地已装清单（读取 profile）→ 过滤已装、提示可升级/替代

## 发布节奏

每个版本走完整 dsh-factory 流程：本地验证 → npm publish → GitHub topic → awesome PR。
