# Markdown Sink 设计 ## 1. 目标 第一版 sink 不直接绑定外部平台,而是先落一个稳定的 `Markdown sink`。 原因: - 可审计 - 可版本化 - 易迁移 - 可直接兼容 Obsidian / 通用 Markdown 知识库 ## 2. 统一输入 Markdown sink 读取统一的 `SinkInput`: - `item` - `article` - `summary` - `filter_decision` - `metadata` 这样未来扩展 Notion sink、Webhook sink 时,可以继续复用同一套上游输入结构。 ## 3. 目录结构 当前建议目录结构: ```text 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. 文件命名 文件名格式: ```text YYYY-MM-DD-title-slug.md ``` 例如: ```text 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