关于 ingest
ingest 是用于归档单条来源并将其关联到现有 Atomic Note 或经用户确认的新模板的 Vault 工作流 Skill。它要求先讨论并获批再写入,说明性内容则留给用户撰写。
主要功能
- 01一次处理一条来源
- 02将想法与现有 Atomic Note 比对
- 03保留原始来源及出处信息
- 04添加范围明确的 Resource 反向链接
- 05在 index 与 log 中登记变更
适用场景
- 01将 Inbox 项目归档到 Vault
- 02归档外部 URL 或文件
- 03将来源关联到相关 Atomic Note
- 04创建经确认、供用户撰写的笔记模板
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kriscard/ skills --skill ingest安装后在 Claude Code 中输入/ingest确认已加载。
附带文件references/advanced-workflows.md
详细介绍
摄取
将一个原始来源归档,并将其关联到一个 Atomic Note,供用户撰写。对于同一连贯想法,复用现有笔记;只有当想法不同,才创建脚手架。保留 Karpathy LLM Wiki 的各层,不要代替用户写下他们的理解。
一般分流使用 process-inbox,可复用的对话知识使用 create-note,会话回顾使用 save-session。
1. 确定并阅读一个来源
先阅读 ../vault/SKILL.md 和当前的 AGENTS.md。使用用户提供的文件或 URL。否则,列出由架构定义的原始 Inbox,并请用户选择一项。阅读完整来源;必要时直接获取 URL 内容。记录该原始来源是否已存在于知识库中,或是否需要从外部 URL 或文件归档。
除非用户明确要求逐项重复处理,否则不要批量处理整个 Inbox。
完成条件:已确定一个来源、其类型和出处,以及其原始来源归档状态,并已阅读其内容。
2. 写入前先讨论
先搜索根目录中的 index.md,查找有关联的 Wiki 页面。目录信息不明确,或相关内容可能只出现在页面正文中时,使用 qmd。阅读可能相关的页面,不要仅根据搜索摘要进行推断。
根据范围而非标题,将来源中的想法与可能相关的 Atomic Notes 进行比较。原子性取决于想法,而非来源:
- **同一连贯想法:**建议复用现有笔记,只添加新的 Resource 反向链接。来源、作者、框架或示例不同,都不足以成为创建重复笔记的理由。
- **不同的可复用想法或问题:**建议创建新的脚手架,并将其链接到 Resource。
- **边界不明确:**展示最接近的现有笔记,并询问这个想法是否属于该笔记。
展示:
- 两到三个重要想法,仅供讨论;
- 最接近的现有 Atomic Note,以及说明它与该想法相同或不同的理由;
- 值得注意的矛盾或不确定之处;
- 原始来源的目标位置、建议使用的现有或新建 Atomic Note 目标、反向链接,以及索引或日志的变更。
等待用户确认来源目标位置和 Atomic Note 目标。必须进行讨论,但除非用户明确要求另行写入,否则讨论内容只保留在对话中。
完成条件:用户已批准原始来源的目标位置,以及现有 Atomic Note 或新脚手架的标题。
3. 准备原始来源
在批准的写入集中包含一项原始来源操作:
- **Inbox 来源:**将其原样移动到架构定义的不可变来源目录。
- **外部 URL 或文件:**在架构定义的不可变目录中创建原始来源文件。保留获取到的原始内容或文字记录、规范 URL、标题、作者或出版方(若已知)、获取日期和来源类型。若原始内容不可用,应标明不可用,不要用摘要替代。
- **已归档来源:**保持不变并确认其路径。
归档后,将来源视为不可变。如果归档失败,保留原件,并在创建 Atomic Note 之前停止。
完成条件:一个原始来源已有获批的目标位置和准确的反向链接标题。
4. 准备 Atomic Note 目标
使用用户批准的目标:
- **现有笔记:**保留所有现有内容,并提出一项范围明确的更改:在相关笔记部分添加一个指向已归档
03 - Resources/*笔记的普通 wikilink。如果该确切链接已存在,则保持笔记不变。不要为同一个想法创建另一篇 Atomic Note。 - **新笔记:**读取当前的 Atomic Note 模板,并确认目标位置不存在该笔记。使用模板创建一份由用户撰写的空白框架。只填写标题和日期字段,其余提示词、别名和标签保持不变,并在模板的相关笔记部分添加一个指向已归档 Resource 笔记的普通 wikilink。
由用户撰写说明、示例、联系、问题、标签和别名。Atomic Note 不得包含新的摘要、主张、标题、评论、关系说明、Agent 所有权元数据或由 Agent 撰写的文本。不要创建单独的 Agent 所有综合页面,也不要在 ingest 期间扩充笔记正文。
完成标准:现有笔记中有一个获批的 Resource 反向链接,或新建的空白框架仅在已填写字段和该反向链接上与当前模板不同。
5. 预览并安全写入
修改知识库之前,先展示完整的写入清单:原始来源操作、确切且范围明确的 Atomic Note 更改、任何必需的目录条目,以及摄取日志条目。获得批准后:
- 归档并验证原始来源;
- 通过
vault安全写入流程创建新的空白框架,或在获批的现有笔记中添加反向链接,并考虑自动插入模板的情况; - 重新读取 Atomic Note,并验证该反向链接是唯一由摄取操作添加的内容;
- 在根目录
index.md的来源部分下登记 Resource; - 对于新建的空白框架,将其登记在 指向人工笔记的反向链接 下,绝不要登记在 概念笔记 下;保留现有笔记当前的目录位置,并避免重复条目;
- 在根目录
log.md中追加一条摄取操作记录,并验证登记结果; - 运行
obsidian open path="<vault-relative Atomic Note path>",让获批的 Atomic Note 成为当前活动笔记,供用户立即撰写。
切勿将生成的 Markdown 插入 shell 命令。除获批的反向链接外,保留人工维护的页面、已归档且不可变的来源,以及现有的 Knowledge 页面。打开笔记是最后一步。如果 Obsidian 或其 CLI 不可用,则保留已完成的摄取,并报告用户应打开的确切笔记路径。
完成标准:已验证的不可变来源、复用的笔记或仅基于模板创建的空白框架、目录条目和日志条目均已存在,并且 Atomic Note 已在 Obsidian 中打开;所有部分失败均已明确说明。
参考资料
| 优先级 | 何时加载 | 参考资料 |
|---|---|---|
| 1 — 高 | 创建相互关联的页面,或使用块引用和别名时 | references/advanced-workflows.md |