diff --git a/kb/beats/火山-维修1.md b/kb/beats/火山-维修1.md index 4bca05a..05504c3 100644 --- a/kb/beats/火山-维修1.md +++ b/kb/beats/火山-维修1.md @@ -6,6 +6,7 @@ day: D02 order_in_day: 2 status: draft dev_status: prototype +fiction_source: "aibis-dream/Assets/Resources/Yarn/Test_Huoshan/" emotional_tone: 释放/振作 summary: 火山表达模块崩溃,堆积很多没说出口的话。效率审查司拦住导致紧张。帮助校准情绪处理器,让他自信起来。 player_feels: 「吓我一跳…还以为要一辈子这么说话」;放松、振作 @@ -17,7 +18,7 @@ reveals: - 【火山】玩家得知爽约因被效率审查司拦住;销售模块滤波篡改、RAM堆积;治好结巴后表现优异自信 - 【效率审查司】玩家得知拦住火山;试点英理组改进效率 created: 2026-02-23 -updated: 2026-02-23 +updated: 2026-02-25 tags: - beat --- @@ -30,15 +31,24 @@ tags: ## Fiction -*不确定处用标记:`[#TBD: 说明]` `[#LogicHole: 问题]` `[#CharacterCheck: 角色名]`* +> 叙事信源已迁移至 Yarn:`aibis-dream/Assets/Resources/Yarn/Test_Huoshan/` +> 以下为叙事骨架,完整对话与分支见 Yarn。 -火山来诊室,避谈爽约,说需改进表达模块。说推销词时表达模块崩溃——堆积很多语句。告诉爽约原因:被效率审查司拦住,紧张下崩溃。被要求参加销售挑战,须尽快调整。医生帮其调整表达模块,提升性能。 +**Stage1 诊室开场**:火山满嘴笑话,发热异常,进入诊室。 +**Stage2 后脑检查**:检查表达/滤波器/逻辑/情绪模块,发现波形对不上——逻辑能锁定,情绪找不到。 +**Stage3 滤波器深入**:步进查看滤波过程,发现异常 modify 把悲伤波形篡改为幽默;追溯到一次旧治疗记录;尝试调节 modify 强度失败。 +**Stage4 表达模块 RAM**:打开 RAM 发现大量未处理 log,报错堆积导致表达模块闭锁。 +**Stage5 诊室对话**:理解全貌后与火山谈话,达成共识——需要释放积压的真话。 +**Stage6 后脑释放**:插线表达模块,释放 RAM,处理积压 log(粒子语言小游戏:从「我很害怕」到「我不想再继续逃了」递进)。 +**Stage7-8 诊室结束**:火山说出真话,选择如何使用 modify,恢复自信。 --- ## 变更日志 -| 日期 | 变更内容 | 决策理由 | -|------|---------|---------| -| 2026-02-23 | 初建 | 火山bible、火山维修文档 | -| 2026-02-23 | 重构:player_knows→reveals,删叙事状态/Production | 模板统一 | +| 日期 | 变更内容 | 决策理由 | 来源 | +|------|---------|---------|------| +| 2026-02-23 | 初建 | 火山bible、火山维修文档 | | +| 2026-02-23 | 重构:player_knows→reveals,删叙事状态/Production | 模板统一 | | +| 2026-02-25 | fiction_source 迁移至 Yarn;Fiction 改为骨架摘要 | Yarn (Test_Huoshan) 已是落实版本,Fiction 区不再做详细 SSOT | [[inbox/archived/火山新方案整理]] | +| 2026-02-25 | 讨论与决议归档 | 关键认识、Beat 职责重定义等对话存档于 [[kb/decisions/2026-02-25-Beat职责重定义与叙事信源迁移]] | 用户要求存档并补全 changelog | diff --git a/kb/decisions/2026-02-25-Beat职责重定义与叙事信源迁移.md b/kb/decisions/2026-02-25-Beat职责重定义与叙事信源迁移.md new file mode 100644 index 0000000..1d99d95 --- /dev/null +++ b/kb/decisions/2026-02-25-Beat职责重定义与叙事信源迁移.md @@ -0,0 +1,43 @@ +--- +date: 2026-02-25 +status: 决议 +来源: 用户与 Agent 讨论(设计文档与 beat 的 SSOT、Yarn 落实后的 Fiction 失真) +--- + +# Beat 职责重定义与叙事信源迁移 + +## 关键认识(讨论摘要) + +- **Yarn 才是叙事的 ground truth**:一旦 beat 进入 prototype 或更后阶段,yarn 就是这个 beat 的实际叙事——玩家玩到的就是它。在 beat 里再维护一份 Fiction 副本 = 双源,违反 SSOT,且 Fiction 注定失真(没人会两边同步维护)。 +- **设计文档的归属**:服务于某 beat 的工程文档(功能需求、设计优化、Yarn command 说明等)跟 Yarn 放一起是合理的;早期设计梗概进 inbox 归档即可,不必搬进 kb 做第二份权威。 + +## 建议:重定义 Beat 文件职责 + +Beat 文件**不要**和 yarn 争「谁写具体叙事」,而应做 **yarn 做不到的事**: + +| Beat 负责(yarn 做不到的) | Yarn / 工程文档负责(beat 不重复) | +|---------------------------|-----------------------------------| +| 设计意图:为什么存在这个 beat、想让玩家感受什么 | 具体对话、分支、流程 | +| reveals:本 beat 对角色/世界观揭示了什么 | 具体怎么揭示 | +| 情绪弧线(一两句) | 情绪的具体实现 | +| 状态追踪:dev_status、yarn 路径、关联角色/设定 | 波形/粒子等工程细节 | +| 决策记录(变更日志) | 功能需求文档、设计优化文档 | + +**Fiction 区**:当信源在 yarn 时,只保留**叙事骨架**(几句话概括流程)+ **指向 yarn 的引用**;不在此维护与 yarn 重复的详细内容。 + +## 决议:SSOT 以 beat 为入口、信源随阶段迁移 + +- 叙事 SSOT 随阶段迁移:**short-fiction → flow → full-fiction → yarn**。Beat 文件始终是入口,用 `fiction_source` 指向**当前阶段的唯一信源**;Fiction 区做简单总结(骨架)或即信源本身(当 `fiction_source: self` 时)。 +- 落地:`template/tpl-beat.md` 增加 `fiction_source` 字段;`template/README.md` 增加「Beat 叙事信源迁移」约定;示范 `kb/beats/火山-维修1.md` 改为指向 Yarn 的形态。 + +--- + +## 变更日志 + +| 日期 | 变更内容 | 决策理由 / 来源 | +|------|---------|-----------------| +| 2026-02-25 | 新增本决策记录,归档「关键认识」「重定义 beat 职责」讨论及决议 | 用户要求将对话存档并补全 changelog | +| 2026-02-25 | `template/tpl-beat.md`:增加 `fiction_source` 字段;Fiction 区增加信源说明折叠块 | 落实叙事信源迁移约定 | +| 2026-02-25 | `kb/template/tpl-beat.md`:与 template 源同步 | 修改模板后需同步至 kb/template | +| 2026-02-25 | `template/README.md`:增加「Beat 叙事信源迁移(fiction_source)」一节 | 文档化四阶段迁移与 Fiction 区写法 | +| 2026-02-25 | `kb/beats/火山-维修1.md`:`fiction_source` 指向 Test_Huoshan;Fiction 改为 Stage 骨架摘要;变更日志补来源列与本次迁移记录 | 示范 yarn 阶段 beat 形态 | diff --git a/kb/template/tpl-beat.md b/kb/template/tpl-beat.md index 5cb2c84..e603a1b 100644 --- a/kb/template/tpl-beat.md +++ b/kb/template/tpl-beat.md @@ -6,10 +6,11 @@ day: "" # 留空则进入 outline 的 Backlog order_in_day: 0 status: draft # draft | backlog | review | locked (backlog=需存在但尚未落稿) dev_status: fiction # fiction | playable | function | prototype | close +fiction_source: self # 叙事信源位置。self = 本文 Fiction 区即 SSOT;指向外部时填路径(如 Yarn 文件夹路径或 flow 文档链接) emotional_tone: "" # 情绪基调,例:"压抑/解脱" "荒诞/温暖" summary: "" # 一句话概述 player_feels: "" # 本 Beat 情绪落点 -characters: [] # 出场角色(与 kb/bible/角色 挂接) +characters: [] # 出场角色,用内联数组与 kb/bible/角色 挂接(例:[路斯, 佩佩],勿用多行列表,否则 Dataview 可能解析为链接导致角色页查不到) terms: [] # 涉及设定(与 kb/bible/设定 挂接) reveals: [] # 本 Beat 对各实体的揭示,每项格式:【实体名】玩家得知...;例见佩佩-维修1 created: "" @@ -25,6 +26,11 @@ tags: [beat] ## Fiction +> [!info]- 信源说明 +> `fiction_source: self` → 本区是叙事 SSOT,直接在下方写作。 +> `fiction_source: 外部路径` → 叙事 SSOT 已迁移,下方只保留**叙事骨架**(几句话概括流程),完整内容见 fiction_source 指向处。 +> 阶段迁移路线:short-fiction → flow → full-fiction → yarn,详见 `template/README.md`。 + *不确定处用标记:`[#TBD: 说明]` `[#LogicHole: 问题]` `[#CharacterCheck: 角色名]`* {开始写作} @@ -47,7 +53,7 @@ tags: [beat] ```dataview TABLE author as "发起人", created as "日期", summary as "一句话" -FROM "proposals" +FROM "kb/proposals" WHERE contains(targets, this.file.link) AND status = "open" SORT created DESC ``` diff --git a/template/README.md b/template/README.md index eb27ce8..d4a9cb7 100644 --- a/template/README.md +++ b/template/README.md @@ -44,9 +44,37 @@ Templater 语法对应:`<% await tp.system.prompt("提示", "默认值") %>` --- +## Beat 叙事信源迁移(fiction_source) + +Beat 的叙事 SSOT 不是永远写在 Fiction 区——它随开发阶段迁移。`fiction_source` 字段标记当前信源位置,Fiction 区的详略随之变化。 + +| 阶段 | fiction_source | Fiction 区写什么 | 典型 dev_status | +|------|---------------|-----------------|----------------| +| **short-fiction** | `self` | 几段简要叙事,即 SSOT 本体 | fiction | +| **flow** | `self` 或外部路径 | 流程/步骤/机制描述;若独立成文档则指向它 | prototype | +| **full-fiction** | `self` | 完整剧本级 fiction,即 SSOT 本体 | fiction | +| **yarn** | Yarn 文件夹路径 | **叙事骨架**(几句话概括流程),完整内容见 Yarn | playable / function / close | + +**规则**: +- `fiction_source: self`(默认):Fiction 区就是叙事 SSOT,直接在里面写。 +- `fiction_source: 外部路径`:叙事 SSOT 已迁移到外部,Fiction 区只保留骨架摘要 + 指向外部的链接。不要在 Fiction 区维护与外部重复的详细内容。 +- **Beat 始终维护 Yarn 做不到的东西**:summary、reveals、emotional_tone、player_feels、characters、terms、变更日志。这些元数据无论信源在哪个阶段都由 Beat 独家负责。 +- 工程文档(功能需求、设计优化、Yarn command 说明等)跟 Yarn 放一起,不搬进 kb。 +- 信源迁移时在变更日志中记录。 + +--- + ## Bible 可读性与结构(自然语言优先) - **开篇必读**:正文最前用「一句话」+「自然语言介绍」让人和 AI 快速抓意图;假设读者不知道该概念,用 2~5 段连贯文字说明「是什么、在剧情里起什么作用、和谁相关」,用 `[[wikilink]]` 关联角色与设定。 - **自然语言介绍与 SSOT 同步**:每当 SSOT 发生重大变更(如核心矛盾、身份、生死状态变化)时,必须检查并重写「自然语言介绍」,避免介绍过时。 - **详情可折叠**:权威设定(定义、流程、时间线、实体关系网)、待确认/冲突、变更日志/来源索引可放在 Obsidian 折叠块(`> [!abstract]- 标题` 等)中,需要时再展开;或保留在 YAML 中供机器用。 - **模板参考**:新建/大改 bible 时以 `template/tpl-worldbuilding.md`、`template/tpl-character.md` 为参考;新建提案时以 `template/tpl-proposal.md` 为参考。上述模板已同步到 `kb/template/` 供 Templater 使用。 + +--- + +## 变更日志 + +| 日期 | 变更内容 | 决策理由 / 来源 | +|------|---------|-----------------| +| 2026-02-25 | 新增「Beat 叙事信源迁移(fiction_source)」一节 | Beat 职责重定义:叙事 SSOT 随阶段迁移,详见 [[kb/decisions/2026-02-25-Beat职责重定义与叙事信源迁移]] | diff --git a/template/tpl-beat.md b/template/tpl-beat.md index 4f74d22..e603a1b 100644 --- a/template/tpl-beat.md +++ b/template/tpl-beat.md @@ -6,6 +6,7 @@ day: "" # 留空则进入 outline 的 Backlog order_in_day: 0 status: draft # draft | backlog | review | locked (backlog=需存在但尚未落稿) dev_status: fiction # fiction | playable | function | prototype | close +fiction_source: self # 叙事信源位置。self = 本文 Fiction 区即 SSOT;指向外部时填路径(如 Yarn 文件夹路径或 flow 文档链接) emotional_tone: "" # 情绪基调,例:"压抑/解脱" "荒诞/温暖" summary: "" # 一句话概述 player_feels: "" # 本 Beat 情绪落点 @@ -25,6 +26,11 @@ tags: [beat] ## Fiction +> [!info]- 信源说明 +> `fiction_source: self` → 本区是叙事 SSOT,直接在下方写作。 +> `fiction_source: 外部路径` → 叙事 SSOT 已迁移,下方只保留**叙事骨架**(几句话概括流程),完整内容见 fiction_source 指向处。 +> 阶段迁移路线:short-fiction → flow → full-fiction → yarn,详见 `template/README.md`。 + *不确定处用标记:`[#TBD: 说明]` `[#LogicHole: 问题]` `[#CharacterCheck: 角色名]`* {开始写作}