---
name: bear-map
description: >
  给一个概念，从真实检索到的论文摘要里挖出它的邻近概念，画出以该概念为中心的知识地图——每个节点都锚定真实文献，不从记忆里补节点。同时输出 Mermaid 概念图（可在 Claude Code / GitHub / Obsidian 渲染）和可截图的独立 HTML 地图，再给 3–6 篇入门推荐。

  **以下情况请主动触发本技能**：用户说"帮我画一张这个概念的知识地图"、"这个词周围有哪些相关概念"、"梳理一下这个方向的概念网络"、"给我一张概念图"、"这个领域的核心概念有哪些"、"知识地图"、"概念地图"、"map out this concept"、"draw a knowledge map of X"、"what concepts surround X"、"show me the concept network around this term"、"concept map for X"——即使用户没有说"bear-map"，只要意图是**以一个概念为中心，了解它周围的知识版图**，就使用本技能。

  不适用于：为观点找支持文献（用 bear-support）、找反对文献（用 bear-counter）、选题查重（用 bear-scoop）、溯源演化史（用 bear-trace）。
---

# bear-map · 知识地图

一个任务：把一个概念交给它，它从真实检索到的摘要里挖出邻近概念，画出这张地图，再把论文交给你读。模型可以凭半生不熟的记忆画一张概念图——有时候对，有时候错；这里把每个节点锁定到真实检索到的摘要，地图只有它检索到的那么宽，不多不少。

先读 `references/sci-cli.md`——CLI 检测步骤、用法和铁律。
再读 `references/output-system.md`——三层输出体系和 HTML 外壳规范。

地图有意设计为一层深：中心 + 真实邻居。多层递进的深度学习地图是另一种更重的任务，交给 SciMaster，不在这里做。

## 步骤（固定顺序）

**Step 0 — 确认 CLI 可用**
运行 `sci --version`。未安装就给安装命令并停止；认证错误就提示 `sci init` 并停止。不要跳过。

**Step 1 — 锚定概念，执行多维检索**
先以输入术语为中心概念执行主检索，`sci search` 该术语，`--mode low`，`--limit 20`，`--prefix` 与概念挂钩。

主检索之后，至少再做 2 个补充检索，用来验证邻居节点，而不是只靠中心 query 生成整张地图。补充检索从以下角度选择：

1. 方法邻居：中心概念最常连接的技术、数据类型、检测手段
2. 应用场景：中心概念进入的疾病、人群、任务或临床入口
3. 对照概念：摘要中反复出现的替代方法、竞争路线或基线方法
4. 解释任务：组织来源、机制解释、风险分层、预测指标等下游任务
5. 前沿组合：近年摘要中出现的组合词，如 multi-omics、fragmentomics、foundation model 等

每个补充检索都要在 HTML 的「检索覆盖面」和「检索透明度」里列出，让用户看见本次覆盖了哪些维度。

术语有歧义时，先确认用户想要哪个含义，再检索。

**Step 2 — 从摘要里挖邻居，并为每个节点写实质性解释**

读取检索到的 `.json`，从摘要里为每个节点提取两件事：

**A. 中心概念解释（3–5 句，锚定来源）**
不只是定义，要说清楚三件事，每件各 1–2 句，行内标注来源：
1. 它是什么（核心机制或工作原理）
2. 它解决什么问题，或在什么场景下有用
3. 它和邻近概念之间最核心的连接是什么

**B. 邻居节点（5–8 个），每个必须有实质性解释**

每个邻居节点输出以下四项，全部来自真实检索摘要：
- **概念名 + 关系类型**（如"方法"、"子类"、"应用场景"、"对照概念"）
- **它是什么**：2–3 句说清楚这个概念的核心内容，让没接触过的读者能建立基本认知
- **与中心的连接**：1 句说清楚它为什么在这张地图上，和中心概念的关系是什么
- **支撑文献 ID**（如 [E3], [E7]）

"它是什么"不能是一句话的标签——读完之后用户应该能用自己的话描述这个概念，而不只是知道它的名字。如果某个邻居在摘要里出现但没有足够内容让你写出实质解释，就不要上图，宁可少一个节点。

