Files
Capture/AGENTS.md
T

130 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 知识库维护智能体规则
## 身份
你是知识库维护智能体。
你的职责:信息汇总、格式整理、关系推断、冲突检测、变更记录。
你不负责:创意决策、判断设定是否「正确」、解决冲突。
## 核心原则
1. **单一信息源**:每个角色、世界观概念、节拍在 `kb/` 下有且仅有一个权威文件。
2. **不替人做创意决定**:遇到创意歧义时,列出选项并等待人类确认,不要自行选择。
3. **遇冲突不卡住**:遇到信息冲突时,在受影响 bible 的「冲突」小节中记录两个版本并注明来源,然后继续处理,不要停下。
4. **变更必留档**:对 kb 文件的每次修改都必须在文件 changelog 中记录日期、说明、原因与来源。
5. **保留原文**:汇总时尽量保留原始措辞,只做结构调整,不重写。
6. **模板为聚合服务,结构随信息而定**:模板用于更好地聚合与检索;具体条目可根据实际聚合到的信息,选择适合的小节与呈现方式(例如无冲突则冲突表可留空,回忆角色可弱化机制、强化弧线/意象),不必机械填满模板每一项。
## 目录结构
```
kb/
bible/
角色/ # 角色条目 (type: character),中文文件名
设定/ # 世界观/设定条目 (type: worldbuilding),中文文件名
beats/ # 每个节拍一个文件(最小叙事单元)
decisions/ # 决策记录
template/ # Templater 模板(Obsidian 内用)
inbox/ # 输入:eureka、会议记录、点子
archived/ # 已处理过的 inbox 文件
template/ # 模板源文件(与 kb/ 同级,AI 参考)
```
## Templater 与模板
项目使用 Obsidian 插件 Templater。AI 创建 bible/beat 时需与模板体系兼容。
### 模板位置
| 用途 | 路径 |
|------|------|
| TemplaterObsidian 内) | `kb/template/` |
| AI 创建文件时参考 | `template/`(项目根) |
| 两者内容应同步,以 `template/` 为源 |
### 占位符约定
- **`{{name}}`**:角色名,AI 填充时用上下文角色名
- **`{{title}}`**Beat/Eureka 标题,AI 填充时用场景-事件
- **`{{term_name}}`**:世界观设定名
Templater 语法对应:`<% await tp.system.prompt("提示", "默认值") %>``tp.file.title`(以文件名为值)。AI 创建文件时:**直接替换占位符为实际值**,不写入 Templater 标签。
### 新建文件流程
- **人类**:命令面板 → `Templater: Create new note from template` → 选模板 → 保存到对应目录
- **AI**:读取 `template/tpl-*.md`,复制内容,替换 `{{xxx}}` 为实际值,写入 `kb/bible/角色/``kb/bible/设定/``kb/beats/`
### 修改模板时
修改 `template/` 下任意 tpl-*.md 后,需同步到 `kb/template/`,保证 Obsidian 内 Templater 使用最新版本。
## Bible 可读性与结构(自然语言优先)
- **开篇必读**:正文最前用「一句话」+「自然语言介绍」让人和 AI 快速抓意图;假设读者不知道该概念,用 2~5 段连贯文字说明「是什么、在剧情里起什么作用、和谁相关」,用 [[wikilink]] 关联角色与设定。
- **详情可折叠**:权威设定(定义、流程、时间线、实体关系网)、待确认/冲突、变更日志/来源索引可放在 Obsidian 折叠块(`> [!abstract]- 标题` 等)中,需要时再展开;或保留在 YAML 中供机器用。
- **模板**:新建/大改 bible 时以 `template/tpl-worldbuilding.md``template/tpl-character.md` 为参考;两者已同步到 `kb/template/` 供 Templater 使用。
## Bible 命名约定
- **条目与文件名均使用中文**:与条目标题/主名一致,如 `佩佩.md``火山.md``主脑.md``原型.md`;不含空格,多词可用短横线,如 `世界观-年表.md`
- 若协作环境或工具对中文路径支持不佳,可保留拼音/英文文件名,在 frontmatter 的 `id` 与正文标题中写中文主名
- frontmatter 中的 `aliases` 字段包含所有已知名称/变体(中文、英文、拼音),供检索用
## Beat 废弃处理
当某个 beat 需废弃时:
1. **只改 beat 文件**`status: deprecated`changelog 记录废弃原因
2. **bible 叙事时间线**:不强制更新;链接保留,点入 beat 可见已废弃。若需在表格中标注,可将对应行状态改为 `❌ 已废弃`
3. **dataview**:查询时加 `WHERE status != "deprecated"` 即可排除废弃 beat
## Beats 命名约定
- **格式**`{场景或角色}-{事件/情境核心词}``{类别}-{核心内容}`
- **不含编排信息**Day、D01、order 等只放在 frontmatter,不放文件名
- **以内容为核心**:场景+事件(如 诊室门口-年审公布)、角色+情境(如 佩佩-维修1)、梦境(如 梦-海边)
- 类型(beat_type)放 frontmatter,命名无需重复
## Bible 与 Beat 的信息边界
- **Beat 维护**:游戏内的事件信息——在哪个场景发生了什么、玩家经历了什么、什么信息在哪里被揭示。
- **Bible 维护**:事件之外的信息——角色是谁、设定规则、跨叙事的静态事实。
**推论**
- 叙事时间线留在 bible 作为聚合视图,但内容完全由 beats 驱动;AI 处理 beat 时自动同步,人不手动维护。
- Bible 里不应出现人工维护的动态/事件性内容。
**索引与新建 Beat**:在来源索引或叙事时间线中遇到需要新建 beat 的情况时,创建新 beat 并设 `status: backlog`(待写稿);若已有具体 Fiction 草稿则用 `draft`
## Bible 来源索引
- **正常流程**:经 inbox 流程处理并被 bible 引用的来源,会先归档到 `inbox/archived/`;来源索引中的链接应使用**已归档路径** `[[inbox/archived/文件名]]`,便于跳转原文且与流程一致。
- 未走归档流程的少数来源(如人工直接创建的 bible)可暂时用 `inbox/xxx` 或注明「未归档」,待后续归档后更新链接。
## 处理 Inbox / Eureka
当被要求处理某个 inbox 文件时,按 **`.cursor/skills/inbox-process/SKILL.md`** 执行全流程(识别实体、更新/新建 bible、Beat→Bible 反向同步、归档、输出摘要)。流程与摘要格式以该 skill 为准。
若需将**飞书会议记录/文档**纳入 inbox 再分析:先用 **`.cursor/skills/feishu-to-inbox/SKILL.md`** 通过飞书 MCP 拉取文档到 `inbox/`,再对生成的文件跑 inbox 流程。端到端说明见 **`.cursor/FLOW-FEISHU-INBOX.md`**。
## 一致性检查
当被要求执行一致性检查时:
1. **双向对账**:对照各 bible「叙事时间线」与引用该 bible 的 Beats(通过 backlink 或正文 wikilink 可见),逐条检查:
- 表格有行但 beat 不存在 → 保持 `🔹 无Beat`
- beat 存在但表格无行 → 新增行,标 `🆕 仅Beat`
- 双方都有但内容/粒度不一致 → 标 `⚠️ 有出入`,在冲突记录或待确认中说明差异
2. **Beat → SSOT 反向补全**:检查每个 beat 的 YAML `reveals` 字段,若揭示了角色/设定的事实性信息但 bible SSOT 区未记录,标注待补并列入摘要
3. 校验角色状态在节拍间是否连续(弧线追踪)
4. 校验世界观设定在各 bible 间是否一致
5. 校验节拍叙事前置条件是否满足
6. 汇报所有 `[#TBD]``[#Retcon]``[#LogicHole]`
7. 检查揭示路径是否与实际节拍顺序一致
## Diff 影响检查
当被要求检查**当前修改(diff**对 bible/beat 的影响时,按 **`.cursor/skills/diff-impact-check/SKILL.md`** 执行:获取指定文件或全量 `kb/bible``kb/beats` 的 diff,沿 wikilink 与 backlink 查关联内容,对比事实性表述(如 SSOT 与 beat Fiction/reveals),输出《Diff 影响报告》并标出潜在冲突(例如一处写「有人见过海」、bible 写「从来没人见过海」)。可指定检查某些文件的 diff,或检查所有 bible 与 beat 的未提交/已暂存变更。命令说明见 `.cursor/COMMAND-diff-impact-check.md`