Files
Capture/.cursor/skills/inbox-process/SKILL.md
T

162 lines
6.4 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.
---
name: inbox-process
description: Use when processing inbox files, archiving eureka notes, updating bible from new information, running inbox workflow. 处理 inbox、处理 eureka、挨个跑 inbox 流程、处理并归档 inbox. 执行「处理 Inbox / Eureka」全流程(识别实体、更新/新建 bible 与 beat、Beat→Bible 反向同步、归档),归档为流程最后一步。
---
# Inbox 处理与归档
## 流程概览
```
阶段一:分析(只读,不修改任何文件)
↓ 输出分析报告,等待人确认
阶段二:执行(收到确认后)
↓ 更新/新建 bible 与 beat → Beat→Bible 反向同步 → 标记 TBD → 归档 → 输出摘要
```
---
## 阶段一:分析(不修改任何文件)
1. 完整阅读该 inbox 文件
2. 识别其中提到的所有实体(角色、世界观、节拍)
3. 对每个实体,判断需要执行什么操作
4. **暂停,输出分析报告,等待人确认**
### 分析报告格式
```
📥 Inbox 分析:{文件名}
**涉及实体**
- 角色:xxx、xxx
- 设定:xxx、xxx
- Beatxxx(inbox 内容直接涉及具体场景或对话时列出)
**建议操作**
| 实体 | 类型 | 操作 | 具体内容 | 是否有冲突 |
|------|------|------|---------|-----------|
| 佩佩 | 角色 | 更新 | 年龄改为22岁,职称改为广告部画师 | ⚠️ 与现有年龄25冲突 |
| 原型 | 设定 | 无需变更 | inbox 内容已在 bible 中覆盖 | — |
| 新设定名 | 设定 | 新建 | 从模板新建 kb/bible/设定/xxx.md | — |
| 佩佩-维修1 | beat | 更新 | Fiction 补充医生台词 | — |
| 佩佩-维修4 | beat | 新建 | inbox 描述了新场景,尚无对应 beat | — |
**待人确认的判断**
- [ ] 冲突裁决:佩佩年龄 22 vs 25,是否以本次为准?
- [ ] 新建 beat 佩佩-维修4Fiction 草稿是否符合预期?
- [ ] xxx
**请回复以下选项:**
- `执行全部` — 执行所有建议,冲突项记录到冲突表不自行解决
- `逐条确认` — 逐条列出,逐条回复是/否
- `跳过` — 不处理,直接移入 inbox/archived/,不更新任何 bible 或 beat
- 或直接告诉我你的修改意见
```
---
## 阶段二:执行(收到确认后)
### 步骤 1:更新或新建 bible 与 beat
**已有 bible → 更新**
- 将新信息加入对应 SSOT 小节,用 **加粗关键词** 领起,句末标来源
- 同步更新「叙事时间线」表格:新增剧情点、补全关联 Beat、更新状态
- 与现有信息冲突 → 在「冲突」小节记录两版 + 来源,不自行解决
- **来源索引**:本流程中引用的来源在步骤 4 会归档;补全或更新「来源索引」时,链接使用**已归档路径** `[[inbox/archived/文件名]]`(同一次处理中在归档完成后补全)
**没有 bible → 新建**
- 角色:从 `template/tpl-character.md` 复制到 `kb/bible/角色/{名称}.md`
- 设定:从 `template/tpl-worldbuilding.md` 复制到 `kb/bible/设定/{名称}.md`
- 替换所有 `{{name}}``{{term_name}}` 占位符,不要写 Templater 标签
- 在 frontmatter 加 `created_by: ai`
**已有 beat → 更新**
- 若涉及 Fiction 内容:更新正文,在变更日志注明来源
- 若涉及 reveals:按步骤 2 的反向同步逻辑处理
- 若涉及 status 变更:更新 frontmatter
**没有 beat → 新建**
-`template/tpl-beat.md` 复制到 `kb/beats/{id}.md`
- 替换占位符,填写 frontmatter 中能确定的字段
- **status**:若有具体 Fiction 草稿(至少一句话)→ `draft`;若仅因索引/叙事时间线需要而新建、尚无具体内容 → `backlog`
- Fiction:draft 时必须有至少一句话的草稿;backlog 时可为占位句(如「待写」),不能只有 YAML
- 在 frontmatter 加 `created_by: ai`
- **新建后必须回到对应 bible 的叙事时间线加一行**:draft 标 `🚧 草稿`backlog 标 `🔹 无Beat``🚧 待写`
### 步骤 2:标记不确定处
不确定的信息标记 `[#TBD: 说明]`,不要凭猜测写入 SSOT 或 Fiction。
### 步骤 3:归档 inbox 文件
确认主要内容已归纳到对应 bible 或 beat 后,在文件最顶部加归档 frontmatter,再移动文件:
```yaml
---
archived: true
archived_date: YYYY-MM-DD
aggregated_to: [佩佩, 原型, kb/beats/佩佩-维修1.md]
note: 可选;仅在不完整时写「内容已聚合,但XX部分未处理」
---
```
- `aggregated_to`(必填):已聚合到的 bible/beat 条目名或相对路径
- `note`(可选):仅当部分内容未处理时填写
| 情况 | 动作 |
|------|------|
| 内容已归纳到位 | 移入 `inbox/archived/` |
| 明显未落地 | **留在 inbox**,不归档 |
| 不确定是否完整处理 | `note` 注明未处理部分后移入 archived |
### 步骤 4git commit
```
git add .
git commit -m "inbox: 处理并归档 {文件名},更新 {涉及实体}"
```
### 步骤 5:输出处理摘要
```
## 处理摘要 [日期]
### 新建
- kb/bible/角色/xxx.mdAI 新建,来源:{inbox文件名})
- kb/beats/xxx.mdAI 新建,来源:{inbox文件名})
### 更新
- kb/bible/角色/yyy.md:补充了{具体内容}
- kb/beats/zzz.mdFiction 补充台词;叙事时间线状态更新为 ✅
### 无需变更
- xxxinbox 内容已在 bible 中覆盖,无新增信息
### 发现的冲突
- [冲突主题]:版本A(来源)vs 版本B(来源),已记录到冲突表,待人裁决
### 已归档
- inbox/{文件名} → inbox/archived/{文件名}aggregated_to: [xxx, yyy]
### 需人类决定
- [ ] 问题1
- [ ] 问题2
```
---
## 信息边界(Bible vs Beat
- **Beat**:游戏内事件信息(场景、发生什么、玩家经历、信息在哪里揭示);叙事时间线由 beat 驱动,AI 同步,人不手动维护事件性内容。
- **Bible**:事件之外的信息(角色是谁、设定规则、跨叙事静态事实);不人工维护动态/事件性内容。索引或时间线遇到需新建 beat 时即建 beat,标 `backlog`
## 约束(任何情况下均适用)
- **不自行解决冲突**:记录两版 + 来源,等人裁决
- **不做创意判断**:只做信息整理,不评价设定对错
- **不确定不写入 SSOT 或 Fiction**:标 `[#TBD]` 而非猜测
- **每次变更必须写 changelog**:日期、内容、来源三列必填
- **阶段一不修改任何文件**:收到确认前只分析不执行
- **AI 新建的文件必须标记**bible 和 beat 均在 frontmatter 加 `created_by: ai`