bear-map

>

Skill file

Preview skill file
---
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>` 链接,不能因为生成时忘记而留成纯文本。

Source

Creator's repository · fei0810/bear-research-skills

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk