这不是合成演示数据——下面的对象、历史、约束全部来自真实在跑的连载案例包 novels/月落渡口.origin,含 2026-08-05 至 2026-09-01 之间几个 AI 后端实际提交、经过门禁复核的真实章节事务。三个面板全部在你的浏览器里现算,不上传任何东西,也没有后端。
history 里 seq 1–10(第 2–10 章)是案例初建时从外部世界规格夹具批量导入的基线,标 kind:imported,没有经过事务门禁;seq 11–19(第 11–15 章)才是真正由 hermes 各后端提交、经过门禁复核的 kind:observed 事务——下面时间轴用颜色区分这两类,不把"夹具说的"和"机器审过的"混为一谈。
拖动滑块,逐条重放 19 条历史事件,看指定对象的字段如何一步步被 fold() 折出当前值——追加类字段(如"知道了什么")按集合去重追加,其余字段整体替换,与后端 compiler/commit-compiler.mjs 的语义一致。
下面两笔事务取自案例包自带的示例脚本(novels/demo-scripts/),页面按文件里 text 字段写的说明呈现,不按文件名猜——文件名容易读反。判定逻辑:把 state_changes 折进当前 canon 状态,再跑全部 6 条约束,任何一条不满足就整笔事务判违规。
案例包里 6 个 hook:* 对象记录着伏笔的埋设章、计划回收章与当前状态;其中两条(hook:shen-yan-suspicion、hook:a-zhi-witness)被硬约束直接钉死"不得回收"——回收即等于剧透,门禁会拒绝对应事务。这份看板本身不参与门禁计算,只是如实读出 graph/objects.jsonl 里 hook 类对象的当前记录。
node website/zh/demo-story/verify.mjs 交叉核对本页计算结果。