日期: 2026-04-12 状态: 草案 v1 定位: 基于当前系统真实状态的 superpowers 架构收敛 spec
current-system-diagnosis.md 已经明确指出:当前系统的主要问题,不是模型能力不够,而是:
但诊断报告只回答了“哪里有问题”,没有回答“如何从当前系统稳态演进到新系统”。
这份 spec 补的就是中间层:
这份文档与现有文档的关系如下:
current-system-diagnosis.md
2026-04-12-story-system-pro-max-retrofit-spec.md
2026-04-12-webnovel-story-intelligence-system-spec.md
这份 spec 的定位是:
为避免这份文档与另外两份 story system spec 打架,这里明确边界:
current-system-diagnosis负责回答:
它不负责给出演进实施路径。
retrofit spec负责回答:
story_system它偏向:
理想态 spec负责回答:
它偏向:
负责回答:
换句话说:
当前系统不是“推倒重来”型问题,而是“多个半成品中枢需要收束成一个主链”型问题。
因此最优策略不是:
context_manager 增加几条预算规则而是建立:
再把 state / index / summary / memory / RAG 统统降级为合同提交后的投影层。
根据现状诊断,当前系统并不是完全无结构,而是已经存在以下可复用底座:
context_manager + context_ranker
genre_aliases.py + genre_profile_builder.py + genre-profiles.md
reference_search.py + references/csv
state_manager
state.json + SQLite 的双写同步index.db
memory writer / orchestrator / summaries
override_contracts
真正缺失的不是某一个模块,而是四个主链能力:
MASTER / VOLUME / CHAPTER 合同家族作为单一真理源这意味着演进不能按“新增一个大模块,旧链路先不管”的方式做。
必须遵守:
如果顺序反过来,系统只会多一个并行中枢,而不是更收敛。
本演进 spec 要达成 8 个目标:
本 spec 明确不做以下承诺:
context_manager、genre_*、reference_search.py整个演进过程必须持续遵守以下约束:
AI味、anti-AI、润色替换规则继续保留在 md,不进入 CSV新系统的职责必须是收束旧中枢,不是与旧中枢并列竞争。
反模式:
story_system,但 context_manager 仍单独输出另一套题材判断genre-profiles.md 仍作为同级真源参与写作输入运行时输入应拆成两层:
原则上:
章节完成后的正确顺序必须是:
state / index / summary / memory 投影而不是:
任何设定变化必须回答四个问题:
如果回答不了,就不允许把它当作合法设定演进。
本项目当前最缺的是主链,不是精度。
因此演进顺序必须是:
现状诊断中的 10 个问题,可以归并为 5 条演进工作流。
对应问题:
要解决的事:
override_contracts 从追读力债务专用,扩展为故事设定演进账本对应问题:
要解决的事:
context_manager 合同优先对应问题:
要解决的事:
对应问题:
要解决的事:
对应问题:
要解决的事:
演进后的系统分为六层:
Knowledge LayerReasoning LayerContract LayerRuntime Assembly LayerChapter Commit LayerProjection Layer用户意图 / 书籍题材诉求
↓
Reasoning Layer
↓
Story Contract Generator
↓
MASTER / VOLUME / CHAPTER / REVIEW / ANTI_PATTERNS
↓
context_manager(contract-first)
↓
规划 / 写作 / 审查
↓
CHAPTER_COMMIT
↓
Projection Writers
↓
state / index / summaries / memory / rag
未来系统的主链不应是:
reference_search -> prompt -> reviewer -> data agent -> state而应是:
knowledge -> reasoning -> contract -> runtime pack -> chapter commit -> projections故事系统的唯一真理源应为合同家族:
MASTER_SETTING.jsonVOLUME_BRIEF.jsonCHAPTER_BRIEF.jsonREVIEW_CONTRACT.jsonanti_patterns.json其中:
MASTER / VOLUME / CHAPTERanti_patterns.json 是派生视图,不反向成为真源REVIEW_CONTRACT.json 是审查用派生合同运行时拼上下文时,优先级固定为:
chapter contractvolume contractmaster contract题材与调性推理.csvgenre-profiles.mdtemplates/genres/*.md一旦合同存在:
context_managerwebnovel-planwebnovel-writewebnovel-review都不得再输出与合同冲突的全局系统判断。
章节完成后,真理链固定为:
CHAPTER_COMMITstateindexsummariesmemory也就是说:
state / index / summary / memory 不再是章节事实的并列真源CHAPTER_COMMIT 的派生投影完整合同家族定义如下:
MASTER_SETTINGVOLUME_BRIEFCHAPTER_BRIEFREVIEW_CONTRACTANTI_PATTERNSCHAPTER_COMMIT这里新增 CHAPTER_COMMIT,原因很简单:
CHAPTER_COMMIT 负责“写之后”如果没有它,系统就无法真正修复诊断里关于回写割裂、履约丢失、事件断链的问题。
MASTER_SETTING负责全书级稳定系统:
VOLUME_BRIEF负责卷级系统:
CHAPTER_BRIEF负责本章执行:
REVIEW_CONTRACT负责本次审查必须检查的事项:
ANTI_PATTERNS负责将可见层级的所有红线聚合为运行时平面视图。
CHAPTER_COMMIT负责承载本章最终提交结果:
仍采用三类字段策略:
lockedappend_onlyoverride_allowed并保留 lock_policy:
system_lockeduser_lockedstory_locked优先级固定为:
chaptervolumemaster但这不是静默覆盖,而是必须记录:
fieldbase_valueoverride_valuesource_levelreasonreason_tagapproved_by当前 override_contracts 不能废弃,而应演进为统一 override ledger 的底座。
演进后的职责:
amend-master / amend-volume 的提案最终应区分三类记录:
soft_deviationcontract_overrideamend_proposal当前系统的问题不是“写完后没保存”,而是“写完后被拆成多处异步散写”。
这会导致:
所以必须把章节完成后的提交改为:
CHAPTER_COMMIT 最小结构最小应包含:
metacontract_refsoutline_snapshotreview_resultfulfillment_resultdisambiguation_resultaccepted_eventsstate_deltasentity_deltasprojection_status标准链路应为:
CHAPTER_BRIEFREVIEW_CONTRACTCHAPTER_COMMIT 草案投影层至少分成四个 writer:
state_projection_writerindex_projection_writersummary_projection_writermemory_projection_writer未来可选:
rag_projection_writer一旦 CHAPTER_COMMIT 未通过,不允许:
stateindex也就是说:
commit accepted 才能进入事实主链当前系统已经有:
state_changesrelationship_eventstimeline_eventsworld_rulesopen_loopsreader_promises但这些都还是局部事件,没有统一事件主链。
应新增统一事件视角:
accepted_events最小事件族建议包括:
character_state_changedrelationship_changedworld_rule_revealedworld_rule_brokenpower_breakthroughartifact_obtainedpromise_createdpromise_paid_offopen_loop_createdopen_loop_closed事件不直接修改 MASTER / VOLUME / CHAPTER。
正确做法是:
CHAPTER_COMMIT.accepted_eventsamend proposal这样才能兼顾:
写前必须显式检查:
写后必须显式检查:
blocking rulesmandatory_nodes 是否履约anti_patterns 是否命中当前系统的缺口之一,是只记录“写了什么”,不校验“该写的写了没有”。
因此 CHAPTER_COMMIT 必须新增:
planned_nodescovered_nodesmissed_nodesextra_nodes最低要求:
missed_nodes 非空时,不允许静默提交成功消歧不能只在尾部回写阶段兜底。
应拆成两段:
disambiguation domain
CHAPTER_COMMIT 阶段再做提交校验只有无法通过两段机制解决时,才进入 disambiguation_pending。
reference_search.py新定位:
context_manager.py新定位:
演进顺序:
story_contract sectionchapter -> volume -> master -> old profilegenre_aliases.py / genre_profile_builder.py / genre-profiles.md新定位:
演进顺序:
题材与调性推理.csvstory_system 优先读 CSVgenre-profiles.md 退化为回退源和参考源state_manager新定位:
CHAPTER_COMMIT 的投影写入器协调层它不再承担“章节事实真源”的角色,而只负责:
state.jsonindex.db新定位:
不再承担“故事规则主源”职责。
memory writer / orchestrator / summaries新定位:
阶段要求:
CHAPTER_COMMIToverride_contracts新定位:
不能继续只服务追读力债务。
scripts/data_modules/config.py新定位:
演进约束:
DataModulesConfigstory_system 新增配置必须挂在明确命名空间下story_system 平行再造一套完全独立的配置树否则后果会非常直接:
三套配置分叉后,合同系统会在工程层面重新失真。
目标:
交付:
context_manager 的 contract 注入口genre-profiles.md 的过渡期定位override_contracts 的扩展方向目标:
交付:
题材与调性推理.csvMASTER_SETTINGCHAPTER_BRIEFanti_patterns.jsoncontext_manager 读取合同此阶段仍允许:
genre-profiles.md 回退VOLUME_BRIEF目标:
交付:
VOLUME_BRIEFREVIEW_CONTRACTcontext_manager contract-first pack此阶段的关键变化:
目标:
交付:
CHAPTER_COMMIT此阶段完成后:
目标:
交付:
目标:
退出条件:
CHAPTER_COMMIT 已成为默认提交主链genre-profiles.md 已完成高频题材迁移context_manager 不再独立生成与合同冲突的全局系统判断本项目已有权威运行时目录术语,后续 story system 必须复用,不得自造新说法。
需要先明确一件事:
因此后续所有路径说明,都应基于运行时的三层目录:
CLAUDE_PLUGIN_ROOT
skills/ agents/ scripts/ references/WORKSPACE_ROOT
.claude/.webnovel-current-project 指针解析当前书项目PROJECT_ROOT
.webnovel/state.json 的目录Story Contract 和 CHAPTER_COMMIT 都是某一本书的持久化产物,因此必须落在 PROJECT_ROOT,而不是:
CLAUDE_PLUGIN_ROOTWORKSPACE_ROOT基于当前已有真实目录,可以直接参考:
WORKSPACE_ROOT = D:\wk\xiaoshuoPROJECT_ROOT = D:\wk\xiaoshuo\凡人资本论D:\wk\xiaoshuo\.claude\.webnovel-current-project该例也说明两件事:
PROJECT_ROOT 是工作区内的某一本书目录PROJECT_ROOT 自身可以是一个独立 git 仓库(例如当前示例里就存在 .git/)建议目录如下:
WORKSPACE_ROOT/
├── .claude/
│ └── .webnovel-current-project
├── 小说A/
├── 小说B/
└── ...
PROJECT_ROOT/
├── .git/ # 可选:书项目自身可独立版本管理
├── 正文/
├── 大纲/
├── 设定集/
├── 审查报告/
├── .webnovel/
└── .story-system/
├── MASTER_SETTING.json
├── MASTER_SETTING.md
├── anti_patterns.json
├── anti_patterns.md
├── volumes/
│ ├── volume_001.json
│ └── volume_001.md
├── chapters/
│ ├── chapter_001.json
│ └── chapter_001.md
├── reviews/
│ ├── chapter_001.review.json
│ └── chapter_001.review.md
└── commits/
├── chapter_001.commit.json
└── chapter_001.commit.md
这里的 .story-system/ 必须明确为:
PROJECT_ROOT而不是:
CLAUDE_PLUGIN_ROOTWORKSPACE_ROOT如果后续 implementation plan 中出现“根目录”表述,必须显式区分:
CLAUDE_PLUGIN_ROOTWORKSPACE_ROOTPROJECT_ROOT所有运行时入口都应遵守现有统一规则:
WORKSPACE_ROOTresolve_project_root(...) 解析到真实 PROJECT_ROOT.story-system 读写都基于解析后的 PROJECT_ROOT这意味着:
--project-root,但它实际允许传入“书项目根目录或工作区根目录”PROJECT_ROOTWORKSPACE_ROOT,也应先经统一入口解析到真实书项目,再操作 .story-system/规则固定为:
*.json 是真源*.md 是只读渲染产物reviews/ 和 commits/ 也遵循相同规则统一使用零填充:
volume_001chapter_001不要把自然语言标题写进文件名。
CSV 继续承担:
MD 继续承担:
在演进完成前,不应说“CSV 已完全替代 MD”。
正确说法是:
不做“每条知识点一个测试”的重型方案。
最小验证集应覆盖:
anti_patterns 聚合正确context_manager 能正确读取合同REVIEW_CONTRACT 能正确表达 blocking rulesCHAPTER_COMMIT 能阻止未通过校验的回写不需要:
后续任何 implementation plan 都必须显式包含:
.story-system 不得成为运维盲区。
至少应接入:
最低应检查:
MASTER_SETTING.json 是否存在chapter commit 是否存在 rejected 未处理积压这份演进 spec 的最终判断可以压缩成四句话:
context_manager / genre_* / state_manager / memory / override_contracts 都应保留,但要重定位Story Contract + Chapter Commit + Override Ledger + Canonical Event Log如果后续进入开发,不建议直接从“事件总线”开工。
正确顺序应是:
CHAPTER_COMMIT否则项目会先陷入“事件建模很完整,但写作主链仍然散乱”的伪进展。
这份 spec 的直接后续产物应当是:
并且该 plan 必须显式包含: