# Concept Linker

> 跨主题统一概念层构建器：扫描所有 Obsidian 主题 vault，提取高频核心概念， 建立跨主题概念页（定义+跨主题出现位置+概念关系网络+学习建议），生成概念图谱， 解决"每个主题是孤岛、学新知识关联不到已学"的问题。 工作流：扫描所有主题笔记 → 核心概念种子全文匹配 → 按主题分组出现位置 → 生成概念页（9段式）→ 生成概念图谱（Mermaid mindmap+关系图）→ 概念层总索引。 典型触发语：'建立概念层'、'扫描知识库建立概念关联'、'更新概念层'、 '跨主题概念关联'、'概念图谱'、'知识库体检'。 概念层固定路径：E:\obsidian\rein\_概念层\，不影响现有主题 vault 和其他 skill。

- Skill: `reinforce52/concept-linker` (Agent Skill, multi-file: 12 files)
- Install (CLI): `npx skillmds@latest add reinforce52/concept-linker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/reinforce52/concept-linker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: reinforce52 (https://skillmd.com/u/reinforce52)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/reinforce52/concept-linker

---


# concept-linker — 跨主题统一概念层构建器

> 解决"每个主题是孤岛"的问题：把分散在各个主题 vault 中的同一个概念汇总到一个概念页，
> 建立跨主题知识网络，实现知识复利。

---

## 0. 核心价值

| 问题 | concept-linker 的解决 |
|------|----------------------|
| 每个主题独立 vault，概念不互通 | 跨主题概念页汇总所有出现位置 |
| 学新知识时关联不到已学的 | 概念关系网络标注前置/后续/关联 |
| 找不到某个概念在哪些笔记里出现 | 概念页按主题分组，wikilink 一键跳转 |
| 知识库越建越乱，没有全局视图 | 概念图谱（Mermaid mindmap+关系图） |

---

## 1. 目录结构（固定，不影响现有 vault）

```
E:\obsidian\rein\_概念层\
├── _概念图谱.md              ← 概念层总索引（统计+全景图谱+按学科浏览）
├── concepts/                  ← 每个核心概念一个概念页
│   ├── 矩阵.md
│   ├── 特征值与特征向量.md
│   ├── 传递函数.md
│   └── ...
└── entities/                  ← 实体页（人物/书籍/工具，预留扩展）
```

---

## 2. 触发指令

### 指令1：【建立概念层】（首次全量构建）
扫描所有学习类主题 vault，提取核心概念，建立概念层。
```bash
# 步骤1：扫描提取高频概念
python scripts/concept_scanner.py --vault "E:\obsidian\rein" --output concepts_index.json

# 步骤2：核心概念种子全文匹配（更准确）
python scripts/concept_matcher.py --vault "E:\obsidian\rein" --output concepts_matched.json

