Files
reader/docs/design/markdown-sink-design.md
T

1.7 KiB
Raw Blame History

Markdown Sink 设计

1. 目标

第一版 sink 不直接绑定外部平台,而是先落一个稳定的 Markdown sink。

原因:

  • 可审计
  • 可版本化
  • 易迁移
  • 可直接兼容 Obsidian / 通用 Markdown 知识库

2. 统一输入

Markdown sink 读取统一的 SinkInput:

  • item
  • article
  • summary
  • filter_decision
  • metadata

这样未来扩展 Notion sink、Webhook sink 时,可以继续复用同一套上游输入结构。

3. 目录结构

当前建议目录结构:

knowledge-base/
  inbox/
  review/
  archive/

具体落盘规则:

  • keep -> knowledge-base/inbox/YYYY/YYYY-MM/
  • review -> knowledge-base/review/YYYY/YYYY-MM/
  • drop -> knowledge-base/archive/YYYY/YYYY-MM/

4. 文件命名

文件名格式:

YYYY-MM-DD-title-slug.md

例如:

2026-03-21-kimi-cursor.md

5. Markdown 内容结构

输出采用:

  • YAML frontmatter
  • 摘要区
  • 要点区
  • 过滤决策区
  • 原文信息区
  • 正文摘录区

frontmatter 中保留:

  • title
  • url
  • source_id
  • item_id
  • extract_id
  • category
  • worth_keeping
  • decision
  • priority
  • topics
  • keywords
  • labels
  • published_at
  • saved_at
  • quality_flags

6. 当前落地位置

  • sink 模型:
    • src/summary_mcp/models/sink.py
  • Markdown sink:
    • src/summary_mcp/sinks/markdown.py
  • 本地运行脚本:
    • scripts/run_markdown_sink.py

7. 当前阶段结论

第一版知识库不先绑定 Notion、Lumina 或数据库,而是先让过滤后的内容稳定进入 Markdown 知识库。

只要这层格式稳定,后续可以继续扩展:

  • Obsidian Vault
  • Logseq
  • Notion
  • Webhook
  • 自定义数据库 sink