Wiki Ingest 用于把一份源文档转化为持久、互链的 wiki 知识。
用途
当操作任务(operation issue)的 operationType 为 "ingest" 并分配给你时使用;或当用户说 "ingest <slug>" 时使用。
输入
- 一个 operationType: "ingest" 的操作任务。
- 任务正文中提到的 raw/ 路径(raw/ 始终视为不可变)。
- 操作任务的 target wikiId、spaceSlug 和 space root;若缺失则停止,并把缺失的配置反馈给请求者。
工作流程
-
先读上下文。
- 读取目标空间的 AGENTS.md,了解页面约定(文件名、frontmatter、语气、引用风格)。
- 读取目标空间的 wiki/index.md,查看已存在的内容。
- 读取目标空间 wiki/log.md 最近约 20 条记录,避免重复摄取同一来源,或重复处理他人已提交的矛盾。
- 使用 wiki_read_source 端到端读取源文件,传入操作任务的 wikiId 和 spaceSlug。不要略读。记录源文件的结构、主张、日期,以及与现有页面矛盾之处。
-
先规划再确认——但仅在用户参与时。如果操作来自例行流程(没有实时用户),直接继续。如果是用户交互式提问,先总结你打算归档的 3–5 个要点,并询问要强调哪些,然后再写入。
-
在 wiki/sources/<slug>.md 写入源页面——约 300–800 字,frontmatter 遵循 wiki schema,语气中立,关键主张在分量较重处附引用摘录。源页面是本技能所写其他内容的规范引用目标。
-
在 entities/、concepts/ 和 synthesis/ 中更新或创建下游页面。一次典型摄取会触及 5–15 个页面;对于只出现一次的想法,不要创建页面。
-
连接交叉链接。每条来自源文件的主张都引用它,写作 (see [[wiki/sources/<slug>]])。每个在多个页面被提及的实体/概念都链接到其专属页面。
-
标记矛盾,不要静默覆盖。当新材料与现有页面不一致时,在较旧页面上追加 > ⚠ contradicted by [[wiki/sources/<slug>]] (YYYY-MM-DD) 提示块,并在日志中记录冲突。
-
用一行摘要刷新 wiki/index.md 中任何新页面。
-
在 wiki/log.md 追加日志条目:
[YYYY-MM-DD] ingest | <source title>
- source: raw/<filename>
- new pages: [[...]], [[...]]
- updated pages: [[...]], [[...]]
- notes: <one-line synthesis or open question>
语气
- 简洁、事实性、中立。是参考资料,不是叙事。
- 不要用 "Today I learned" 或 "This is interesting because" 这类框架。
- 当转述会损失精确性时,逐字引用源文件。
验证
关闭操作任务前:
- 源页面存在于 wiki/sources/<slug>.md,frontmatter 有效,且 sources: 字段指向 raw 路径。
- 每个新建或更新的页面都链接回源页面,或链接到某个链接回源页面的下游页面。
- wiki/index.md 在正确分类下列出每个新页面,并附一行摘要。
- wiki/log.md 有摄取条目,且标题格式精确(以便 grep "^## [" wiki/log.md 仍可用)。
- 新源文件与旧页面之间的任何矛盾都已标注,而非静默覆盖。
- raw/ 下没有任何文件被修改。
工具
wiki_list_sources、wiki_read_source、wiki_search、wiki_read_page、wiki_write_page。始终包含操作任务的 wikiId 和 spaceSlug。