# AttentionList 与 TopicDocs Schema

数据库名：**AttentionList**。优先复用现有数据库；仅在搜索不到时新建。

## 新版字段

| 字段名 | Notion 类型 | 用途 |
|---|---|---|
| 标题 | Title | 本条想法的简短摘要 |
| 已完成 | Checkbox | 用户可直接勾选；新记录默认 false |
| 主题 | Text | 明确主题名；同主题精确匹配键，无明确主题时留空 |
| 工单号 | Text | 唯一稳定引用，格式 `FB-YYMMDD-NN` |
| 原始记录 | Text | 本次输入的时间与用户原话，永不被整理稿覆盖 |
| 状态 | Select | 收集箱 / 待执行 / AI执行中 / 已完成 / 已归档 |
| 合并文档 | Relation → TopicDocs | 同主题出现多条或用户要求整理时，关联可点击的主题 Page |
| AI结果 | Relation → AIResults | 一个或多个可点击的完整结果 Page |
| 创建时间 | Created time | 自动生成 |
| 更新时间 | Last edited time | 自动生成 |

Notion 数据库的每行在技术上仍是 Page，但这里只把它作为一条表格记录使用；不要在其正文保存合并稿。合并稿只保存在「合并文档」关联的 TopicDocs Page 中。

## TopicDocs

独立数据库，用于保存真正的合并文档。可以将其视图放在 AttentionList 页面下方或隐藏，日常从 AttentionList 的「合并文档」列进入。

| 字段名 | Notion 类型 | 用途 |
|---|---|---|
| 主题 | Title | 主题名，作为精确匹配键 |
| 来源记录 | Relation → AttentionList | 组成该文档的全部原始记录 |
| 创建时间 | Created time | 自动生成 |
| 更新时间 | Last edited time | 自动生成 |

- 某主题首次出现时不创建 TopicDocs Page。
- 第二条同主题记录出现时创建一个 TopicDocs Page，并关联第一条与当前记录。
- 用户明确要求整理时，即使只有一条记录，也可创建 TopicDocs Page。
- 后续同主题记录关联同一个 Page，不重复创建。
- Page 正文保存去重、重组后的整理稿。

## 数据库配置

- AttentionList 数据库页面：`<YOUR_ATTENTION_LIST_PAGE_URL>`
- AttentionList 数据源 ID：`<YOUR_ATTENTION_LIST_DATA_SOURCE_ID>`

AIResults：

- 数据库页面：`<YOUR_AI_RESULTS_PAGE_URL>`
- 数据源 ID：`<YOUR_AI_RESULTS_DATA_SOURCE_ID>`
- 字段：标题（Title）、来源工单号（Text）、来源工单（Relation → AttentionList）、创建时间（Created time）

请先填写自己的 Notion 页面和数据源 ID，再 fetch 数据源确认实时 schema；不要把这些标识提交到公开仓库。

## 兼容升级

现有库可能含旧字段：内容、类型、来源、备注、主题、主题文档、旧版文本「合并文档」及旧版文本「AI结果」。升级时：

1. 新增缺少的「原始记录」Text 字段。
2. 保留旧字段与历史数据，避免破坏；新记录不再写入旧字段。
3. 新增缺少的「已完成」Checkbox、「主题」Text 和「合并文档」Relation；历史记录的「已完成」默认 false。
4. 旧版文本「合并文档」和「合并文档链接」保留兼容，新操作不再写入；迁移时可把旧整理稿放入对应 TopicDocs Page 正文。
5. 将旧文本「AI结果」重命名为「AI结果（旧）」，新建「AI结果」Relation 指向 AIResults；保留历史文本，不批量删除。
6. 将状态选项补齐为新版五项；旧状态暂时保留兼容，但新操作只写新版状态。
7. Notion 表格视图优先显示：已完成、标题、主题、合并文档、状态、工单号、创建时间；旧字段可隐藏。

## AIResults 写入规则

- 每次执行创建一个新的结果 Page，不覆盖历史执行结果。
- Page 标题格式：「任务名｜工单号｜YYYY-MM-DD」。
- 「来源工单号」写稳定工单号；「来源工单」Relation 指回 AttentionList 原行。
- Page 正文保存完整结果、来源与必要的未完成说明；不要把长结果塞回属性列。
- 创建结果 Page 后，将其加入 AttentionList 的「AI结果」Relation，保留已有关系。

## 工单号

格式：`FB-YYMMDD-NN`。

1. 用 Asia/Shanghai 当地日期生成 `YYMMDD`。
2. 查询当天以 `FB-YYMMDD-` 开头的记录，取最大两位数字序号 + 1；没有则用 01。
3. 若无法查询，使用 `FB-YYMMDD-HHMM`，并在 AI结果注明“序号未计数，请核对”。

## 原始记录格式

```text
2026-09-12 16:40
用户原话
```

- 一条输入对应一行；保留本次原话，不把后续输入追加到已有行。
- 来源链接直接写在对应段落末尾。

## 归集规则

- 明确点名书名、片名、项目名或用户指定主题：写入「主题」，并用规范化后的主题名精确匹配。
- 只做轻量规范化：去除首尾空格；不要擅自把近义概念合并。
- 无明确主题：生成简短标题并新建行，「主题」和「合并文档」留空。
- 同主题已有记录但没有合并文档：当本次是第二条时创建 TopicDocs Page，并把全部同主题行关联过去。
- 同主题存在多个 TopicDocs Page 时不猜测；优先使用用户给出的工单号，否则请用户确认。

## 合并文档 Page

- 合并文档必须是 TopicDocs 数据库中的 Page，不是 AttentionList 行正文，也不是 AttentionList 行的子 Page。
- AttentionList 的「合并文档」Relation 是可点击入口；同主题的所有记录关联同一个 Page。
- 整理时覆盖更新正文，可使用标题、列表和表格等 Notion Markdown；始终保留属性中的「原始记录」。
- TopicDocs 的「来源记录」应包含所有参与整理的 AttentionList 行。
- 旧文本「合并文档」只读兼容；若其中有历史整理稿，首次整理时迁入 TopicDocs 正文。

## 写入注意事项

- 新建记录时，parent 使用数据源要求的 `collection://<data-source-id>` 形式。
- 标题属性以 fetch 返回的真实属性名为准；不要假设 API 键恒为 `title`。
- 捕获时新建 AttentionList 行并写属性；整理时只更新 TopicDocs Page 正文。
- 长文本若超过单个 rich-text 片段限制，拆成多个 rich-text 对象；若达到属性总限制，明确提示用户并停止追加，不静默截断。
- Notion 写入失败时先保留当前文本于对话中并报告错误；不要声称已经保存，也不要通过创建另一条错误记录来掩盖失败。
