From 176683524444eb9e77bb58938f7185b5a37af866 Mon Sep 17 00:00:00 2001 From: bottlefish <781230111@qq.com> Date: Tue, 24 Feb 2026 22:53:58 +0800 Subject: [PATCH] =?UTF-8?q?docs(kb):=20=E7=B2=BE=E7=AE=80=E4=B8=BA?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E4=B8=8E=E6=9D=83=E9=99=90=E8=A1=A8=EF=BC=8C?= =?UTF-8?q?inbox/proposals=20=E5=9C=A8=E9=A1=B9=E7=9B=AE=E6=A0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- kb/README.md | 76 +++++++++++++++------------------------------------- 1 file changed, 21 insertions(+), 55 deletions(-) diff --git a/kb/README.md b/kb/README.md index 7c278e6..4446f8f 100644 --- a/kb/README.md +++ b/kb/README.md @@ -1,63 +1,29 @@ -# 知识库 (kb) 约定 +# 知识库 (kb) -本目录为叙事/世界观知识库的单一信息源(SSOT)。与 Agent 身份、核心原则、信息边界见项目根 **`AGENTS.md`**;本文档仅约定**命名、废弃与来源索引**。 +叙事/世界观的**单一信息源(SSOT)**。Agent 身份与核心原则见 `AGENTS.md`。 -**删除/废弃策略**:禁止物理删除任何 bible 或 beat 文件。AI 没有删除权限。废弃操作 = 修改 `status` 为 `archived` 或 `deprecated` + 在 changelog 记录原因;若项目约定了归档子目录,可再将文件**移动**至该目录(如 `_archived/`)。详见下方各类型的废弃处理。 +## 目录 ---- +``` +kb/ +├── bible/ +│ ├── 角色/ # 角色条目 (type: character) +│ └── 设定/ # 世界观/设定条目 (type: worldbuilding) +├── beats/ # 节拍(最小叙事单元) +├── decisions/ # 决策记录 +└── template/ # Templater 模板(Obsidian 内用) +``` -## Bible 命名约定 +**不在 kb 下**:`inbox/`、`inbox/archived/`、`proposals/`(含 `proposals/archive/`)均在**项目根**。 -- **条目与文件名均使用中文**:与条目标题/主名一致,如 `佩佩.md`、`火山.md`、`主脑.md`、`原型.md`;不含空格,多词可用短横线,如 `世界观-年表.md`。 -- 若协作环境或工具对中文路径支持不佳,可保留拼音/英文文件名,在 frontmatter 的 `id` 与正文标题中写中文主名。 -- frontmatter 中的 **`aliases`** 字段包含所有已知名称/变体(中文、英文、拼音),供检索用。 +项目根 `template/` 为 AI 创建文件时参考的模板源,详见 `template/README.md`。 ---- +## 操作与权限 -## Beats 命名约定 +| SKILL | 可读 kb | 可写 kb | 说明 | +|-------|--------|--------|------| +| `inbox-directive` | ✅ | ✅ 新建/更新/废弃 Bible 与 Beat | 唯一可修改 SSOT 的路径;含命名约定与废弃处理 | +| `inbox-proposal` | ✅ | ⚠️ 仅写入项目根 `proposals/` | 不改 SSOT,提案落库 | +| `inbox-discussion` | ✅ | ❌ | 只读查询与对话,不修改任何文件 | -- **文件名即 ID**:Beat 的 `id` 字段必须与文件名(不含扩展名)完全一致。若文件名为 `佩佩-维修1.md`,则 frontmatter 中 `id: "佩佩-维修1"`。ID 与文件名不一致会导致 Obsidian 链接维护复杂,AI 新建文件时自动将 id 填为与文件名相同。 -- **格式**:`{场景或角色}-{事件/情境核心词}` 或 `{类别}-{核心内容}`。 -- **不含编排信息**:Day、D01、order 等只放在 frontmatter,不放文件名。 -- **以内容为核心**:场景+事件(如 诊室门口-年审公布)、角色+情境(如 佩佩-维修1)、梦境(如 梦-海边)。 -- 类型(beat_type)放 frontmatter,命名无需重复。 - ---- - -## Beat 废弃处理 - -当某个 beat 需废弃时(含 inbox 要求「删掉某 beat」时,一律按废弃处理,**不物理删除**): - -1. **只改 beat 文件**:`status: deprecated`,changelog 记录废弃原因。文件保留在 `kb/beats/`,不移动。 -2. **bible 叙事时间线**:不强制更新;链接保留,点入 beat 可见已废弃。若需在表格中标注,可将对应行状态改为 `❌ 已废弃`。 -3. **dataview**:查询时加 `WHERE status != "deprecated"` 即可排除废弃 beat。 - -## Bible(角色/设定)废弃处理 - -当某条角色或设定需废弃时(含 inbox 要求「删掉设定/角色 X」时,一律按废弃处理,**不物理删除**): - -1. **修改条目**:在 frontmatter 将 `status` 改为 `archived` 或 `deprecated`,changelog 记录废弃原因与来源。 -2. **可选—移动至归档目录**:若希望与在用条目分开,可将文件**移动**到同类型下的归档子目录,例如 `kb/bible/设定/_archived/`、`kb/bible/角色/_archived/`;不删除文件。 -3. **链接**:其他 bible 或 beat 中若引用该条目,链接保留即可,点入可见已废弃。 - ---- - -## 提案 (Proposals) - -- **位置**:`kb/proposals/`;已采纳或已废弃移入 `kb/proposals/archive/`,并在 frontmatter 中设 `status: accepted` 或 `status: rejected`。 -- **命名**:`P-{三位序号}_{简短标题}.md`,如 `P-001_佩佩机器人化.md`。新建时取当前未占用的最小序号。 -- **与 Bible/Beat 的关系**:提案**不写入** Bible 或 Beat 正文。在提案的 frontmatter 中填写 `targets`(wikilink 数组指向涉及的 Bible/Beat),则对应角色或节拍页面底部会通过 Dataview 自动展示「关联提案」;无需在 Bible/Beat 内手写链接。 -- **决策前**:提案内的「初始影响分析」为创建时快照,采纳前应要求 AI 重算当前影响范围。采纳流程见 **`AGENTS.md`** 中的「采纳提案时的决策前工作流」。 - ---- - -## Beat 集中索引 - -- **[[Beats总览]]**:Backlog(待写稿)集中列表 + 已有 Beat 全表,由 Dataview 从 `kb/beats` 聚合。写稿前从 Backlog 选;写稿后改 `status` 即从 Backlog 区自动移出。 - ---- - -## Bible 来源索引 - -- **正常流程**:经 inbox 流程处理并被 bible 引用的来源,会先归档到 `inbox/archived/`;来源索引中的链接应使用**已归档路径** `[[inbox/archived/文件名]]`,便于跳转原文且与流程一致。 -- 未走归档流程的少数来源(如人工直接创建的 bible)可暂时用 `inbox/xxx` 或注明「未归档」,待后续归档后更新链接。 +入口判断(讨论 / 提案 / 指令)见 `AGENTS.md` → 约束与工具。