章节生产曾经把章节合同、正文生成、AI 检测、修文、轻校验、角色动态、状态快照、角色资源、伏笔账本等能力串进同一条热路径。能力本身有价值,但全部同步执行会导致用户等待变长、LLM 调用重复、修复循环和账本重复同步。
长篇小说主链路的目标是持续写完整本书。默认路径必须先产出可读正文,再在正文达到稳定接收结果后等待一次统一章节资产 delta 抽取;高成本的全量伏笔对账仍按风险、周期或 strict 模式条件触发。
章节生产采用双通道:
轻量预检 -> 整章正文生成 -> 接收闸门 -> 可选局部修文
|
v
时间线终态提交 -> 异步资产回灌通道
正文热路径只负责尽快生成、判断、保存和局部修复章节。章节稳定后由 artifact_delta 通道一次性回灌摘要、硬事实、状态快照、角色资源、关系动态、信息边界和伏笔 delta;全量伏笔校准保留为条件性后台对账。
自动导演确认新书方向后,正文前同步等待的资产限定为:精简故事基础、开篇世界切片、核心角色、3~5 章路线和第 1 章执行合同。完整世界、非开篇角色资料、心智快照、远期卷规划和第 2 章以后的完整合同都不是首章前置条件。
首章正文稳定保存后,才允许触发角色等延迟增强。正文生成、审校、修复、Fact Ledger 提交和下一章执行前 JIT 的优先级始终高于增强任务;增强失败只形成资料待补齐状态。路线窗口可以提前补齐,但正式执行合同只能在目标章进入上下文组装时确认一次。禁止后台预取与正式执行共同生成同一份正式合同。
-
高优先级硬约束:控制入口可以不同,但正文生成与正文修复的业务执行链必须唯一;批量执行、自动导演、手动单章生成、手动单章修复不得各自维护独立实现。
-
章节生产链的正文工作版本和双状态字段只能由
ChapterLifecycleService落库。writer、repair、pipeline adapter、接收闸门和资产同步不得直接更新Chapter.content、generationState或chapterStatus;规划创建、用户显式编辑、版本恢复和下游重置按各自模块边界处理。 -
章节唯一执行链定义如下:
-
控制入口统一经
novelProductionOrchestrator。- 手动单章生成、批量执行与自动导演的章节生产统一落到
ChapterExecutionStageRunner。 - 手动单章修复与书级重规划统一落到
quality_repairstage;其中会改正文的修复入口必须委托给ChapterRuntimeCoordinator。
- 手动单章生成、批量执行与自动导演的章节生产统一落到
-
正文 writer、接收闸门、patch repair、heavy repair、保存正文、资产同步、复审和状态推进必须复用同一套 runtime 规则,不允许 route、旧 service 或导演分支各自再维护第二套正文执行实现。
-
生产阶段接收一次“创建正文流、创建修复流或启动流水线”的请求时,只能记录执行交接,不得把交接误投影为章节完成。流的稳定正文版本在
onDone经过统一运行时、时间线和资产边界后才产生;流水线的完成、暂停和恢复必须读取持久GenerationJob与章节运行结果。 -
阶段交接记录必须携带目标章节或流水线任务、稳定正文版本是否已经存在、来源页恢复入口和自动处理额度的所有者。它是控制层与执行层之间的轻量事实,不能由外层导演把它再解释成独立质量流程;正文与修复的质量闭环仍由统一章节运行时拥有。
-
NovelGenerationService.createChapterStream、NovelService.createRepairStream、startPipelineJob / resumePipelineJob只是不同控制入口;它们的业务执行面必须继续汇入同一 coordinator,而不是按入口复制 writer 或修文逻辑。 -
默认 writer 继续整章一次性生成,不把 sceneCards、章节合同或分场景多轮写作重新接入正文热路径。
-
writer 只为生成可读正文服务,必须显式关闭不需要的推理模式,并使用与章节目标长度相称的输出上限;续写沿用同一边界。验收、局部修文与
artifact_delta都是结构化子任务,必须各自携带更小的独立输出上限,结构校验重试也继承该上限。输入上下文预算不能代替输出费用保护。 -
writer 仍然整章一次性生成,不按场景多轮拼接正文;但
sceneCards顶层保存的ReaderExperienceContract会进入默认正文、验收和修复上下文,场景卡本身继续作为规划、诊断和局部修复辅助资产。 -
正文生成前只做最低可写性检查:章节存在、人物可用、上下文包可组装、任务目标可解释。
-
生成后用一次结构化接收闸门判断是否可继续、是否需要局部修文、是否需要人工确认。
-
接收闸门负责输出结构化事实、问题证据、缺失义务和修复可行性;流水线是否继续、暂停或结束,必须由任务启动时冻结的问题策略决定。AI 返回的
continuePolicy只能作为兼容期诊断信号,不能越过用户策略直接改变全书任务状态。 -
每个新建章节流水线任务都必须在
GenerationJob.payload中保存issueGovernanceVersion + issuePolicySnapshot。自动导演优先冻结工作流任务策略,手动流水线冻结小说当前生效策略;恢复和重试必须继续使用该快照,运行中修改全局或小说策略不能改变已启动任务。 -
问题动作必须保持终态语义:
pause_for_manual保存为pendingManualRecovery并等待用户恢复,fail_task结束任务且不得伪装成可恢复暂停,continue_with_warning只记录质量债,auto_retry只有在预算和安全重试入口都存在时才允许执行。 -
接收闸门通过后、构建运行包前,会对最终正文执行一次确定性正文自然度/退化检测。该检测只做本地文本规则检查,覆盖 AI 自述、占位符、工程词泄漏、截断、复读、破折号/省略号、否定翻转句、碎句和长段落等风险;它不调用 LLM,也不改变正文。
-
自动修文需要比较原稿与候选稿时,两次接收闸门只能生成运行时评估,不能提前覆盖持久审计报告或 open conflicts。候选选定后,只有最终保留稿的接收结果可以一次性持久化;回退原稿时,后续 Timeline、事实和资产也必须使用原稿对应的评估。
-
候选风险比较必须使用运行包中稳定的审计
id/code与义务种类,不得把模型生成的 evidence 文本当作问题身份。evidence 是面向修复的说明,措辞变化不能单独构成新增风险。 -
正文自然度/退化检测输出统一进入
mode_fit审计报告,issue code 使用prose_*前缀。high/critical视为本章阻塞审计问题并复用现有 patch repair / heavy repair 链路;medium/low只作为提示和后续局部优化依据,不触发全章重写。 -
prose_*问题默认属于本章局部质量问题。自动修复耗尽后,如果正文仍可读,应登记defer_and_continue质量债并继续剩余章节;不得仅因为单章正文自然度问题写入replanAlertDetails、PIPELINE_REPLAN_REQUIRED或全局自动导演重规划。 -
正文接收裁决只等待唯一的
acceptancegate。Timeline 不属于 writer required context,也不参与“正文是否可接收”的质量判断;接收服务不得再维护并行的 timeline gate、timeline cache 或伪造通过结果。接收结论确定后,唯一的ChapterTimelineFinalizationService必须为当前 content hash 写入stable或degradedcheckpoint,才能释放章节状态。未启用 Timeline 时不得生成“缺少 timeline context”的正文质量告警,而应提交最小降级锚点。 -
acceptance门禁按同章、同正文 content hash 和有效验收输入指纹复用成功结果。指纹涵盖验收资产版本、实际渲染的上下文与槽位/模板覆盖,以及解析后的模型配置;仅正文不变不足以证明结果可复用。外围运行包时间戳不参与身份。旧版缺少完整指纹的缓存作为 miss,不清理用户数据。 -
指纹无法确认时跳过缓存。临时
acceptance_gate_unavailable不进入内存或持久成功缓存;抛异常后释放在途请求,使后续调用可重试。模型运行期间配置发生变化时,不发布旧身份缓存。当前在途请求合并只覆盖同一服务实例,不能作为跨 Worker 排他保证。 -
门禁缓存只能保存可复用的成功结果。
acceptance_gate_unavailable等临时系统失败不得写成长期成功缓存;这类结果应保留为当前运行风险,允许后续重试。 -
任何会调用 LLM 的后置抽取或资产回灌,都必须在调用模型前抢占持久化 checkpoint,并把状态标记为
running。如果同章、同正文 content hash、同 artifactType 和 syncMode 已有running或succeededcheckpoint,后续入口必须跳过本次 LLM 调用;失败时把running标记为failed,允许后续重试。仅依赖服务实例内存锁不能满足任务重启、并发后台入口或上一章兜底补跑场景。 -
章节资产同步必须返回可判别结果:
completed表示当前正文版本的必需产物已完成,pending表示仍在运行或排队,degraded表示已记录明确降级且正文可以继续,failed表示无法安全完成当前边界。结果必须携带 content hash 与已完成产物;只有completed可以写入进程内成功缓存,不能把无异常返回、排队成功或已有running检查点当作完成。 -
generationState=approved/reviewed和章节完成投影只能在最终保留稿的 Timeline 与必需资产同步返回completed或明确degraded后发布。pending / failed必须保留在可重入边界,旧的 approved 状态不能成为跳过当前正文版本收尾的依据。autoReview=false只跳过质量审校,不能跳过连续性提交,也不能伪造审校通过记录。 -
同正文版本的并发资产同步必须共享“抽取、连续性边界持久化、成功缓存”这一整个结果,而不能只共享抽取。连续性边界写入失败时,所有等待者都必须收到相同的
failed结果,且不得留下进程内 completed 缓存。 -
导演完成判定、完成比例、完成准则与流水线跳过策略必须使用同一个当前版本闭合定义:资产连续性边界、状态提交和可审阅/已批准事实缺一不可。历史
approved、completed或质量债终态没有匹配边界时,恢复入口应保留现有正文并补齐收尾,不能重写正文,也不能静默跳过。 -
artifact_delta的检查点分为“版本化抽取结果”和“消费者应用结果”两层。抽取完成后必须先保存可解析的结构化输出;摘要/事实、状态、资源、伏笔、角色动态、知识边界、思维与对话影响分别领取自己的短事务检查点。恢复只能跳过当前正文版本已成功的消费者,不能因某个消费者失败而再次调用抽取模型。 -
消费者的最终写入点必须再次确认章节正文仍是本次输入版本。正文在抽取或应用期间被用户修改时,旧结果不得覆盖摘要、事实、时间线或任一连续性资产;同步以
failed留下可恢复边界。基础摘要、事实和角色时间线等非 delta 写入也遵守这一规则。 -
版本校验必须使用持久化正文的原始内容;摘要或提示组装可以归一化空白,但不得把归一化结果再用于章节版本 fence,否则多段正文会被误判为用户已修改。
-
消费者重试必须具备来源级幂等性:使用稳定唯一键、来源章节覆盖或已提交提案去重。检查点尚未来得及写成成功时发生重试,也不能重复追加同一章节的事实、思维快照或资源变更。
-
严格伏笔对账是独立的完成义务。即使当前正文的增量抽取已完成,只要策略或风险要求全量对账,恢复仍必须领取并完成该对账检查点;不能让外层“delta 已完成”状态遮蔽它。
-
artifact_delta是章节后置统一抽取的主所有者。ChapterArtifactDeltaService的一次低温结构化调用负责产出summary、concreteFacts、stateDeltas、characterResourceDeltas、payoffDeltas、relationDynamics、factionUpdates、characterCandidates、characterKnowledgeStates和syncPlan。 -
ChapterContentFinalizationService在章节无需修复且正文稳定后等待artifact_delta完成,再允许后续章节组装读取新事实、状态、资源、伏笔和角色动态。手动修复完成、自动产线最终保留稿也必须通过同一条 awaited artifact sync;不得再额外同步调用NovelChapterSummaryService作为定稿主链路的一部分。 -
NovelChapterSummaryService只保留给手动重新生成摘要或 UI 入口。CharacterDynamicsMutationService.syncChapterDraftDynamics只作为artifact_delta未执行或失败时的手动运维兜底;chapter:drafted -> character.chapterDraftSync自动 side-effect 链路已退役,不应重新接入常规章节事件,否则只会在 awaited artifact delta 后入队空跑。 -
Timeline 服务不直接修改正文,也不决定正文是否可接收。它负责在最终正文版本确定后提交时间锚点、事件、钩子和幂等检查点;稳定抽取失败时提交最小降级结果,使可用正文仍能继续全书生产。
-
当前章的钩子承接由
ReaderExperienceContract.inheritedHookResponsibilities负责;已发生事实由 Novel Fact Ledger 负责;长期伏笔窗口由 Payoff Ledger 负责。 -
ChapterTimelineFinalizationService只允许由ChapterContentFinalizationService调用。手动生成、批量执行、自动导演和手动修复都必须通过这个统一终态入口,不得各自补写 Timeline,也不得在 route、director 或旧 service 中直接调用。 -
writer prompt 必须包含原始
chapter.taskSheet、reader_experience和上一章实际正文尾段。任务单负责执行职责,读者体验合同负责本章回报、主动性、转折、净变化和钩子责任,上一章尾段负责约束开场承接;三者不能被旧摘要挤掉。 -
续写模式下,writer prompt 必须包含
continuation_constraintsrequired context。该块只提炼前作承接约束,例如来源、角色当前状态、终局摘要、关键事实和未完线索;它不能携带大段原文,也不能替代结构规划阶段的参考注入。 -
续写小说绑定已成功的拆书分析时,章节续写上下文优先消费结构化小节,尤其是
character_system、timeline和plot_structure。只有没有可用拆书分析或分析读取失败时,才退回站内小说 / 知识库原文的有限摘要切片。 -
参考创作新书的拆书内容只服务候选方向和规划阶段,不进入
continuation_constraints或章节事实上下文。章节写作只能消费由规划链生成的新书世界、角色和剧情事实,并通过绑定的写法资产继承表达技法;不得把参考原作的专名、人物关系或具体事件当作新书正史。 -
规划期参考注入必须内部兜底。
buildReferenceForStage读取小说绑定、拆书分析或知识库内容失败时,只记录 warning 并返回空参考文本,不能让开书、规划、卷章拆分或角色规划调用方因为参考资料异常而中断主链路。 -
heavy repair 不能传空 RAG/连续性上下文。修复上下文至少要压缩注入最近章节摘要、上一章尾段、关键 open conflicts、角色硬事实和资源事实,避免修复后引入新的连续性矛盾。
-
角色硬事实属于生成前必需约束。writer 必须收到
character_hard_factsrequired context,用于约束角色身份、阵营、立场、境界/战力、当前位置、可出场状态和禁止误写项。 -
participant_subset只提供参与角色的软性简介和当前行为提示,不能替代character_hard_facts。在 token 压力下可以压缩软信息,但不能裁掉角色硬事实。 -
character_hard_facts进入 writer 前会按章节参与者、当前高风险角色和动态导向做子集筛选,避免把整本角色硬事实全量塞进正文上下文。 -
角色信息边界属于
artifact_delta的连续性资产。若本章形成明显信息差,应记录主要角色在章节结束时确认知晓和仍不知道的关键事实,避免后续章节让角色提前知道未见证、未被告知或被刻意隐瞒的信息。 -
角色信息边界属于章节后置抽取的连续性资产。若本章形成明显信息差,应记录主要角色在章节结束时确认知晓和仍不知道的关键事实,避免后续章节让角色提前知道未见证、未被告知或被刻意隐瞒的信息。
-
角色阵营、身份、境界错误应优先排查角色库和
character_hard_facts上下文,而不是只归因于时间线或质量审计。 -
审计和修复仍然负责生成后检测角色冲突,但它们是后置保险,不应作为正文生成时的主要角色事实来源。
-
章节正文写完后,后置门禁会记录统一 trace:章节、阶段、阻断性、内容 hash、时长和 prompt asset key,用于区分 writer 本身耗时与审校耗时。
-
章节生成前的“准备”和“上下文装配”是两个不同边界:准备步骤可以补齐 autopilot 路线、章节执行合同和章节计划;上下文装配只能读取已准备产物并组合写作、审阅或修复上下文。审阅、修复、预览或其他只读入口不得因为读取上下文而触发规划模型或持久化写入。
-
正文流和批量流水线必须在 writer 之前显式完成准备。准备失败应在上下文装配前返回真实错误,不能把缺失合同降级为空上下文后继续生成,也不能由上下文读取偷偷补写。
-
章节执行页的前端投影采用三栏职责:左侧只负责切章和查看队列状态,中间只承接正文阅读和必要正文操作,右侧承接章节侧栏和 AI 执行台。
-
简易创作书架是只读阅读入口:只要
Chapter.content已经持久化,就允许用户查看当前版本;chapterStatus/generationState仍用于标记“生成中、审校修复中或已完成”,非完成状态的正文必须明确提示可能继续更新,不能因为状态尚未收口而把已保存内容投影为空。 -
右侧章节侧栏再细分为
本章概览 / 时间线 / 角色动态 / 资源风险。本章概览只放当前章节状态、字数、目标、待处理问题和更新时间,不混入时间线约束;时间线只展示时间锚点、上一章钩子、计划推进、禁止提前发生事项和检测结果。 -
右侧侧栏不得新增写入流程。时间线来自章节时间线接口,检测摘要优先使用 runtime package 或最新
TimelineCheckReport,角色动态来自状态快照,资源与风险来自现有资源上下文和运行时风险摘要。 -
桌面端左中右三栏应保持同高工作区,并在各自栏内独立滚动;移动端应折叠成分组区域,优先保留正文阅读和章节操作空间。
-
右侧栏只展示会影响后续写作的约束、状态、诊断和执行操作,不应重复中间正文区的完整正文。
-
任务单、场景拆解、质量报告、修复记录、上下文与问题诊断属于右侧资料诊断;中间区只保留正文卡和必要正文操作,避免摘要层和诊断层反复占据正文阅读空间。
-
章节热路径必须维护统一的章节义务合同:
mustHitNow、mustPreserve、requiredPayoffTouches、requiredCharacterAppearances、requiredGoalChanges、canDefer、forbiddenCrossings。writer、接收闸门、局部修复和重规划判断都应消费同一份合同,避免规划、写作和审核各自解释章节职责。 -
章节修复、审阅和上下文组装必须兼容旧运行记录中的章节写作上下文。旧
chapterWriteContext如果缺少新增的obligationContract,运行时应补齐空合同,而不是让修复流崩溃;补齐后仍由当前章节任务、角色职责、伏笔账本和资源状态重新组织审阅与修复上下文。 -
任务详情、章节事实检查和运行态投影必须只读;
recover只负责返回可恢复位置和理由,不得在轮询或快照读取时写入恢复事件。否则页面刷新会把“可恢复状态”误记成“正在再次执行”,并制造重复的伏笔同步假象。 -
章节执行步骤的就绪性、完成度和断点续跑位置必须优先读取真实产物事实:
Chapter.content、AuditReport / QualityReport、阻塞 issue、StoryStateSnapshot / CanonicalStateVersion和权威审批状态。task.status、chapterStatus、state.chapterProgress只能作为投影或诊断提示,不能决定章节是否已生成、是否需要修复、是否可以进入下一章。 -
如果任务状态和章节事实冲突,以章节事实为准:有正文但旧任务失败时允许从真实进度继续;旧
chapterStatus=needs_repair但阻塞 issue 已关闭时不能反复进入修复;旧chapterStatus=completed但正文缺失时不能视为完成。 -
章节义务上下文的结构化提醒不能挤掉高风险资源和逾期伏笔。审阅与修复上下文应保留资源不可用、资源需确认、urgent/overdue payoff 等关键信号,防止 AI 修文在缺少约束的情况下继续使用失效道具或忽略必须兑现的压力。
-
章节审校和修文上下文必须同时保留
chapter_boundary与structure_obligations。chapter_boundary负责本章进入状态、结束状态、下一章入口、禁止越界和受保护揭露;structure_obligations负责本章必须推进、必须保留、角色出场、目标变化、伏笔兑现和资源风险。审校 prompt 如果缺少这两类上下文,会无法判断“正文是否越界”或“任务是否兑现”,应修 Context Broker / fallback blocks,而不是降低审校标准。 -
接收闸门必须把未兑现义务输出为结构化
missingObligations,并给出repairability:局部漏写用patchable_obligation_gap,需要整章调整用rewrite_needed,章节职责与邻章安排失配才用plan_misalignment。 -
missingObligations需要结合repairability判断:明确标为patchable_obligation_gap的缺口必须保留为可修复事实,不能因义务种类较软而被确定性代码改判为continue_with_risk;确实可以后续承接的缺口应由接收闸门直接输出continue_with_risk + repairability=none。 -
自动修文默认最多一次;失败后保留可用正文,并按统一问题策略形成质量债或人工恢复入口,不进入无限重试。只有真实章节修复问题才能创建修复工单,通用模型或运行时失败不得伪装成修复失败。
-
自动流水线中的修复结果是候选稿,不是正史。原稿初审和候选复审都只能产生评估结果;候选复审结束并完成版本选择前,不得覆盖
Chapter.content,也不得提交 Timeline、Fact Ledger、终态事件或最终资产。 -
保留稿选择只复用原稿与候选已有的结构化验收结果,不增加第三次模型评选。候选新增
high/critical问题、新增未兑现义务或没有明确结构化改善时保留原稿;候选通过、减少阻塞问题或减少义务/审校缺口且没有新增严重风险时才采用候选。总分只作诊断辅助,不能单独触发换稿。 -
ChapterContentFinalizationService的评估阶段负责生成 runtime package,终态提交阶段只消费已选中评估,不重新调用接收模型。Timeline、已接收事实、章节终态事件和最终资产同步必须只针对同一选中正文执行一次。 -
候选选择记录只持久化原稿/候选正文 hash、各自总分、选择结果和原因,不在
riskFlags中复制正文。候选只需在单次运行内关联;跨运行长期恢复继续依赖流水线开始前的NovelSnapshot,不得为同一职责再建章节版本系统。 -
局部 patch repair 是轻修模式的唯一正文改写动作。补丁计划 Schema 校验失败、
targetExcerpt不唯一或太短、目标片段缺失、补丁无效、模型建议全文重写时,应保留原正文并转为结构化quality.local_repair_failed;任务策略再决定继续、暂停或结束,不能把技术失败直接升级为整章重写。 -
acceptance_gate_unavailable或“章节接收判断不可用”属于审校系统风险,不代表正文中存在可替换片段。若当前待处理问题只包含这类风险,批量章节生产应保留当前正文并记录复查债务,等待重新审校或人工复查;不得调用局部 patch prompt,也不得为了系统风险改写正文。 -
所有会改正文的修复入口必须遵守任务选定的修复模式:
light_repair / continuity_only / character_only / ending_only只允许局部 patch;heavy_repair才允许整章重写。轻修失败不得自动切换模式,整章重写必须来自任务启动时的明确选择或后续人工恢复命令。 -
patch repair 必须同时收到结构化审计问题、
missingObligations和blockingIssueCodes,不能只依赖压扁后的自然语言建议猜测缺口。 -
patch repair 的
targetExcerpt必须是正文中唯一可定位的原文片段;replacement表示替换后的内容。删除重复片段时允许replacement为空字符串,但仍必须满足唯一定位和产生正文变化。 -
已有正文进入复审或质量修复时,不应先把同一份正文重新保存为
drafted/generating。正文未变化时只做审校、必要修复和最终资产同步,避免 UI 更新时间、RAG 队列和章节状态被无意义刷新。 -
章节执行队列允许移除尚未开始的手动空白章节:它必须仍为
planned/unplanned,且没有正文、目标、任务单、场景卡、修复记录或风险标记。删除入口与服务端必须使用同一规则;任何已进入规划、写作、审校或修复链路的章节都不得从此入口删除,以保护已生成内容和下游事实。 -
当前执行链不再生产或消费导演层、章节层质量循环预算。修复是否执行以及失败后继续、暂停或结束,统一读取任务问题策略、章节真实修复次数和结构化质量结论;历史
qualityLoopLedger与repairHistory仅用于旧任务只读投影和诊断。任务快照选择轻修时不得升级动作类型,只有快照明确选择heavy_repair时才执行整章重写。 -
质量评估不得通过相同问题签名出现次数,把局部修复依次升级为整章重写、窗口重规划或人工门禁。重复出现的局部问题仍是当前章节质量债;是否暂停由问题策略决定,是否重规划只读取本轮结构化
stop_for_replan/replan_required结论。 -
修复问题数量、影响章节占比和
large_scope等统计标签只能用于诊断展示,不能构成独立停机阈值。只有结构化stop_for_replan/replan_required、问题策略明确暂停、无可用正文,或模型、用量、运行安全与数据完整性边界可以停止整本执行。 -
章节执行失败语义必须区分:正文未生成是
draft_generation_failed;正文已生成但未兑现本章义务是draft_obligation_unmet;自动修复后仍有阻塞问题是draft_repair_exhausted;需要调整邻章计划是replan_required。UI 和任务详情应展示真实根因,不再把这些情况统一压成chapter.draft.write 未满足其完成标准。 -
质量闭环投影必须区分阻塞错误和非阻塞质量债务。
terminalAction=defer_and_continue且不是replan_required/recommendedAction=replan/blockingObligations的章节,只能作为“已记录质量债务”弱提示,不得驱动主状态进入“出错需处理”或生成 repair ticket;local_patch_plan/continue_with_warning只能进入质量债务或局部修复建议通道,不得写入replanAlertDetails或PIPELINE_REPLAN_REQUIRED;replan_required即使同时带有defer_and_continue,也仍是阻塞重规划。 -
有可用正文的非阻塞质量债,在持久化状态上应完成降级定稿(
generationState=approved、chapterStatus=completed),并保留质量债风险标记用于后续回收;阅读书架把历史遗留的同类记录投影为“已保存 · 待优化”,不能显示成“审校修复中”。只有结构化replan_required才显示为“等待重规划”。 -
urgentPayoffs、overduePayoffs、ledgerSummary.urgentCount / overdueCount和nextAction=advance_payoff都是章节职责或质量债信号。它们可以进入写作上下文、接收闸门和后续质量回收,但不能单独触发全局重规划,否则系统会把“本章应该推进 payoff”误判成“整本计划已经失配”。 -
replanRecommendation必须携带动作与作用域:continue_with_warning表示只记录提示并继续;local_patch_plan + local_window表示自动重规划当前章之后的未完成窗口并继续;stop_for_replan + global_book才表示需要暂停批量流水线。调用方不得只看recommended=true或旧的动作名称就停止章节执行。 -
人工章节审校只负责返回结构化
qualityAssessment与replanRecommendation,并把评估写成可恢复的章节状态。它不得在审校请求内直接调用规划器改写章节窗口;用户显式点击重规划时才进入书级重规划入口,自动生产则只允许ChapterQualityClosure消费明确的stop_for_replan + global_book并暂停。 -
人工审校若得到明确重规划结论,应保留当前正文,把
recommendedAction=replan写入riskFlags.qualityLoop,并落到generationState=reviewed + chapterStatus=needs_repair。这组字段是等待人工确认的章节检查点,不代表正文丢失或整本任务已经失败。 -
章节待优化项的唯一持久化来源是
Chapter.riskFlags.qualityLoop。QualityReport/AuditReport是历史审校记录,不能用报告数量推断当前仍有多少质量债;简易模式、专业模式和章节编辑器必须共用readChapterQualityDebtDetails解析同一份状态。 -
质量债归因必须分别记录
repairAttemptsUsed与repairAttemptsAllowed。只要自动修复请求真实发起,即使返回可恢复失败也计入已用次数;旧记录缺少该字段时保持“次数未记录”,不得从修复日志或预算层猜测为 0。 -
简易模式和专业模式可以采用不同信息密度,但必须进入同一章节编辑与重新审校能力。修改或保存正文只更新工作版本,不能清除待优化项;只有重新审校得到
recommendedAction=continue,才以新的qualityLoop结果关闭质量债。 -
人工重新审校仍有局部问题时,应保存为
terminalAction=defer_and_continue并保留可用正文;只有结构化stop_for_replan + global_book才能写成阻断重规划。这样手动处理和自动导演遵守同一质量边界。 -
明确进入
replan_required后,恢复动作只改写章节计划窗口,不重写已保存正文。重规划完成后,章节执行范围必须依据真实正文事实重新定位到第一个未生成章节;不得沿用旧失败任务的单章范围反复推进,也不得把“继续”实现成每章跳过一次相同的计划失配。 -
逾期 payoff 无论逾期距离、是否落在当前窗口、是否被当前章目标引用,都只能输出
continue_with_warning。只有结构化nextAction=replan、人工强制或章节验收确认plan_misalignment才能输出stop_for_replan;高/严重审计问题输出local_patch_plan,不得停止剩余章节。 -
无明确目标窗口的 overdue payoff 只能作为账本风险跟进,不能用
lastTouchedChapterOrder或firstSeenChapterOrder推导逾期距离,也不能锚定旧章节触发stop_for_replan。伏笔账本同步若发现 AI 输出了无targetStartChapterOrder、targetEndChapterOrder、payoffChapterOrder、payoffChapterId的 overdue,应降级为pending_payoff并保留payoff_missing_progress风险信号。 -
章节创作合同中的
mustAdvance只能保存剧情推进项。acceptance_gate_unavailable、missing_must_hit、mode_fit/acceptance_gate_unavailable等系统审计标签只能进入审计、修复或诊断通道,不得写入任务单“必须推进”或 sceneCards 的mustAdvance。 -
autoReview=false时仍可保存正文并进入异步资产回灌。自动导演的chapter.quality.review事实检查应读取执行计划,把本轮不执行自动审校视为可解释的跳过事实;此时不能因为AuditReport/QualityReport数量为 0 而让已完成正文的批次失败。 -
同一章正文 content hash 未变化时,不重复跑状态快照、角色资源、伏笔账本和角色动态同步。
-
同一章规划已经有
taskSheet和sceneCards,且没有新的用户 guidance 时,章节执行合同细化应复用已有规划,不重复调用novel.volume.chapter_execution_contract。带 guidance 的重生成仍允许覆盖旧结果。 -
章节执行合同的结构化结果在本地归一后,如果缺少目标字数或有效场景不足,属于可修正的 AI 输出合同错误:必须把中文校验原因带回现有 Prompt 做一次受控重试。不得把
Scene count below minimum等内部英文校验文字直接暴露给用户,也不得在本地伪造场景来绕过 AI 合同。 -
规划态冲突强度锚定只属于卷工作区合同:
VolumeChapterPlan.conflictLevelSource = "user"且conflictLevel为数值时,拆章、章节细化和重规划必须把它当作用户固定点;执行态Chapter仍只接收conflictLevel数值,不保存锚定来源。解除锚定必须是用户入口发出的明确交还语义:请求携带当前相同conflictLevel且conflictLevelSource = "ai",持久层才允许从user降回ai。AI 生成或重规划传入不同数值时必须保留原用户锚定,不能静默覆盖。 -
任何数据回填、同步、抽取或索引刷新,都必须等章节进入稳定终态后再执行;章节仍处于修复、重写或回退过程中时,只允许保留正文与必要审校结果,不能提前把这类动作挂回热路径。timeline finalization 是进入下一章前的状态闭合步骤,不属于可随意延后的后台资产回灌。
-
资产同步模式:
adaptive:默认模式,关键资产异步同步,高风险或周期节点触发全量伏笔校准。deferred:快速产文,资产同步可延后批处理。strict:等待必要资产同步后再继续下一章。
写法诊断由接收闸门一次完成,区分 surface、discourse、narrative。具体问题的 AI 修文许可与规则许可取交集;叙事建议和历史缺层次记录不能授权自动修改。只报告项保留结构化原文和建议,不因为禁止修文而丢失。
表达候选通过现有局部补丁生成,并绑定真实问题编号。styleEngine/rewrite/ 负责原文身份、补丁定位、编辑预算和明确词项保护;数字、角色名一致仅证明词项保留,不能证明主体、对象、否定、信息边界不变。语义保护使用已有候选接收复验,比较材料与候选证据分区。事实纠错须关联实际补丁引用的问题和权威上下文,不能把错误原稿当作正史。
候选缺少可信事实复验时不得因分数上升而覆盖原稿。拒绝原因保留于 rewriteGuard;风险报告及终态资产仍对应实际保留正文。拒绝不返还处理额度,不增加重试,不把表达风险升级为全书重规划。质量优先的显式暂停及运行时完整性停止继续遵守现有策略。
手动粘贴稿仅做原文与编辑保护,semantic_facts 保持 not_checked,不能向用户宣称设定验证成功。工程预算尚需真实语料校准;合同测试不能替代小说质量评测。
手动预览由服务端重新检测当前正文与有效规则,未提供问题列表时只选取新报告中的可修表达项;客户端问题列表最多收窄范围,不能扩大许可。接口保留正文空白以维持补丁坐标。页面将结果绑定请求时的正文和配置快照,输入、规则选择或配置资料更新后隐藏旧结果;预览只供比较,不自动写回小说。
styleEngine/signals/ 只计算四类候选统计,不能生成违规、给风险分加分或绕过 AI 验收。每规则最多两个片段、总共八个;定位沿用编辑器换行规范化和 UTF-16 坐标,计数采用非空白 Unicode 字符。对白和有效修辞是否值得修改由 AI 结合写法合同判断,零信号仍须走原有语义检测。
新批量作业保存完整 styleSignalPolicy;执行器只消费持久载荷中的策略,历史无快照作业不从全局配置补默认。恢复和资产补收尾不重建策略、不新增风格调用。手动检测使用当前策略并返回候选统计。
完整词表、阈值和版本参与缓存身份;模型只接收精选片段,避免重复词表。准备缓存身份和实际验收使用同一扫描函数及快照。AI 不可用时统计保留于独立 signalScan,风险报告为空,不能把机械线索显示为“检查通过”。
章节正文、generationState=approved 或任意一份资产存在,都只能说明链路的一部分曾经发生。正文被编辑、后台同步中断或旧任务恢复时,这些历史痕迹可能对应旧内容,不能作为导演继续范围或完成比例的依据。
章节生产拥有生成、验收、候选修复、终态资产同步与状态提交的执行事实;自动导演只拥有任务范围、调度和这些事实的只读投影。两者不得为同一质量结论建立第二套判断或重试循环。
runtime/artifactSync/以归一化正文的 hash 标识一个稳定版本,并以artifact_sync_boundary:v1保存completed或明确degraded的连续性结果。- 章节只有同时具备当前 hash 的连续性边界、状态提交以及可审阅或已批准事实,才计入导演的章节执行完成比例。
- 旧
approved、草稿、旧 hash 检查点和运行中的检查点都只能作为诊断信息,不能驱动“继续下一章”或让导演步骤完成。 degraded表示连续性边界已按规则收束,可继续生产,但投影必须保留它是降级而非完整资产成功的事实。- 手动正文流、手动修复流和自动流水线共用章节生产能力。它们可以返回不同的源页或任务恢复入口,但“创建流/入队任务”始终是交接检查点,不是章节完成。
- 页面或导演任务显示章节已经完成,但当前正文没有匹配的连续性边界:检查后台同步是否被跳过、失败或仍在运行;不要通过回写
approved修复显示。 - 编辑正文后仍显示旧进度:检查投影是否按当前正文 hash 过滤边界;旧边界只能保留为历史恢复证据。
- 自动导演在只有草稿的范围内结束:检查步骤完成标准是否统计了当前版本的资产边界、状态提交和可审阅事实,而不是只统计
draft_saved。
推荐做法:
- 无 sceneCards 时,只要章节目标和上下文足够,允许生成正文。
- 接收闸门输出 repair directives 后,只做一次局部 patch repair。
- 接收闸门的自动修复只允许一次自动重试;仍未通过时,章节进入“未通过但继续生产”的终态,不再同时保留互相冲突的通过态与待修态。
- 伏笔每章默认写 delta,只有高风险、卷尾、周期节点或 strict 模式触发全量对账。
- 背景资产回灌只消费已完成的稳定快照,不回拉主链,不因为同章的终态质量告警反复重跑正文链路。
- 跳过章节时,先提交 degraded timeline,再进入下一章;不能把跳过当成绕过 timeline 的捷径。
禁止做法:
- 因为有章节合同功能,就强制每章默认先重建合同再生成正文。
- 生成后默认串联 AI 味检测、轻审校、状态抽取、角色资源抽取、伏笔同步等多次 LLM 调用。
- 长度略超目标就直接失败或截断正文。
- 给手动单章修复、批量执行、自动导演或 Creative Hub 分别新增独立的 writer、patch repair 或 full rewrite 实现。
- 把 patch repair 的原始技术错误直接暴露给用户,或在
targetExcerpt too_small等技术失败后无授权地改写整章。
- 一章生成耗时异常:检查是否又把多个 LLM 后处理塞回热路径。
- 同一章重复同步账本或重复 timeline / artifact delta 抽取:检查 content hash checkpoint 是否在 LLM 调用前完成
running抢占,而不是只在调用成功后写succeeded。 - 修复循环:检查自动修文次数是否被限制、失败是否落到可继续生产或等待人工的终态,并确认恢复时仍使用原任务策略快照,而不是因读取了新的默认配置再次改变修复模式。
- 正文出现 AI 自述、占位符、工程词或明显截断:优先检查 runtime package 的
audit.openIssues是否包含prose_*code。若只有prose_*且没有replan_required、邻章计划失配或不可用正文,应走本章修复或质量债,不应暂停整本自动导演。 chapter.draft.write 未满足其完成标准高频出现:先查 runtime package 的failureClassification和obligationCoverage。如果 root cause 是draft_obligation_unmet,应优先检查接收闸门输出的缺失义务和 patch repair;如果是replan_required,检查是否存在单章职责过载或邻章分工失配。- 章节反复要求重规划:检查
rolling_window_review的原因是否只来自生成前的紧急 payoff 或advance_payoff。如果审计分数可通过、正文和 artifact delta 已经体现推进,但 runtime package 仍推荐重规划,说明重规划推荐读取了写前状态而不是写后失败证据。 - 自动导演在高章节数被早期 payoff 卡住:检查是否存在同义重复账本项被 AI 全量对账新建为无目标窗口的
overdue。正确行为是同步后处理复用未完成的同名 canonical ledgerKey,并把无明确窗口的 overdue 降级为待推进风险,避免把旧lastTouchedChapterOrder锚成跨几十章的重规划窗口。 - 页面看起来反复“更新”:先区分后端是否真的产生新正文。若章节正文未变但
updatedAt、RAG job 或任务 heartbeat 持续刷新,检查已有正文复审是否被重新保存为草稿。 - 正文已经可读但 UI 显示失败:检查正文状态、资产回灌状态和账本校准状态是否被混为一个状态。
- 第 3-8 章这类章节都显示“建议补写修复 / 质量需修复”:先检查
riskFlags.qualityLoop是否是defer_and_continue质量债务。若没有replan_required、recommendedAction=replan或blockingObligations,主界面和 AI 驾驶舱不得把它显示为阻塞错误。 - 关闭自动审校后任务停在
chapter.quality.review facts are not complete yet:优先检查运行态 seed payload 中的autoExecution.autoReview、autoExecutionPlan.autoReview和directorInput.autoExecutionPlan.autoReview是否传入事实检查。若这些字段为false,质量审校步骤应输出reviewSkipped=true并继续后续状态提交。 - 章节出现未来剧情泄漏:优先检查章节边界、protected secrets、事实账本和
reader_experience是否进入 writer prompt,不要把 Timeline 当成默认写章事实来源。 - 下一章没有承接旧钩子:检查相邻章细化是否把责任写入
inheritedHookResponsibilities,以及 writer / acceptance / repair 是否消费同一个reader_experienceblock。 - 页面出现英文场景数量或目标字数错误:检查章节执行合同归一错误是否进入一次受控重试,以及重试耗尽后的错误是否保持中文可解释信息;不要把该错误误归类为正文质量债或全书重规划。
- 修复后读者回报或钩子责任丢失:检查修复上下文是否保留原合同及已经成立的
readerValue,不要通过新增大事件掩盖原问题。 - 修后正文质量倒退或原稿被覆盖:先检查候选是否在复审前写入
Chapter.content,再检查riskFlags.qualityLoop.repairSelection的正文 hash、分数和原因。若只有总分变化或候选新增严重问题/义务缺口,正确结果应保留原稿,且 Timeline、事实与最终资产都指向原稿。 - 跳过后后续章节脱节:检查事实账本、artifact delta、上一章实际尾段和下一章读者体验合同是否已更新。
- 章节反复重复相同后置检测:检查同章同内容 hash 是否已经命中 acceptance 门禁缓存及后置资产同步 checkpoint。
- 章节出现阵营、身份、境界或当前状态错误:优先检查角色库是否已有硬事实,再检查
GenerationContextPackage.characterHardFacts和 writer prompt 中的character_hard_facts是否存在。如果硬事实缺失,先修角色准备链路;如果硬事实已存在但未进入 writer,修上下文组装;如果已进入仍被违背,再查审计和修复链路。 - 续写没有承接前作状态:优先检查小说是否为 continuation 模式、
NovelContinuationService.buildChapterContextPack是否返回 enabled pack、writer blocks 中是否存在 requiredcontinuation_constraints。若已绑定拆书分析,还要检查分析是否为 succeeded、结构化小节是否包含人物 / 时间线 / 剧情结构内容。 - 规划期开书因为参考资料异常失败:这属于参考注入兜底缺口。参考资料读取失败应降级为空参考文本,不得冒泡为规划阶段失败;先检查
buildReferenceForStage的 warning 日志和返回值。
server/src/services/novel/runtime/ChapterRuntimeCoordinator.tsserver/src/services/novel/runtime/repair/server/src/services/novel/runtime/ChapterArtifactDeltaService.tsserver/src/modules/timeline/server/src/services/novel/characters/characterHardFacts.tsserver/src/services/novel/production/server/src/prompting/prompts/novel/client/src/pages/novels/components/chapterExecution.shared.tsxclient/src/pages/novels/components/ChapterExecutionResultPanel.tsxclient/src/pages/novels/components/chapterInsights/
连载作品的末章可以保留下一阶段牵引;紧凑全书的终章必须完成结局合同,不创建必须续写的新主线,也不要求下一 beat 钩子。章节列表 Prompt 通过结构化完成配置区分两种合同,不能靠标题或正文关键词判断是否结局。
达到目标章节数后,紧凑作品只允许追加最多 5 章收尾,追加内容应围绕未解决的主冲突、关系变化、核心伏笔和主题落点。超过预算仍未完成时进入明确恢复状态,不覆盖已保存正文。
章节流水线的自动处理预约按 GenerationJob + chapterId 持久化,质量修复与运行异常重试共用一次额度。预约先于模型调用,调用抛错也保留预约;同 job 恢复读取预约,新 job 使用独立额度。预约后取消可能消耗额度但没有发出请求,这是无法确认外部执行结果时采用的保守上限,而不是计费统计。
修复阶段应在阶段切换后、预算领取后分别检查取消状态;领取被拒绝时保留当前正文并进入原有质量债路径。该机制不覆盖 SDK 内部重试,也尚未替代导演命令租约恢复中的次数计算。历史任务没有逐章预约时,无法从 job 总 retryCount 推断是哪一章消耗,按未预约兼容读取,不回填猜测记录。
自动导演与手动审校的完成标准不同:自动导演首先保证章节连续产出。正文已保存时,依据 AI 结构化判断与确定性完整性检查决定是否进行一次自动修复,不能仅因分数或账本窗口提醒就调用补丁。AI 明确选择 accepted/continue_with_risk + continue 且没有阻塞审计或失败时间线时,保留提醒并直接降级定稿;只有 rewrite/manual 指令时,轻修不能强行执行。修复仍有普通质量债时,以 defer_and_continue 记录并继续下一章。质量闭环的终端动作优先于单次推荐动作,不能同时记录“继续生产”和“全局重规划”两个互相冲突的状态。
账本描述承诺的时间窗口与当前状态,不能证明本章正文遗漏某个动作。GenerationContextAssembler 可将窗口提醒交给规划与 AI 接收闸门,但 buildRuntimePackage 不得在接收判断之后再次把全部提醒拼成 audit.openIssues 或阻塞 ledger keys。否则每章会修复全书尚未推进的承诺,甚至靠插入未出场角色、提前揭密等方式制造新缺陷。
真正的正文问题来自本章 AI 审计或确定性正文/时间线完整性检查。即使 AI 审计使用同一个 payoff_missing_progress 代码,其正文证据也必须保留,不能按代码统一过滤。只有结构化 plan_misalignment/stop_for_replan 等明确决策才允许停下来调整邻章;逾期账本仍留在原上下文与账本展示中。
审阅上下文将账本放入独立、完整的关注提醒块,不混入 structureObligations。修文只读取章节明确义务、payoff directives 和正文审计,不把 urgent/overdue 列表升级成必须新增行动的编辑边界。修文历史通过生成器拥有的 payoff-ledger: reportId 来源排除合成提醒,真实 AI 审计即使代码相同仍保留;不得按问题文本或 payoff 代码猜来源。
自动补丁资格在领取修复次数之前判断。审校不可用保留 review_gate_unavailable 恢复提醒,跳过补丁且不领取次数;历史记录没有 AI 指令时沿用兼容行为。混合 patch/rewrite/manual 指令须完整透传模式,局部补丁只执行 patch,其他问题留作质量债。显式人工暂停、质量优先策略和用量安全边界沿用原有决策,不得用省调用逻辑清除暂停。
已发出的修复调用仍计入次数;结果正文完全未变时复用原验收,真正改变正文时必须重新验收并执行原稿/候选选择。候选新增严重问题时保留原稿,不能为了节约用量跳过候选安全比较。
运行时异常由当前章节使用问题策略冻结的唯一预算自动重试,最多 1 次。每次重试复用同一章的事实、写作合同和任务游标;如果章节合同缺失或结构不完整,先由 JIT 规划重新补齐,再重新执行正文。只有重试耗尽后仍没有可用正文,或触发明确 replan_required、数据安全错误时,才暂停并生成可恢复检查点。
章节执行合同是共享的前置产物:同一章的 JIT、恢复和手动入口必须合并在同一个在途请求上,并使用同一准备度策略。准备度先判断当前卷规划中的章节要求是否结构完整,再判断已同步到正文入口的目标字数、冲突/揭露强度、禁止事项、任务单和场景卡是否与该要求兼容;“字段存在”不能替代版本兼容。只有结构完整且兼容时才能复用,卷规划变化后应同步或刷新当前合同。全书自动执行时,合同结构缺失可以阻断正文;任务单语义检查的普通风险不得触发第二次整份合同生成,也不得把全书任务升级为暂停。后续正文验收会把仍存在的局部问题记录为质量债并继续。
上下文提供者也必须有稳定合同:声明适用阶段、依赖输入、优先级、层级、必需性、预算和失败语义。角色硬事实、上一章实际结果和章节义务是写作、审阅、修复的必需提供者;第一章没有上一章属于不适用,后续章节缺失则返回明确缺口。世界切片可以降级,知识库召回可以省略,但不能用空数组把适用的必需上下文伪装成完整。
稳定层缓存的失效必须覆盖所有会改变章节上下文的写入口。小说基础设置和写作平台切换发布 novel:updated,角色、卷规划、大纲、书级合同和流水线完成继续发布专属事件;缓存只负责失效,不解释业务字段。Worker 在下一章边界重新读取快照,避免沿用修改前的配置。
上下文预算选择时,required 块先于软信息进入选择结果;预算不足时必需块最多被摘要,但不会被丢弃。提供者合同记录缺失原因,供运行态诊断和恢复入口使用。
回报窗口尚未结束时,账本只能提供当前章的推进提示;不得将 overdue 或内部风险代码注入 mustAdvance。这样可以避免第一章因尚未兑现远期回报而提前中断整本自动创作。
正文、接收闸门与局部修文共享有效写法合同。书级、章节级和任务级绑定由写法引擎解析;没有具体写法绑定时,全局启用的反 AI 基线仍参与正文生成。确认开书选择的写法必须落成书级绑定,重放开书只补缺失绑定,不覆盖用户在小说页调整或停用的绑定。
参考写法不能覆盖本书执行依据。正文、验收和修文渲染写法合同时,从本书合同附加叙事视角和优先级声明,让 AI 转化不相容的参考技法,不能通过正则删除参考规则或回写资产。实际人称由 AI 从叙述正文核对,区别于限知范围和对话人称;合法设置存在时报告须保存 perspectiveCheck 的观察及原文。设置变化参与验收身份,未知历史设置不补造第一或第三人称。实际人称不符或无法确认只进入叙事建议,不能以去 AI 味的名义转换整章人称。
postGenerationStyleReviewEnabled 控制接收闸门中的专项写法检测,并随章节上下文组装形成快照。关闭专项检测不删除正文生成与修文遵循的表达规则,也不关闭正文可读性、事实和章节义务检查。
专项检测合并进唯一的 acceptance 调用,不另接整章检测、全章去 AI 重写或独立循环。开启且存在有效合同时,style_contract 是不能丢弃、不能摘要的必需上下文;规则目录包含稳定 ID 和自动修正权限。验收以语义和正文证据判断,不能用“没有命中字面量词语”代替通过。
AI 返回紧凑的 styleReview 风险结论,程序从同次 voice 问题生成 issueCodes,复用原句与建议。反 AI 规则问题以 styleRuleId 关联有效目录,普通写法合同问题使用 null。初审与修文复验的格式、证据纠正及协议重发共用本章用户设置的重试额度,避免叠加;写法报告仍无效而其他证据校验有效时,清除未验证的 voice 项并记录 style_review_unavailable,保留剧情检查。不能伪造零风险、授权表达修文或缓存为成功。最终报告写入对应正文的运行包;候选稿回退时仍只保存选定稿的评估。
不可用结论须保留稳定诊断原因,区分风格报告/原句/规则核对失败、修文复验失败、模型结构化或连接失败。审校说明与风险标签使用可信错误类型产生的安全信息,不直接暴露供应商响应;运行轨迹标记为降级而非成功。诊断补齐不改变自动导演的质量债、局部修文预算和显式人工暂停边界。
重复表达必须按其信息作用评估。连续同起句、密集比喻、反复看手机或身体反应若未增加选择、阻力、信息、关系或感受,应报告静态填充;有功能的重复可以保留,但须说明具体作用,不能只用“情绪递进”豁免。正文生成自检同样防止为填满目标字数重复同一场景。统计零命中不能替代这一语义判断,不能机械提高风险分或绕过只报告权限。
自动修正权限是确定性执行边界:AI 识别到 autoRewrite=false 的规则后,只保留质量提醒和检测报告,不因该规则安排修文。其他可修正表达问题复用已有局部修文额度与任务问题策略;鼓励性规则未出现不构成硬缺口,普通表达提醒不应单独触发整章重写或全局重规划。质量优先策略的人工暂停与明确剧情重规划继续保留。
检测开关、有效合同、规则权限、提示词版本及模型配置都参与验收输入身份。规则变化后旧结论必须视为缓存 miss;外围时间戳不参与身份。模型端前缀缓存仍可复用书级稳定规则,不能为提高命中率而冻结需要更新的写法配置。
PostGenerationStyleReviewRunner 保留了旧独立检测与整章改写实现,但当前生产链不执行它。ChapterContentFinalizationService 从唯一接收闸门取得写法报告;V2 的 chapter_batch 只读取底层章节闭合结果。增强表达诊断应进入现有验收和局部修文,不能因旧类仍存在而重新接入第二次检测或自动整章去味。
确定性表达检查、风格语义判断与执行许可是不同边界。统计词项、句长或重复只能给 AI 提供证据,不能直接判断作者来源、机械加风险分或在零命中时宣布风格通过。已存在的严重表达安全预检仍由 proseQuality/ 拥有;普通风格候选不得借用严重缺陷通道变成全局停止条件。
规则允许自动修文不等于当前实例可安全修改。执行许可必须同时尊重 AI 的具体判断、事实与章节义务、用户授权和冻结的问题策略。叙事建议若需要改变事件或人物动机,应回到有上下文的来源页由 AI 辅助作者决定,不能由表达层自行改剧情。独立手动修订服务同样不能把客户端提交的规则名或建议当作可信许可。
保护检查拒绝候选与运行时数据完整性失败必须分别处理:前者保留原稿并进入既有质量债治理,后者沿用安全停止。原稿也可能有事实错误,因此原文数字或否定词完全不变不能证明事实安全;有权威依据的连续性纠错也不能被风格原文锁一律禁止。复验与版本选择结束后,只有唯一保留稿可以提交事实和资产。
显示诊断必须保留正文版本归属;源页保存和接受候选继续遵守共享正文坐标、快照与 expectedUpdatedAt,不因普通保存重复调用诊断,也不自动关闭问题。运行记录保持只读导航,不承接修文或恢复动作。
分层诊断、候选信号和编辑保护的合同及评测边界见 去 AI 味能力升级方案。读取历史运行包时,新字段允许缺失,但缺失不能授权自动修文;工程预算和真实去味效果仍须语料校准。
补写必须区分整章目标与本次追加额度。原稿达到共享软下限时不强迫填满目标;低于软下限时,把已有非空白字符数从目标、软下限与软上限扣除,给模型追加区间及对应输出额度。返回的追加正文超出上限时保留原稿,不剪切、不重复调用,也不让超长候选扩大后续检查和资产整理的输入。剩余不足由正常 AI 审校记录;沿用任务选择的质量政策,不把单次补写拒绝当作全局重规划。
Writer 和 Acceptance 的篇幅来源必须一致:优先当前 chapterWriteContext 的 chapterMission,其次审校合同,再回退章节元数据。组装任务时,合法的章节显式目标优先;显式目标为空时,从通过共享 schema 校验的场景卡恢复目标,并用共享规则生成 lengthBudget。任务、场景卡、Writer 和审校消费同一目标。无效场景卡不得仅凭一个 targetWordCount 数字伪装成完整合同;章节表目标为空也不代表有效场景卡没有篇幅要求。该协调只发生在读取组装,不批量回写历史章节。
局部修文复验内部携带首次审校的 blockingIssues、missingObligations、repairDirectives;渲染为去掉历史证据的核对清单,放在完整候选正文之后以保留此前稳定前缀。AI 返回候选正文 hash、逐项解决状态、当前原句与理由;未解决时保持 code 与义务 kind/summary,仍检查完整合同与新退化。程序只核验身份、覆盖、原句来源和结构化一致性,不代替 AI 判断剧情。新增问题必须说明修文引入的退化或首次漏检的硬合同证据,不能为追求更直白的目标表达反复扩展场景。
复验使用错误正文身份、旧原句、遗漏核对项或自相矛盾的状态时,使用本章共享纠正额度的剩余次数;仍无效则沿用不可用审校的风险降级,并留下明确诊断标签,不缓存成成功结论。候选选择保留原稿及其评估,不能因降级兜底分数更高而采纳候选。候选采纳规则不因总分提高放宽,最终资产只能从选中的正文同步。此规则保护章节保存边界,不清除质量优先的人工暂停。
验收与复验需要为完整结构预留输出空间,不能因固定的小额度截断清单后,再重复发送整章进行格式修复。首次检查使用 4096、复验使用 6144 Tokens 上限,实际用量按既有账本记录;章节检查额度由用户设置并持久预约,耗尽后按任务快照继续或暂停,详见 章节检查重试策略。若触及单章预算,保留正文与收尾边界,仍须显式授权追加,不能以测试或恢复为由重置用量。
审校整体不可用必须标记 meta.scoreAvailable=false、reviewExecuted=false;AuditReport 的 overallScore 为 null,不创建 QualityReport。兼容传输中的数值零只作哨兵,禁止用正文长度、重复率或关键词估分替代 AI 质量判断。质量闭环仍记录 acceptance_gate_unavailable 与 defer_and_continue 债务;完成优先继续生产,质量优先沿用显式人工恢复边界。
历史记录中,章节最近一次不可用审校以前的 QualityReport 不应作为当前有效 AI 分数展示。读取投影根据质量债的 evaluatedAt 过滤,保留数据库历史;之后成功的新审校仍可显示。章节阅读页明确提示已保存且待复查,操作入口位于章节编辑页。
章节细化携带上一章实际正文、摘要和章尾,正文写作、验收与修文保留最近一章完整正文作为事实来源,不把全部历史升级成必需输入。摘要、角色状态和未执行规划不能覆盖这个来源;增加必要事实输入与重复失败请求应分开计算成本。验收在同次调用返回跨章核对清单,分别引用两章原句;冲突必须关联 continuity 问题,不能因任务单要求该情节就忽略与前文的矛盾。
已有合同的结构完整与字段一致,不等于承接了实际前文。尚无正文的章节在进入写作前,经现有 AI 任务单质量评估器核对前章实际结束位置、人物状态、道具载体与已有内容;相同有效输入复用核对结果。AI 要求修订时将指导送回已有合同生成链,不添加额外生成循环。副驾模式需要确认的结果不能静默覆盖规划;已有正文不通过这一入口自动重建合同。生成期间前文或目标合同变化时保留新修改并拒绝过期写入。
选定章节范围的导演执行也完成当前合同核对,但不扩展路线窗口或正文授权范围。规划语义核对有独立的准备成本,不占正文审校/修文复验的额外请求次数;正文继续遵守已冻结的次数与 Token 预算。参考 volume/chapterDetail/continuity/README.md 的缓存与来源边界。
自动模式的 repair_contract 使用现有两次合同生成额度中的第二次,不叠加第三次。仅最终评估发布质量事件,避免第一次已修复的提醒留作债务;剩余 repairGuidance/repairHint 随保存的 taskSheet 进入 writer、review、repair。第二次格式修订失败可保留第一份结构有效合同及指导;取消、通信、数据完整性故障和明确重规划不能被这种保留策略吞掉。
开书章数区分用户明确输入与表单占位默认值;未填写时使用 AI 候选的 targetChapterCount,小说基础信息与冻结执行快照必须一致。旧草稿中的显式数字继续保留,不能通过解析自然语言中的数字猜测用户设置。