feat(skill): 新增 directive/discussion/proposal SKILL,精简 process
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,203 +1,6 @@
|
||||
---
|
||||
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 反向同步、归档),归档为流程最后一步。
|
||||
description: Use when 处理 inbox、跑 inbox 流程、处理 eureka、inbox 归档. 先按 AGENTS.md 判断讨论/提案/指令(不明则问),再选用 inbox-discussion、inbox-proposal 或 inbox-directive。
|
||||
---
|
||||
|
||||
# Inbox 处理与归档
|
||||
|
||||
## 流程概览
|
||||
|
||||
```
|
||||
📥 Inbox 文件
|
||||
↓
|
||||
是指令还是提案?(用户未标明则必须询问)
|
||||
↓
|
||||
┌──────┴──────┐
|
||||
指令 (Fix) 提案 (Idea)
|
||||
直接改 SSOT 不改 SSOT
|
||||
↓ ↓
|
||||
阶段一:分析 写入 kb/proposals/P-xxx
|
||||
↓ ↓
|
||||
阶段二:执行 填写 targets、初始影响分析
|
||||
更新/新建 bible 归档 Inbox,提示「已转为提案 P-xxx,可在 [[xxx]] 底部看到」
|
||||
与 beat → 归档
|
||||
```
|
||||
|
||||
**指令路径**(与原有流程一致):
|
||||
```
|
||||
阶段一:分析(只读,不修改任何文件)
|
||||
↓ 输出分析报告,等待人确认
|
||||
阶段二:执行(收到确认后)
|
||||
↓ 更新/新建 bible 与 beat → Beat→Bible 反向同步 → 标记 TBD → 归档 → 输出摘要
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 入口:指令 vs 提案
|
||||
|
||||
1. 完整阅读该 inbox 文件。
|
||||
2. **若用户未标明是指令还是提案**,必须先询问:
|
||||
- 「这份内容是指令(直接按此修改 SSOT)还是提案(仅写入提案库供讨论)?」
|
||||
3. **提案**:走下方「提案分支」,不修改任何 Bible/Beat 正文。
|
||||
4. **指令**:走下方「阶段一:分析」→「阶段二:执行」。
|
||||
|
||||
---
|
||||
|
||||
## 阶段一:分析(仅指令路径;不修改任何文件)
|
||||
|
||||
1. 识别其中提到的所有实体(角色、世界观、节拍)
|
||||
2. 对每个实体,判断需要执行什么操作
|
||||
3. **暂停,输出分析报告,等待人确认**
|
||||
|
||||
### 分析报告格式
|
||||
|
||||
```
|
||||
📥 Inbox 分析:{文件名}
|
||||
|
||||
**涉及实体**
|
||||
- 角色:xxx、xxx
|
||||
- 设定:xxx、xxx
|
||||
- Beat:xxx(inbox 内容直接涉及具体场景或对话时列出)
|
||||
|
||||
**建议操作**
|
||||
| 实体 | 类型 | 操作 | 具体内容 | 是否有冲突 |
|
||||
|------|------|------|---------|-----------|
|
||||
| 佩佩 | 角色 | 更新 | 年龄改为22岁,职称改为广告部画师 | ⚠️ 与现有年龄25冲突 |
|
||||
| 原型 | 设定 | 无需变更 | inbox 内容已在 bible 中覆盖 | — |
|
||||
| 新设定名 | 设定 | 新建 | 从模板新建 kb/bible/设定/xxx.md | — |
|
||||
| 佩佩-维修1 | beat | 更新 | Fiction 补充医生台词 | — |
|
||||
| 佩佩-维修4 | beat | 新建 | inbox 描述了新场景,尚无对应 beat | — |
|
||||
| 某设定 | 设定 | 废弃 | inbox 要求删掉该设定 → 改 status: deprecated,移入约定归档目录,不删除文件 | — |
|
||||
|
||||
**待人确认的判断**
|
||||
- [ ] 冲突裁决:佩佩年龄 22 vs 25,是否以本次为准?
|
||||
- [ ] 新建 beat 佩佩-维修4:Fiction 草稿是否符合预期?
|
||||
- [ ] xxx
|
||||
|
||||
**请回复以下选项:**
|
||||
- `执行全部` — 执行所有建议,冲突项记录到冲突表不自行解决
|
||||
- `逐条确认` — 逐条列出,逐条回复是/否
|
||||
- `跳过` — 不处理,直接移入 inbox/archived/,不更新任何 bible 或 beat
|
||||
- 或直接告诉我你的修改意见
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 提案分支(Inbox 被标为提案时)
|
||||
|
||||
1. **创建提案文件**:从 `template/tpl-proposal.md` 复制到 `kb/proposals/P-{序号}_{简短标题}.md`。序号取当前 `kb/proposals/` 下未占用的最小三位数(如无则 P-001)。
|
||||
2. **填写 frontmatter**:
|
||||
- `targets`:本提案针对的 Bible/Beat,用 wikilink 数组,如 `[[kb/bible/角色/佩佩]]`、`[[kb/beats/佩佩-维修1]]`(与 Dataview 关联,必填)。
|
||||
- `summary`:与「核心创意」一致的一句话。
|
||||
- `created`、`author` 等按需填写。
|
||||
3. **撰写正文**:核心创意、详细内容、**初始影响分析 (Snapshot)**(基于当前 kb 版本,列出可能受影响的 Beat/Bible 与冲突点),讨论记录可留空。
|
||||
4. **归档 Inbox**:按「阶段二」步骤 3 加 frontmatter 并移入 `inbox/archived/`;`aggregated_to` 中写上对应提案路径,如 `[kb/proposals/P-001_佩佩机器人化.md]`。
|
||||
5. **提示用户**:「已转为提案 P-xxx,你可以在 [[角色名]] / [[Beat 名]] 的页面底部看到该提案。」
|
||||
|
||||
---
|
||||
|
||||
## 阶段二:执行(仅指令路径;收到确认后)
|
||||
|
||||
### 步骤 1:更新或新建 bible 与 beat
|
||||
|
||||
**已有 bible → 更新**
|
||||
- 将新信息加入对应 SSOT 小节,用 **加粗关键词** 领起,句末标来源
|
||||
- 同步更新「叙事时间线」表格:新增剧情点、补全关联 Beat、更新状态
|
||||
- 与现有信息冲突 → 在「冲突」小节记录两版 + 来源,不自行解决
|
||||
- **来源索引**:本流程中引用的来源在步骤 3 会移入 `inbox/archived/`。补全或更新「来源索引」时,**直接使用移动后的归档路径** `[[inbox/archived/文件名]]`。此时文件尚在 inbox/ 下、链接会暂时失效是预期行为,无需担心;归档完成后链接即可用。
|
||||
|
||||
**没有 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 |
|
||||
|
||||
### 步骤 4:git commit
|
||||
|
||||
```
|
||||
git add .
|
||||
git commit -m "inbox: 处理并归档 {文件名},更新 {涉及实体}"
|
||||
```
|
||||
|
||||
### 步骤 5:输出处理摘要
|
||||
|
||||
```
|
||||
## 处理摘要 [日期]
|
||||
|
||||
### 新建
|
||||
- kb/bible/角色/xxx.md(AI 新建,来源:{inbox文件名})
|
||||
- kb/beats/xxx.md(AI 新建,来源:{inbox文件名})
|
||||
|
||||
### 更新
|
||||
- kb/bible/角色/yyy.md:补充了{具体内容}
|
||||
- kb/beats/zzz.md:Fiction 补充台词;叙事时间线状态更新为 ✅
|
||||
|
||||
### 无需变更
|
||||
- xxx:inbox 内容已在 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`
|
||||
- **不物理删除**:AI 无权删除任何文件。若 inbox 要求「删掉设定/角色/节拍 X」,执行**废弃**——将该条目的 `status` 改为 `archived` 或 `deprecated`,按 `kb/README.md` 约定移动至指定文件夹(若有),changelog 记录废弃原因;绝不使用删除文件的动作。
|
||||
处理 inbox 时:先判断是**讨论**、**提案**还是**指令**(用户未标明则询问)。讨论 → 用 **inbox-discussion**。提案 → 用 **inbox-proposal**。指令 → 用 **inbox-directive**。详见各 skill 与 **AGENTS.md**。
|
||||
|
||||
Reference in New Issue
Block a user