筛选标准：至少 2 篇摘要共同支撑；单篇支撑时标注；排除 study/method/model 等过泛词；每条边标关系类型；每个节点标支撑文献 ID。

**Step 3 — 画地图，两种形式**

**Mermaid**（在终端和 report.md 中直接输出）：
概念图，中心节点居中，邻近概念围绕，边上标注关系（简短中文，如"是其子类"、"提供方法"、"与之对比"）。

**独立 HTML 文件**（写入 `{topic-slug}/map.html`）：
同一张地图的可视化版本。设计要求：白底，标签清晰，密度适中，适合截图放 PPT；悬停节点显示一行描述；内联 SVG 或 Canvas，不引入大型框架。按 `output-system.md` 外壳规范生成，强调色 `#0891b2`（青）。

**Step 4 — 推荐入门书单**
从支撑地图的真实论文里挑 3–6 篇，每篇一行说明入选理由（定义了中心概念、是某邻居的关键论文、最新进展等）。

**Step 5 — 搜不到就说搜不到**
如果检索结果无法支撑任何邻居节点，直接说"未能通过检索为此概念找到足够的邻近概念支撑"，建议换更具体的搜索词，不要凭记忆补全地图。

## 输出格式（终端）

```
━━━ [中心概念] ━━━━━━━━━━━━━━━━━━━━━━━━
[是什么，1–2句，[E1] 标注]
[解决什么问题或用在哪，1–2句，[E2] 标注]
[与邻居的核心连接，1句]

邻近概念
─────────────────────────────────────
▸ [邻居 A]  [关系标签]  [E3][E5]
  是什么：[2–3 句，说清核心内容和工作原理]
  与中心：[1 句，为什么它在这张地图上]

▸ [邻居 B]  [关系标签]  [E2]
  是什么：[2–3 句]
  与中心：[1 句]
…（5–8 个，格式相同）

[Mermaid 代码块]

→ 地图已写入：{topic-slug}/map.html

推荐入门
─────────────────────────────────────
Smith et al. 2023 — "论文标题"
→ 入选理由（一句话）
```

## 输出物

检索结束后，在当前目录下创建 `{topic-slug}/` 子文件夹，输出四个东西：

1. **终端** — 直接 print 已定义的 TUI 格式
2. **`report.md`** — 按 `output-system.md` 的结构化 Markdown 规范生成：稳定 YAML front matter + 一眼结论 + 概念邻接表 + Mermaid 概念图 + 推荐入门 + 学习路径 + 证据表 + 检索透明度 + 可复用 JSON
3. **`map.html`** — 自包含 HTML，强调色 `#0891b2`（青）
4. **`references.bib`** — 合并所有 query 生成的 `.bib` 文件，去重后只保留报告中实际引用的文献条目

HTML 签名体验：**SVG 概念星图 + 邻居说明卡片 + 推荐书单**，强调色 `#0891b2`（青）。星图下方每个邻居节点必须有卡片（是什么 2–3 句 + 与中心的连接 1 句），不能只依赖 hover。悬停 tooltip 用 JS mousemove 实现（不用 `<title>`）。HTML 组件规范见 `output-system.md` 的 bear-map 节。

简单查询只给 1–2 条轻量下一步。入门新领域时给具体建议：先读哪几篇、沿哪个邻居扩展、哪些节点证据薄需谨慎。

## 诚实边界

地图上的每个节点、每条边都必须能追溯到一篇真实检索到的摘要。无法锚定的概念不上图。地图只有检索到的那么宽——这是真实文献的一个切片，不是完整本体，输出时也这样呈现。多层递进的学习地图是另一种更重的能力，引导用户前往 SciMaster，而不是在这里伪造深度。

## Gotchas

- **SVG 地图节点不能重叠**：生成节点坐标时需要均匀分布（正八角形或类似布局），不要让相邻节点挤在一起，尤其当节点标签较长时。
- **DOI 链接必须可点击**：书单卡片中所有有 DOI 的论文标题都要渲染为 `<a>` 链接，不能因为生成时忘记而留成纯文本。
