返回上页
10SPATIAL READ MODEL / PROJECTION

ARC VELLUM DOCUMENT / 10

把作品事实编译成一个可观察宇宙

项目文件适合保存与审计,前端需要稳定身份、关系、状态和可用动作。Narrative Projection 在两者之间建立只读读模型,使所有界面共享同一份作品解释。

ArcVellum 叙事星仪
仓库内真实产品界面 / RELEASE EVIDENCE

一部长篇作品的事实分散在 Canon、人物文件、场景 YAML、候选正文、审查报告、读者账本、字数预算和任务事件中。前端若直接读取这些文件并自行解释,很容易形成第二套业务逻辑:星仪说场景完成,阅读器仍看不到正文,决策面板又保留已消费选择。

Narrative Projection 将正式项目状态编译为版本化只读模型。后端负责解释事实,前端负责选择怎样看见它。

投影的输入

投影只读取经过内核定义的项目状态:

  • 项目、卷、章、场景层级;
  • 人物、地点、组织与世界资产;
  • 分支候选和正式选择;
  • 正文候选、审查、晋升和交付状态;
  • Reader Question、Promise/Payoff 与连续性关系;
  • 当前任务、阻断、人类决策和 Agent 会话摘要;
  • 字数、节奏、健康与完成度指标。

候选与正式事实在投影中拥有不同 lifecycle,视觉层无需猜测某个文件是否已经晋升。

节点、关系与稳定身份

每个投影节点包含稳定 id、类型、层级、标题、摘要、生命周期、来源、状态、统计和可用动作。关系包含 source、target、relation type、方向、强度、证据和所属章节。

典型节点包括:

类型 代表内容
work 整部作品与总体完成度
chapter 章节义务、字数、节奏与主脉位置
scene 场景功能、状态、正文与当前任务
person 主要人物及其章节参与关系
branch 推演候选和正式选择
review 审查结果、问题和证据
promise 承诺、伏笔、问题与兑现状态

稳定身份让相机、窗口和用户选择在增量更新后继续指向同一对象。空间位置可以改变,节点身份不会随渲染重建而漂移。

Projection Revision

投影带 revision 和 schema version。项目状态发生变化时,服务生成新 revision,并通过 SSE 发送完整快照或增量 patch。

formal project event
-> projection builder
-> normalized nodes and edges
-> revision diff
-> SSE patch
-> client store
-> spatial renderer and panels

客户端按 revision 顺序应用 patch。断线、丢包或版本不兼容时重新拉取快照,避免在旧图上继续拼接新事件。

只读边界

投影描述“当前是什么”,也可以携带 typed action descriptor 描述“允许请求什么”。它不直接执行写入。

例如场景节点可能声明:

{
"action": "open_current_task",
"target": "scene_0004",
"risk": "low",
"requires_confirmation": false
}

前端点击后把 descriptor 交给应用命令或 human-choice endpoint。节点发亮、拖动或聚焦不会自行改变项目文件。

聚合与语义缩放

长篇项目可能拥有数百场景和数千关系。投影为不同尺度提供聚合语义:

  • 远景以章节锚点和章节重心表达主脉;
  • 中景显示章节内部场景簇、主要人物和高价值关系;
  • 近景显示分支、审查、承诺与场景细节;
  • 聚焦章节时保留全书轮廓,高亮本章内部关系;
  • 聚焦人物时保留全景,突出跨章节参与轨迹。

关系在远景可以聚合到章节重心,不需要删除。用户拉近后恢复具体 source 和 target。

章节簇与全书连续性

章节视图和场景视图都展示全书。差别在于节点粒度。每个章节拥有一个锚点,章节内场景围绕锚点形成局部簇;章节锚点沿时间与节奏主曲线排列。

底部章节目录始终对应全书。点击目录时,相机移动到该章节在当前粒度下的区域:章节模式聚焦章节锚点,场景模式聚焦场景簇。所有章节仍存在于同一星图中。

人物与关系

人物节点可以保持在章节主脉两侧,通过参与、冲突、承诺和影响关系连接场景。投影应区分:

  • 人物参与场景;
  • 人物状态由场景改变;
  • 人物与承诺、证据或决策相关;
  • 人物在多个章节形成的时间轨迹。

关系线带类型和证据,视觉层可以按焦点、风险与密度选择透明度。已弱化的关系仍可通过图例或筛选恢复。

节奏和时间坐标

章节位置可由时间线控制横向距离,由宏观节奏和张力影响纵向起伏、间距或曲线曲率。这样主曲线既保持阅读顺序,也呈现作品呼吸。

投影提供时间位置、节奏角色、张力和字数信息;前端布局算法把这些值映射为空间,不从几何形状反推文学事实。

Projection Builder 的可靠性

Builder 需要处理缺失、重复和部分完成:

  • 一个章节有三个场景时,三个场景都必须投影;
  • 每个场景的分支、审查和问题关系独立汇总;
  • 临时草稿不会被标成正式正文;
  • 已消费决策从 pending 集合移除;
  • 新角色以候选或正式 lifecycle 出现;
  • 非法路径和乱码只在诊断层暴露,不进入读者界面。

投影测试应覆盖稳定 id、边端点、全书场景计数、章节聚合、增量 patch 和重复事件幂等性。

规模策略

规模 主要策略
100 场景以内 完整节点与主要关系常驻
300 场景级 章节簇、标签去重、关系聚合与视口裁剪
1000 场景级 分层索引、按焦点加载、边束与增量几何

节点不应因摄像机距离突然消失。语义缩放可以改变标签、细节和光效,核心章节与当前任务保持可见。远景关系使用聚合,近景恢复细节。

多界面共享

同一 Projection 支持:

  • 星仪的空间布局;
  • 正文阅读器的章节与正式稿目录;
  • 项目档案的资产状态;
  • 决策面板的 pending choices;
  • Agent 进程面板的当前任务关联;
  • 交付面板的 readiness;
  • 顾问的只读项目快照。

共享读模型减少了界面间不一致,也让前端重构保持在表现层。业务规则变化时,先修改 Engine 与 Projection 合同,再迁移消费方。

NEXT DOCUMENT叙事星仪如何成为空间操作系统