# 步骤3：生成概念页和概念图谱
python scripts/concept_page_builder.py --input concepts_matched.json --output-dir "E:\obsidian\rein\_概念层"
```

### 指令2：【更新概念层】（增量更新）
新建知识库后，重新扫描并更新概念层（覆盖式更新概念页）。

### 指令3：【知识库体检】（P1 已上线）
扫描所有学习类笔记，检测死链/重复/孤儿/矛盾，输出体检报告到 `_vault-health/体检报告.md`。
```bash
python scripts/vault_health.py --vault "E:\obsidian\rein" --output-dir "E:\obsidian\rein\_vault-health"
```
体检四项：
- **死链检测**：wikilink 指向不存在的文件（Obsidian 中显示灰色）
- **重复笔记检测**：标题+内容高度相似的笔记（排除同目录，减少视频笔记结构相似的误报）
- **孤儿笔记检测**：没有被任何其他笔记引用的笔记（排除导航文件）
- **矛盾标记**：同一概念在不同笔记中定义差异较大，标注待人工确认

### 指令4：【笔记模板】（P2 已上线）
查看8种标准化笔记模板，新建笔记时套用，保持结构一致。
模板位置：`E:\obsidian\rein\_templates\`

| 模板 | 用途 |
|------|------|
| 01-概念笔记 | 知识点/概念的标准笔记（最常用） |
| 02-视频笔记 | B站/YouTube/抖音视频学习笔记 |
| 03-教材笔记 | 教材原文/讲义提取 |
| 04-项目笔记 | 项目档案（含简历可用描述） |
| 05-每日日志 | 每日学习记录 |
| 06-错题卡点 | 错题和卡点（兼容 personal-twin） |
| 07-洞察心得 | 读书心得和跨学科洞察 |
| 08-工具资源 | 软件/网站/插件/学习资源 |

使用方法：打开 `_templates/_模板索引.md`，点击对应模板复制，或启用 Obsidian 模板插件一键插入。

### 指令5：【知识地图】（P3 已上线）
查看8主目录统一信息架构和总仪表盘。
- 总首页：`E:\obsidian\rein\🏠首页.md`（Obsidian 启动页，含知识库概览+快速查询）
- 8大导航入口：
  - `00-系统导航/`（模板/概念层/体检报告）
  - `01-上下文/`（个人镜像）
  - `01-每日日志/`（保持不动，personal-twin 依赖）
  - `02-学习库/`（保持不动）
  - `03-项目库/`（保持不动）
  - `04-简历成长库/`（保持不动）
  - `05-参考资源/`（教材/视频课程/工具索引）
  - `06-任务计划/`（任务看板）
  - `07-知识地图/`（学科总览+10个主题索引）
- **设计原则**：不物理移动任何现有目录（零风险，不影响 openclaw 链接），新增导航层用 wikilink 链接到现有内容。

### 指令6：【查看概念图谱】
打开 `E:\obsidian\rein\_概念层\_概念图谱.md`，查看全景图谱和按学科浏览。

### 指令7：【更新概念掌握度】
基于 personal-twin 错题卡点日志和项目库，自动推断46个概念的掌握度（待学习/学习中/已掌握/需复习/薄弱），更新概念页 frontmatter，生成掌握度总览。
```bash
python scripts/update_mastery.py --vault "E:\obsidian\rein"
```
推断逻辑：错题卡点≥2次→薄弱，1次→需复习，项目中应用→已掌握，有笔记无卡点→学习中。

### 指令8：【更新概念层】（一键自动更新）
一键完成：扫描→概念匹配→生成概念页+图谱→更新掌握度。新建知识库后运行此指令即可。
```bash
python scripts/auto_update.py --vault "E:\obsidian\rein"
```

### 指令9：【实体层】
查看/生成实体层（人物/书籍/工具/组织的跨主题关联页）。
```bash
python scripts/entity_builder.py --vault "E:\obsidian\rein"
```
当前19个实体：6人物（武忠祥/李永乐/汤家凤/胡寿松/3Blue1Brown/唐昕月）+5书籍+6工具+2组织。

### 指令10：【定时体检】
设置定时任务，每月自动运行知识库体检。
- 方式1（推荐）：双击 `E:\obsidian\rein\_vault-health\安装定时任务.bat`，创建 Windows 任务计划（每月1号09:00体检 + 每周日21:00概念层更新）
- 方式2：在 OpenClaw 中说"每月1号早上9点运行知识库体检"（smart-cron 自然语言定时）

### 指令11：【标记掌握】<概念名>（人工标记，优先于自动推断）
人工标记某个概念为"已掌握"，标记后自动推断不会覆盖。
```bash
python scripts/mark_mastery.py --concept 矩阵 --level 已掌握
```
也可以标记其他等级：【标记学习中】【标记需复习】【标记薄弱】【标记待学习】

### 指令12：【清除标记】<概念名>
清除人工标记，恢复自动推断。
```bash
python scripts/mark_mastery.py --concept 矩阵 --clear
```

### 指令13：【查看人工标记】
列出所有人工标记的概念。
```bash
python scripts/mark_mastery.py --list
```

### 指令14：【概念层全自动】
启用每小时自动增量检测（已通过 Windows 任务计划启用，无需手动触发）。
- 每小时自动扫描最近1小时修改的文件
- 有变化则自动更新概念层，无变化则跳过（节省资源）
- 日志：`_vault-health/logs/incremental.log`
- 手动测试：`python scripts/auto_update.py --incremental --hours 1`

---

## 3. 概念页标准模板（9段式）

```markdown
---
concept: "矩阵"
category: "线性代数"
cross_topic_count: 3
occurrence_count: 138
---

# 矩阵

> 学科分类 | 跨主题数 | 出现次数

## 📌 一、核心定义
（基于学科知识结构的准确定义）

## 📚 二、跨主题出现位置
### 线性代数（117篇）
- [[线性代数/知识点/xxx|笔记标题]]
### 考研数学（18篇）
- [[考研数学/04-线性代数要点/xxx|笔记标题]]

## 🔗 三、概念关系网络
| 关系类型 | 相关概念 |
| 前置知识 | [[向量]] [[线性变换]] |
| 后续延伸 | [[行列式]] [[特征值与特征向量]] |
| 关联概念 | [[传递函数]] [[状态空间]] |

## 💡 四、学习建议
（针对该概念的学习方法和重点）

