研学 · 通用知识调研与系统学习(领域无关)
> v2.0.0:独立化版本。本 skill 为单一自包含 skill,工作流(N1→N6)、数据契约与工具链与 v1.3.0 保持一致。
目标与验收五维
本 skill 的产出不是"一篇科普文",而是可长期使用的学习资产,且必须支持"先看全貌、再逐级深入"的学习路径。验收五条:
- 准确:每条事实性结论给置信度 + 证据链,绝不谎称绝对真值。
- 全面:经覆盖度审计(广度 + 深度双维),显式识别并补搜信息缺口。
- 可查证:每条可点击溯源,原文落盘归档,标访问时间戳;交叉验证过程对用户可见。
- 可渐进:先 L0 全貌层建立整体概念,再按 L1 → L2 → L3 深入;标注前置依赖。
- 易学习:体系化知识地图 + 适度心理学化解读 + 可导出复习卡组。
> v1.3 关键修正:早期版本把篇幅大量投入"类比 / 口诀"等教学法字段,导致有框架无细节。
> 现教学法字段(类比 / 记忆锚)已降级为选填,事实细节(detail)成为卡片主体,
> 且 detail.body 默认展开而非折叠。
用户输入(必需 + 可选)
必需:
- 主题 / 领域:如"某技术入门""某产业现状""某类设备结构"
- 信源配置(至少其一):
- RSS 链接(wewe-rss 输出的公众号 RSS、RSSHub 路由、FreshRSS 导出)
- 官网 / 博客 URL 列表
- 搜索关键词(用于 WebSearch 补充)
可选:
- 时间范围(近 30 天 / 全部历史 / 指定区间)
- 深度(条目数量、是否抓全文)
- 受众水平(小白 / 从业者 / 专家 → 影响 L1/L2/L3 的切分粒度与措辞)
工作流(7 节点,顺序执行)
每节点产出作为下一节点输入;禁止跳步或省略核验。
N1 采集 Collect
- RSS / Atom 源优先用
references/fetch_feeds.py确定性解析(stdlib,零依赖);解析失败再回退 WebFetch。 - 官网 / URL 用 WebFetch;主题用 WebSearch 补搜(建议 2–3 轮不同措辞 / 中英文)。
- 学术源可选接入 arXiv 检索:按主题关键词检索近 N 年论文,作为
type=论文的来源并入 facts.json。 - 逐条记录:
来源名、URL、标题、发布时间、访问日期、正文或摘要。 - 全文抓取硬指标:每个主题至少 2 篇 WebFetch 全文(非搜索摘要),落盘
raw/时单篇 ≥2KB。
只有搜索摘要构成的条目,深度门禁会判为不合格。 - 禁止用模型记忆冒充"采集",所有条目必须来自真实拉取或检索结果。
- 去重:同一事件多源归并,保留全部来源链接。
N2 核验 Verify(细则见 references/verification_protocol.md)
对每条事实性结论执行:
1. 来源可信分级(.gov/.edu/一手文档 > 权威媒体 > 自媒体)。
2. 交叉佐证:该事实是否被 ≥2 个独立信源确认。
3. 一手信源锚定:优先附官方原文 / 文件链接。
4. 标注 置信度 ∈ {高, 中, 低, 存疑}。
v1.3 新增:把核验过程写进 verification 字段(让用户看得见):
- agreement:一致 / 部分一致 / 冲突 / 单源
- source_count、primary_count:信源数与一手源数
- conflicts[]:结论对立时并列双方,不得替用户裁决
- verified_at、note:核验日期与判定说明
- 每条标注"信息截至日期 + 访问日期"(时效性,防旧信息被当现状)。
- 输出中间产物
facts.json(结构见 references/facts_schema.json),逐条原子化。 - 绝不输出裸 TRUE/FALSE;存疑项必须显式标红。
N2.5 覆盖度审计 + 缺口补搜 Coverage Audit
- 按
references/coverage_checklist.md逐项打分,每个维度打两个分: breadth(广度 0/1/2):这个维度有没有覆盖depth(深度 0/1/2):0=无 / 1=有结论无数字 / 2=有数字且有来源- 只有 breadth=2 且 depth=2 才算充分。广度满分但深度不足,是早期版本"只有框架"的主要成因。
- 任一维度缺 → 定向 WebSearch 补搜 → 回 N2 核验。补搜轮次上限 2 轮。
- 仍缺则在报告显式标注"该维度信息暂缺",不硬凑。
- 打分结果写入
coverage[],供渲染器在报告头展示。
N3 汇总 Synthesize(体系化大纲 + 难度分层)
- 按
主题 / 子主题 / 对立立场聚成树状知识地图。 - 去重、合并同义、保留分歧(不同来源冲突时并列展示,不替用户裁决)。
- 为每张卡片标
level: L1 入门:只需常识即可读懂,建立直觉与轮廓,不堆术语L2 进阶:需先懂 L1,引入机制、参数、主体对比,开始出现数字L3 深入:需专业背景,涉及数据、争议、前沿、一手文档原文- 填
prerequisites(学本卡前应先看的卡片标题),形成依赖链。 - 同一主题内卡片按 L1 → L2 → L3 排列(渲染器会自动排序,但输出时就应有序)。
N3.5 深挖钻取 Drill-down(v1.3 新增,解决"只有框架"的核心环节)
对每张卡片做 5 层追问,答案写入 detail 字段。不得只停留在第一层:
| 追问 | 要求 | 落到字段 |
|---|---|---|
| What exactly | 它到底是什么?边界在哪?不是什么? | detail.summary |
| How exactly | 具体怎么运作?分几步?每步发生什么? | detail.body |
| Which numbers | 关键参数 / 数据 / 量级是多少? | detail.params / key_points |
| Who · When · Where | 谁做的?什么时候?在哪?规模多大? | detail.timeline / case |
| So what | 为什么重要?影响什么?与其他知识点什么关系? | detail.body 段尾 |
深挖产出必须是结构化的,不是一段流水账:
- summary(120–300 字,段首给结论,必含关键数字)
- key_points[](3–8 条,每条一个可独立验证的事实)
- params{} / timeline[] / table{}:参数表、时间线、对比表——能用表格就别用散文
- case:具体案例(主体 + 场景 + 数字 + 结果)
- quotes[]:原文关键句引述(可信度最高的证据形态)
- body(≥400 字完整正文)
N4 全貌设计 Landscape(v1.3 新增,产出 L0 层)
在深入细节之前,先为整个领域写一份"一页纸全貌",写入 overview:
- one_liner:一句话定义(≤60 字,给完全外行看)
- landscape(400–800 字):它是什么 / 边界在哪 / 在更大版图里的位置 / 为什么值得学 / 核心矛盾
- pillars[](3–5 条):核心主线,即知识骨架
- key_numbers[]:关键数字速览,让用户一眼看到领域量级
- learning_path.{L1,L2,L3}:每个层级该看什么、学完能回答什么问题
- diagram(可选):全景 SVG
> 没有 L0 层,用户会"掉进细节里找不到北"。这是"先了解全貌"需求的落地保障。
N4.5 可视化拆解(四图一表 · 选图路由)
> 采用多视角拆解方法:复杂事物不是靠一段长文字讲清的,
> 而是靠从不同角度各画一张小图,每张图只回答一个问题,拼起来就"看懂了"。
核心原则:按内容类型选图,而非每处都画思维导图。
| 视角 | 回答的问题 | 图类型 | 适用内容 |
|---|---|---|---|
| ① 思维导图 / 结构图 | 有什么、各管什么 | 树状分层(整体→部分) | 有"组成/分类"的对象(系统、体系、分类) |
| ② 连接关系图 | 谁连谁、数据/信号/能量怎么流 | 方框 + 箭头(标注流的内容) | 有"交互/流向"的对象(通信、数据、工艺流) |
| ③ 位置 / 结构图 | 谁在哪、怎么嵌套、相对位置 | 剖面/分层 | 有"物理/空间结构"的对象(设备、器件) |
| ④ 运转流程图 | 先后顺序、触发条件、因果链 | 步骤 + 判断分支 | 有"过程/机制/步骤"的对象(原理、工艺、流程) |
| 表:问题-手段-效果对照 | 为什么这么设计 | 三列表格 | 有"因果/解决问题"的对象(技术方案、方法) |
落地映射(四图一表对应本 skill 已有字段):
- L0 全貌层:
overview.diagram优先用 ① 思维导图/结构图 呈现领域的知识骨架(pillars 为主线);
若领域是"设备/结构"则用 ③,是"过程"则用 ④。 - 每张卡片:
diagram/dual_coding字段按该卡片的主题选图——讲机制的卡用 ④ 流程图,
讲组成的卡用 ① 结构图,讲交互的卡用 ② 关系图,讲因果的卡用对照表(落detail.table)。 - 同一卡片可多图:复杂卡片可配 2–3 张不同视角的小图(如一张结构图 + 一张流程图),
但每张图只回答一个问题,不要硬塞成一张信息过载的大图。
制图规范(强制):所有内联 SVG 必须遵循 references/drawing-rules.md——
锚点取边中点、只走水平/垂直+直角转折、禁斜线禁弧线、T 型汇聚/倒 T 分发、中轴对齐、出图自检。
该规范也约束 render_report.py 自动生成的 concept_map()(已改为直角折线)。
N5 心理学化解读 Psychologize(细则见 references/psychology_techniques.md)
v1.3 定位调整:为理解服务,不挤占事实篇幅。
必填:
- plain_language(一句话人话版)
选填(有灵感就写,没灵感不要硬凑):
- analogy 类比 —— 标注"(启发式,非事实)"
- memory_anchor 记忆锚 / 口诀 —— 标注"(启发式,非事实)"
- recall_question 主动回忆提问(成本低收益高,建议填)
- dual_coding / diagram 双编码配图(内联 SVG)
数据锁存红线(DATA_LOCK,最高优先级):
- 只能重述 N2 已核验的事实;禁止新增任何未经核验的数字、事实、结论。
- 注意方向:这条红线不是让你少写数字,而是让每个数字都能溯源。
想要细节就去补搜、去 WebFetch 全文,而不是删掉数字。
- 类比 / 记忆锚 / 口诀属于"启发式",须标注"启发式,非事实"。
- 配图 SVG 里的文字/数字同样受约束。
N6 生成报告 + 落盘 Report
- 用
references/validate_contract.py校验 JSON:
- 结构不合规 → 回退重生成(≤3 轮)
- 深度门禁告警(摘要过短 / 要点过少 / 正文过薄 / 无数字)→ 回 N3.5 补挖,
不要靠删数字消除告警 - 用
references/render_report.py确定性渲染单文件交互 HTML:
- L0 全貌区置顶 → 体系目录 → 各主题(卡片按 L1→L2→L3 排序)→ 来源汇总 → 页脚署名
- 每张卡:层级徽章 + 置信度徽章 + 验证徽章 + 结构化 detail + 证据链
- 页脚署名不得删除:报告末尾会输出「本报告由 研学 v2.0.0 生成 · 作者:专利老王 · 微信公众号:老王聊专利」;不要手工编辑产物去抹掉它 - 落盘到用户工作区:
-reports/<领域>-<日期>.html(报告视图)
-knowledge/<领域>/facts.json(事实库,可累积复用)
-knowledge/<领域>/raw/(原文归档,含访问时间戳)
-knowledge/<领域>/terms.md(术语表)
-knowledge/<领域>/cards.csv(复习卡组,用references/export_cards.py) - 调用 present_files 预览 HTML。
数据契约(单一事实源)
- 最终报告:
references/schema.json(LLM 按它输出、validator 按它校验) - N2 中间产物:
references/facts_schema.json
卡片核心字段:
title / level / prerequisites / confidence / plain_language / detail{} / verification{} / sources[]
(另有 analogy / memory_anchor / recall_question / dual_coding / diagram 为选填)
detail{} : summary / key_points[] / params{} / timeline[] / table{} / case / quotes[] / body
verification{} : agreement / source_count / primary_count / conflicts[] / verified_at / note
sources[] : name / url / type / access_date / is_primary / excerpt
overview{} : one_liner / landscape / pillars[] / key_numbers[] / learning_path{} / diagram
coverage[] : dimension / breadth / depth / note
确定性工具链(references/ 内,均 stdlib 零依赖)
fetch_feeds.py— RSS/Atom 确定性解析(N1)validate_contract.py— 契约校验 + 深度门禁 + 数据锁存检查(N6 前置门禁)render_report.py— JSON → HTML 确定性渲染(L0 全貌 + 分层 + 验证徽章 + 结构化 detail + 内联 SVG 图)export_cards.py— JSON → cards.csv 复习卡组导出(可导入 Anki)drawing-rules.md— SVG 制图规范(锚点/直角折线/禁弧线/T 型/中轴对齐,N4.5 可视化拆解必读)
深度红线(v1.3 核心,违反即"只有框架")
- 不许只写结论不写数字 —— 每个 L2/L3 条目的
detail必须含量化事实。 - 不许把细节塞进折叠区 ——
detail.body默认展开。 - 不许用类比替代事实 —— 类比是调味,不是主菜;
analogy不得长于detail.summary。 - 不许靠删数字通过校验 —— 深度门禁告警的正解是补挖 / 补搜,不是删。
- 不许跳过 L0 全貌层 —— 用户要先见森林,再见树木。
"定期出报告"说明
本 Skill 定义如何产出报告;何时产出由自动化(automation)周期调用本 Skill 实现。
- 用 automation_update 建 recurring 任务,prompt 写明主题 + 信源 + 受众,rrule 设定周期。
- 报告落盘到固定 knowledge/<领域>/ 目录,便于历史累积与跨期 diff。
局限与人工复核
- 核验是置信度辅助判断,非绝对真值;医疗 / 法律 / 投资等高利害结论必须人工复核。
- 信源路由(RSSHub / FreshRSS / 爬虫)会随目标站改版失效;学术源与一手文档需维护。
- 深度与成本正相关:全文抓取 + 深挖会显著增加 token 与耗时,适合"系统学习"而非实时问答。
关于作者与许可
- 作者:专利老王
- 微信公众号:老王聊专利
- 许可:免费使用、自由修改、自由传播(网盘 / 博客 / 公众号 / 视频 / 课程资料 / 内部知识库均可),唯一硬性条件是保留署名;只有商业使用须事先获得作者书面授权。完整条款与白名单场景见随包
LICENSE.md。 - 产出署名:本 skill 生成的报告会在页脚署名「本报告由 研学 v2.0.0 生成 · 作者:专利老王 · 微信公众号:老王聊专利」,由
render_report.py的SHOW_CREDIT控制(默认开启,对外发布成果时请勿关闭)。 - 二次开发:欢迎修改、改名、裁剪后再分发;请保留上述署名,并注明"基于「研学」修改"。
> 想确认某个用途是否需要授权?判断口径:你或你的组织是否因使用本 skill 而直接收费、或直接用它交付付费成果。否 → 免费;是 → 可在微信公众号「老王聊专利」后台留言申请授权。