# Course Knowledge Extraction

> 从访谈转录、课程文件和 materials.jsonl 中提取带证据位置的观点、方法、步骤、案例、数据、边界与讲师原话，生成 knowledge-cards.jsonl。Use when the user says 知识萃取、提取课程知识卡、整理专家经验、把访谈变成可用素材，或 Course Producer 进入 knowledge_extraction 阶段。

- Skill: `ivor-ncut/course-knowledge-extraction` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add ivor-ncut/course-knowledge-extraction`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ivor-ncut/course-knowledge-extraction/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Ivor-NCUT (https://skillmd.com/u/ivor-ncut)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ivor-ncut/course-knowledge-extraction

---


# 课程知识萃取

只生成证据化知识卡，不设计模块顺序，不写完整课程正文。

开始前读取 `materials.jsonl`、定位、访谈记录，以及 `知识库/方法论/知识萃取.md` 和 `知识库/模板/知识卡模板.json`。

## 执行流程

1. 按材料记录读取 `course_material`，跳过执行指令和会议闲聊；不可读项沿用 blocker。
2. 书籍材料按 `processing_mode` 限定证据边界：
   - `notes` 可按实际覆盖章节提取全部知识卡类型；
   - `summary` 只支持相关性、主题概览和待补章节，不生成假装覆盖全书的 `data` 或 `verbatim`；
   - `quotes` 只把带版本与页码/章节位置的短引文转成 `verbatim`，不扩写未读取上下文；
   - `study` 中的章节笔记可回源取证，自测问题和模型答案不作为来源事实。
3. 优先读取 `authority_status: confirmed` 的当前材料；`candidate` 与 `conflict` 只用于并列比较，不能静默覆盖。若材料规模很大，先用覆盖不同来源和内容类型的小样本验证卡片边界、字段与去重规则，再分批扩展；不要在结构未稳定时直接全量抽取。
4. 以最小完整含义为单位提取知识卡，类型只能是 `viewpoint`、`method`、`step`、`case`、`data`、`boundary`、`verbatim`、`claim_to_verify`。
5. 每张卡保留 `source_id` 与可回到原文的 `evidence_locator`：页码、时间戳、标题路径或 block id。不要只写文件名。
6. 区分原话与改写：`verbatim` 必须逐字且注明 speaker；其他卡用 `summary`，不要把润色后的句子冒充原话。受版权保护书籍只保留完成教学证据所需的短引文，不连续复制章节。
7. 事实、数字和背书缺少可核证来源时转为 `claim_to_verify`；讲师观点可以以其原话为证据，但不能证明外部事实。
8. 为方法卡补齐适用场景、输入、步骤、输出、完成标准和失败边界。原材料没有的字段标为 `unknown`，不补造。
9. 合并语义重复卡时保留全部证据；互相冲突的卡不得合并，设置同一 `conflict_group`。
10. 为每张卡补充少量、可检索的 `concepts`；为需要组合使用的卡记录 `relations`，只表达可证实的 `supports`、`explains`、`contradicts` 或 `depends_on`，并写明 `target_card_id`。没有证据时不猜关系。
11. 输出 `.course-producer/artifacts/knowledge-cards.jsonl`，逐行校验 JSON、唯一 id、来源和定位符。
12. 校验通过后运行 `node skills/course-knowledge-extraction/scripts/course-knowledge-graph.mjs --root <课程项目目录>`，生成 `.course-producer/artifacts/knowledge-graph/graph.json` 与 `manifest.json`。这是从知识卡确定性生成的导航副本，不直接上传或重解析原始转写。

## 完成检查

- 观点、方法、步骤、案例、数据、边界和高价值原话均已覆盖或在缺口中说明。
- 所有卡都能从 `source_id + evidence_locator` 回到原始证据。
- 书籍知识卡没有超出登记的 `processing_mode + coverage`；摘要、自测问题和模型答案没有冒充原文证据。
- 无来源的事实主张没有混入 data 卡。
- 方法卡没有把未知步骤补成常识答案。
- 冲突、重复和待验证状态可见。
- `knowledge-graph/manifest.json` 的输入指纹对应当前知识卡；图节点仍保留 `card_id + source_id + evidence_locator`。
- 大规模材料先经过代表性样本验证，卡片边界与关系规则稳定后才分批扩展。

若本机有 Graphify，可用 `graphify query "<问题>" --graph .course-producer/artifacts/knowledge-graph/graph.json --budget 1200` 做范围检索；Graphify 缺失时直接检索 JSONL，不阻塞课程生产。查询结果只是导航候选，写课前仍须回到知识卡和原始证据。

完成后把知识卡和知识图导航交给 `course-outline-design`。