## ✅ 五、掌握检验
- [ ] 能用自己的话解释定义
- [ ] 能举出2个跨主题应用例子
- [ ] 能说清与前置/后续概念的关系
```

---

## 4. 核心概念种子（46个，覆盖7大学科）

| 学科 | 核心概念 |
|------|---------|
| 线性代数（14个） | 向量、矩阵、行列式、特征值与特征向量、线性变换、线性组合与张成空间、基与基变换、逆矩阵与秩、列空间与零空间、点积与对偶性、叉积、克莱姆法则、线性代数应用 |
| 高等数学（7个） | 极限与连续、导数与微分、积分、微分方程、级数、多元函数微积分、拉普拉斯变换 |
| 概率论（3个） | 概率论基础、分布与期望、数理统计 |
| 自动控制（9个） | 传递函数、状态空间、根轨迹、PID控制、频率响应、稳定性分析、伯德图、奈奎斯特判据、反馈控制 |
| 神经网络（7个） | 神经网络、梯度下降、反向传播、激活函数、损失函数、卷积神经网络、PyTorch |
| 英语六级（6个） | 英语听力、英语阅读、英语写作、英语翻译、英语词汇、英语语法 |
| 跨学科（1个） | 机器视觉 |

> 概念种子可在 `scripts/concept_matcher.py` 的 `CORE_CONCEPTS` 字典中扩展。

---

## 5. 与其他 skill 的配合

| skill | 配合方式 |
|-------|---------|
| **topic-knowledge-base** | 新建主题知识库后，运行 concept-linker 更新概念层，新概念自动加入跨主题关联 |
| **video-to-knowledge** | 视频建库后，视频中的核心概念自动被 concept-linker 扫描并关联 |
| **material-to-knowledge-base** | 资料包建库后，概念层自动更新 |
| **personal-twin** | 个人镜像可读取概念层，分析用户的知识覆盖度和薄弱点 |
| **resume-builder** | 写简历时，先查概念层找到相关项目和知识点，快速定位素材 |

---

## 6. 使用场景

### 场景1：备考检索
> "考研数学里的'特征值'和'线性代数'视频里学的'特征值'有什么关联？"
→ 打开 `_概念层/concepts/特征值与特征向量.md`，看到它在3个主题的所有出现笔记，一键跳转。

### 场景2：跨主题学习
> 学"控制工程"的"状态空间"时，想回忆"矩阵"的相关知识
→ 概念页标注了前置知识 [[矩阵]]，点击跳转矩阵概念页，再跳转到具体笔记。

### 场景3：写简历/论文
> 找"机器视觉"相关的项目和知识点
→ 打开机器视觉概念页，看到它在土木跨考控制工程等主题的出现位置，快速定位素材。

### 场景4：全局知识视图
> 想知道自己的知识库覆盖了哪些领域、哪些概念还薄弱
→ 打开 `_概念图谱.md`，按学科浏览所有概念，⭐数量表示跨主题深度。

---

## 7. 脚本说明

| 脚本 | 用途 |
|------|------|
| `concept_scanner.py` | 扫描所有笔记，从文件名/tags/wikilink提取高频概念（初步扫描） |
| `concept_matcher.py` | 用46个核心概念种子全文匹配，统计跨主题出现位置（准确匹配） |
| `concept_page_builder.py` | 生成概念页（含掌握度+人工标记字段）和概念图谱（Mermaid mindmap+关系图） |
| `vault_health.py` | 知识库体检：死链/重复/孤儿/矛盾四项检测，输出体检报告 |
| `update_mastery.py` | 概念掌握度推断：结合 personal-twin 错题卡点和项目库，人工标记优先 |
| `auto_update.py` | 概念层一键更新：扫描→匹配→生成概念页→更新掌握度，支持 --incremental 增量模式 |
| `entity_builder.py` | 实体层构建：人物/书籍/工具/组织的跨主题关联页 |
| `mark_mastery.py` | 人工标记掌握度：标记/清除/列出，人工标记优先于自动推断 |

---

## 8. 红线

1. 概念层只在 `E:\obsidian\rein\_概念层\` 下创建/修改文件，**不触碰现有主题 vault**
2. 概念定义基于学科知识结构，不编造；具体内容以各主题笔记为准
3. 跨主题出现位置的 wikilink 必须指向真实存在的文件
4. 概念种子可扩展，但必须是真正有跨主题价值的核心概念
5. 更新概念层是覆盖式的，不会删除概念页（只更新内容）

---

## 9. 后续优化方向

- **Obsidian 启动页配置**：把 🏠首页.md 设为 Obsidian 默认启动页（设置→工作区→保存为默认）
- **安装社区插件**：Dataview（已用）、Templater、Calendar、Omnisearch（详见 `_templates/_Obsidian插件配置指南.md`）
- **概念层自动触发**：topic-knowledge-base / video-to-knowledge 建库完成后自动调用 auto_update.py
- **掌握度人工校准**：用户可手动修改概念页 frontmatter 的 mastery 字段，auto_update 不会覆盖人工修改
- **实体扩展**：在 entity_builder.py 的 ENTITIES 字典中新增实体，重新运行即可
- **矛盾自动解决**：用 LLM 分析矛盾标记，自动判断哪个定义更准确（需人工确认）

