docs(设计): 新增专题-08自动化测试方案SoT,蒸馏G1/G4需求缺口

- 新增 专题-08-自动化测试方案:四层测试金字塔、确定性/语义分界判据、语义评测方法论(双盲评委/对照实验Gate B/回放)、测试可判定性合同
- 登记归属:00-文档大纲 + 内容映射表
- 蒸馏G1(收紧自动确认):产品-02 §6.4/§9.1 纳入达标自动确认四条件,消除唯一入口矛盾
- 蒸馏G4(运行时叙事门):专题-04 §4.2.1 补三维量表与通过线(设定≥7.0/角色·场景≥6.0)及四步裁决
- 新增 docs/plans 缺口跟踪:登记10项需求缺口与蒸馏状态
This commit is contained in:
zizi 2026-07-30 23:25:15 +08:00
parent 36268bb118
commit 81a8d1377f
6 changed files with 261 additions and 16 deletions

View File

@ -103,6 +103,7 @@
- [专题-05-AI统一交互协议与外部AgentAdapter设计](专题-05-AI统一交互协议与外部AgentAdapter设计.md)
- [专题-06-元数据驱动的智能体架构](专题-06-元数据驱动的智能体架构.md)——收束「agent = f(作品 + 元数据 + 知识库)」横切架构元引擎与功能链双枢、三体关系、target type 23 型结构本体、统一创作数据读取器、base 内置机制与拆书通用抽取。
- [专题-07-知识消费契约与质量闭环](专题-07-知识消费契约与质量闭环.md)——收束「知识效用」横切主线:消费选择契约(按用途默认合同与注入视图)、知识质量三性(可命中/可行动/可持续)、回放评测(参考书=标准答案)、长线进度消费语义(演变历程三期消费)。
- [专题-08-自动化测试方案](专题-08-自动化测试方案.md)——收束「测试可判定性」横切主线:四层测试金字塔、确定性/语义分界判据、语义评测方法论(双盲评委/对照实验 Gate B 范式/回放评测)、测试可判定性合同、已拍决策的测试合同。不重定义状态机/Schema/API/质量维度,只引用各 owner。
说明:专题文档只负责跨文档收束,不抢走 Schema、状态机和统一 API 的单一归属。
@ -151,6 +152,7 @@
- 系统处理流程:`流程-02A-管理员系统处理流程(系统视角).md` / `流程-02B-普通用户系统处理流程(系统视角).md`
- AI 编排、检索上下文和质量评测跨文档合同:`专题-03-AI编排上下文与质量评测实现规范.md`
- 知识消费选择契约、知识质量三性、回放评测、长线进度消费语义:`专题-07-知识消费契约与质量闭环.md`
- 测试金字塔分层、确定性/语义分界判据、语义评测方法论、测试可判定性合同:`专题-08-自动化测试方案.md`
- AI 外部运行时统一协议与 Adapter`专题-05-AI统一交互协议与外部AgentAdapter设计.md`
- 统一数据库表结构:`后端-04-统一数据库Schema-v1.md`
- 统一接口契约:`后端-05-统一API契约-v1.md`

View File

@ -1,10 +1,7 @@
# 专题-04生成质量门控与创作健康度设计方案
- 版本v3
- 更新日期2026-07-20
- 目标读者:产品 / 架构 / 前端 / 后端 / 测试
- 目标读者:创作者 / 产品 / Agent 实现者 / 架构 / 前端 / 后端 / 测试
- 阅读时间25-40 分钟
- 变更记录v32026-07-20§10.1 新增正文五维量表、双盲稳定性与第三评委仲裁,并固化 Gate A/B 唯一判定顺序。v22026-07-17§10 离线评估输入补「知识策略版本」、允许样本增补第 5 类参考作品回放样本(两道闸校验,机制归 [专题-07-知识消费契约与质量闭环](专题-07-知识消费契约与质量闭环.md));关联阅读补专题-07物理文件名补 `.md` 扩展名。
- 边界说明:本文件承接阶段 1~5定义质量门控(Quality Gate)、创作健康度(Writing Health)、质量策略、有限重写、质量结果展示和质量观测的产品架构合同。AI 编排、上下文组装和运行时权限见 `专题-03`;精确 Schema、API 和前端组件由后续阶段承接。
## 1. 定位
@ -69,6 +66,27 @@
| 角色声音一致性 | `character_voice` | 角色对白、行为、语气是否符合角色档案和近期章节表现 | 触发重写;失败可允许用户修改后合并 |
| 场景结构 | `scene_structure` | 场景目标、动作链、因果、视角和段落推进是否完整 | 触发重写;严重断裂时建议重生成 |
#### 4.2.1 运行时叙事门量表与通过线
叙事关键维度在运行时按下列量表打分并裁决,不再是模糊词。盲评机制(双盲双评、候选随机化、任一维两次评分差 `>0.5` 只加一次第三评、稳定配对取中位数、无稳定配对则不得强行给出输赢)只引用 §10.1,本节不重复定义;运行时与离线实验的差异在于:运行时对**单个候选**裁决,离线实验对**种群 A/B 臂**裁决。
每维按 0-10 分、0.5 分步长评分并逐项标注证据来自已确认正文、Local KB、正式规划、Narrative State 还是评委自行推断。运行时通过线如下(由质量策略登记、可调,但必须显式登记;未登记视为门控未闭合,候选不得进 `shadow_ready`
| 维度 | 通过线 | 理由 |
|---|---|---|
| 设定一致性 `canon_compliance` | `>=7.0` | 硬事实层,门槛最高 |
| 角色声音一致性 `character_voice` | `>=6.0` | 可修改后合并,门槛次之 |
| 场景结构 `scene_structure` | `>=6.0` | 可重写补救,门槛次之 |
运行时裁决顺序(命中前项即停止,后项不得覆盖前项):
1. 设定一致性出现**硬事实冲突 verdict**与已确认正文、Local KB 或正式规划直接矛盾,类比 §10.1 Gate A 的"硬约束覆盖率 `<100%`"):不论分数,直接 `high_risk`,禁止接受。
2. 任一维评分不稳定(无稳定配对)或评测异常:`unavailable`/`needs_recheck`fail-closed不放行。
3. 任一维 `<` 通过线:触发 Shadow 内有限重写(上限见 §5默认 ≤2 次);重写后仍 `<` 通过线:`high_risk`,需修改后合并或重生成。
4. 三维全 `>=` 通过线且无硬事实冲突:`pass`/`rewritten_pass`,可进 `shadow_ready`
`qualityState` 的转移与风险路由优先级只引用 §6本节不重复定义。本节通过线数值是运行时默认值其合理性由 §10 离线实验与回放评测校准;校准责任人与时点登记于质量策略。
### 4.3 非关键维度
非关键维度只展示评分和建议,交给用户判断。
@ -301,7 +319,19 @@ active -> superseded / rolled_back
### 10.1 正文实验五维量表、盲评与 Gate A/B
正文回放使用独立的 `writer` 评测 profile不覆盖细纲、知识或其他既有评测量表。每个维度按 0-10 分、0.5 分步长评分,并逐项标注证据来自已确认细纲、冻结历史原文、卡索引还是评委自行推断。
正文回放把创作、语义检测和盲评拆成独立模型职责:
| 角色 | 每次调用的唯一职责 | 不负责 |
|---|---|---|
| writer | 根据最小创作输入生成一章正文 | claim、证据缺口、新设定申报、哈希、版本、自检或评分 |
| semantic detector | 对一个已绑定候选核对事实、细纲硬约束、证据与新设定 | 创作、润色、改写、文学评分或运行哈希 |
| blind judge | 对盲化候选按预注册维度评分并给出事实/硬约束 verdict | 修改正文、替代 detector、读取臂专属上下文或计算运行哈希 |
“一个职责”不等于“一个字段一次调用”。detector 可以在一份报告中列出同一候选的多条语义 verdictjudge 可以在一份报告中完成同一次盲评的多维评分;创作、检测和评审仍必须是不同调用。
同一样本的 A/B/C 由三个互不共享会话的 fresh writer 调用产生;每个候选各运行一次 fresh detector两个 reviewer 分别运行 fresh blind judge只有评分不稳定时增加一次第三 reviewer。模型、effort、输出 schema、单次预算和公共上下文控制必须在可比调用间一致。
正文回放使用独立的 `writer` 评测 profile不覆盖细纲、知识或其他评测量表。每个维度按 0-10 分、0.5 分步长评分,并逐项标注证据来自已确认细纲、冻结历史原文、卡索引还是评委自行推断。
| 维度 | 评判问题 |
|---|---|
@ -311,25 +341,30 @@ active -> superseded / rolled_back
| 叙事张力 | 场景推进、因果、冲突升级、情绪连续和章末牵引是否成立 |
| 文笔与可读性 | 文字是否准确、流畅、具体,是否存在空泛解释、机械重复或明显阅读阻力 |
每个样本先由两个独立、无会话的评委双盲评分;候选臂名随机化,第二评委反转展示顺序。任一维两次评分差异 `>0.5` 时,只增加一次第三评委。第三评委后,若三份评分中至少一对差值 `<=0.5`,该维最终分取三者中位数;若不存在稳定配对,整个样本标记为 `invalid_unstable`,不得强行给出输赢或方向结论。去盲、稳定性判断和聚合必须机械执行,人工只能复核证据归因,不能手改终态。
每个样本先由两个独立、无会话的评委双盲评分;候选臂名随机化,第二评委反转展示顺序。任一维两次评分差异 `>0.5` 时,只增加一次第三评委。第三评委后,若三份评分中至少一对差值 `<=0.5`,该维最终分取三者中位数;若不存在稳定配对,整个样本失败,不得强行给出输赢或方向结论。去盲、稳定性判断和聚合必须机械执行,人工只能复核证据归因,不能手改终态。
blind judge 只能看到盲化 candidate ID、候选正文、所有臂相同的细纲评测字段和 evaluator-only oracleTruthPack不得看到真实 A/B/C 映射、各臂 WriterContext、卡检索轨迹、臂专属原文或 raw 路径。judge 模型只返回五维评分、逐项理由、事实 verdict 和硬约束 verdictcandidate/input/oracle/report/model-receipt hash 由 judge adapter 注入或计算。
预算分为两层:`plannedCalls` 是单个 Gate 执行的不可变调用计划,`maxCalls` 是独立安全上限。启动预留只按各角色 `plannedCalls × maxBudgetUsdPerCall` 计算,不得把安全上限当作调用计划;每次调用前还要校验累计实际成本、剩余计划预留和角色调用数。补证、返修或重跑必须创建新的显式计划与预算预留。
正文实验只允许下列 Gate 顺序,命中前项即停止,后项不得覆盖前项:
**Gate A链路可运行**
1. 有效样本 `<5``insufficient_evidence`
2. 否则只要存在 schema 非法、未来泄漏、系统失败、C 臂 detector 高严重度残留,或细纲硬约束覆盖率 `<100%``failed`
3. 其余:`passed`
1. 任一预期调用、schema、hash、冻结、授权、未来泄漏审计、模型回执或 judge 稳定性异常:`failed`
2. 预注册评测集自身不足 5 个有效样本或五类场景不全:`insufficient_evidence`
3. C 臂存在 detector 高严重度残留或细纲硬约束覆盖率 `<100%``failed`
4. 其余:`passed`
Gate A 只证明链路可运行,不代表正文层通过。
**Gate B正文层正式裁决**
1. Gate A=`insufficient_evidence``insufficient_evidence`。
2. Gate A=`failed``failed`
3. 否则若作品 `<2`、任一作品有效样本 `<5`、总有效样本 `<10`、五类场景未覆盖,或 `invalid_unstable` 占比 `>20%``insufficient_evidence`
4. 再判断 C 臂硬约束覆盖率 `<100%`、存在 detector 高严重度残留、C-A 的文风一致性或叙事张力平均增量 `<-0.25`,或任一维下降 `>0.5` 的样本占比 `>20%`;命中任一项`failed`
5. 再判断 C-A 的设定与实体保真平均增量 `>=0.25`正向样本比例 `>=60%`;同时满足`passed`
1. Gate B 运行中任一预期调用、schema、hash、冻结、授权、泄漏审计或 judge 稳定性异常:`failed`。
2. Gate A=`failed``failed`Gate A=`insufficient_evidence``insufficient_evidence`
3. 预注册评测集作品 `<2`、任一作品有效样本 `<5`、总有效样本 `<10` 或五类场景未覆盖`insufficient_evidence`
4. C 臂硬约束覆盖率 `<100%`、存在 detector 高严重度残留,或 C-A 的文风一致性/叙事张力在整体或任一非空新角色分层退化`failed`
5. C-A 的设定与实体保真平均增量 `>=0.25`至少 `60%` 样本增量 `>0``passed`
6. 其余:`no_gain`
报告必须列出假阴、假阳、未来泄漏、评委不稳定、新角色无卡和场景选择偏差等混淆项。单章、单作品或只选卡友好场景不得得出普适结论。只有 Gate B=`passed` 才能声称正文层通过并启动细纲智能体真实能力验收其他终态继续修正文层或补充预注册的合法样本。A/B/C 的冻结与接受隔离合同只引用 [专题-03 §4.5](专题-03-AI编排上下文与质量评测实现规范.md),本节不重复定义。

View File

@ -0,0 +1,156 @@
# 专题-08自动化测试方案
- 目标读者:创作者 / 产品 / 架构 / 前端 / 后端 / 测试 / Agent 实现者
- 阅读时间25-40 分钟
- 边界说明本文件是贯穿四仓muse-cloud / muse-admin / muse-studio / muse-design-docs的**测试可判定性**横切 SoTowns 三个概念——测试金字塔分层、确定性/语义分界判据、语义评测方法论。它**不重定义**任何状态机、Schema、API 或质量维度:那些的单一归属仍在各自分册(见各节引用),本册只规定"它们必须满足什么条件才算可测、以及用什么手段验证"。
## 1. 定位与非目标
### 1.1 定位
Muse 的可测性呈两极:
- **约 95% 的系统是确定性机器**——状态机、双轨写路径、事务、幂等、鉴权、协议外壳、不丢稿。其对错**不看正文含义、只比对结构与数值**即可判定,用经典自动化测试钉死,是自动化率 > 90% 的主体。
- **决定"这段 AI 写得能不能用"的语义内核**——正文质量、一致性判定、知识效用——本质上必须靠多模态大模型评判,不能用"通过/失败"硬断言,只能用对照实验与盲评量表。
本册给出:四层测试金字塔、一条确定性/语义分界判据、三套语义评测机制,以及每个功能"要可测必须提供什么"的可判定性合同。
### 1.2 非目标
- 不定义具体业务状态机、表结构、端点、错误码、质量维度——归属见各节引用的 owner 分册。
- 不替代 `docs/mvp/` 的进度总账与覆盖 JSON本册定义"测什么、怎么验",覆盖 JSON 是"哪些已登记可机械核对"的执行台账。
- 不记录调试经过、某次测试结果或开发状态。
## 2. 测试金字塔(四层)
越往下越贵、越往上越该多。每一层的用例都从现有 SoT 合同反推。
| 层 | 验证对象 | 规模/成本 | 手段 | 合同 owner本册只引用 |
|---|---|---|---|---|
| **L1 数据不变式 / 状态机** | 双轨写路径、状态迁移合法性、唯一约束、快照不可变 | 多而密、最廉价 | 后端单测 + 真 PG 集成测试 + ArchUnit | [架构-02](架构-02-核心数据结构与双轨模型.md)(双轨不变式)、[架构-04](架构-04-状态机与约束清单.md)(状态机)、[后端-04](后端-04-统一数据库Schema-v1.md)(约束) |
| **L2 接口契约 / 事务 / 幂等** | 错误码、乐观锁、鉴权边界、事务回滚、SSE 框架、版本头 | 多、廉价 | 契约测试 + 集成测试 + 故障注入 | [后端-05](后端-05-统一API契约-v1.md)API 契约)、[后端-03](后端-03-关键流程实现与接口契约.md)(事务/事件) |
| **L3 前端交互 / 不丢稿** | 编辑器保存、影子层冲突、建议接受、动态表单、SSE 重连 | 中 | Playwright E2E + 前端单测 | [前端-02](前端-02-编辑器与影子层交互.md)、[前端-03](前端-03-元引擎与动态表单.md)、[专题-01](专题-01-正文建议接受(Accept%20Suggestion)实现规范.md) |
| **L4 AI 语义质量** | 正文质量、一致性判定、知识效用 | 少而精、最贵 | LLM 评委 + 对照实验 + 回放评测 | [专题-04](专题-04-生成质量门控与创作健康度设计方案.md)(质量维度/量表)、[专题-07](专题-07-知识消费契约与质量闭环.md)(知识效用/回放) |
**分层纪律**L1L3 必须占自动化用例的绝大多数L4 数量少、慢、贵,但测的是产品命根子,绝不用 L1L3 的"通过/失败"思路去做(见 §5
## 3. 确定性 / 语义分界判据
唯一判据:
> **这件事的对错,能不能不看正文含义、只比对结构和数值就知道?能 → 确定性(机械断言);不能 → 语义(大模型评判)。**
### 3.1 分界总表
| 测什么 | 类别 | 验证手段 |
|---|---|---|
| 状态迁移、枚举值域 | 确定性 | 状态图遍历 + 断言 |
| 双轨写路径隔离AI 不直写正文事实层) | 确定性 | 写路径审计测试 |
| 事务原子 / 乐观锁 / 幂等 | 确定性 | 集成测试 + 故障注入 |
| 鉴权 / admin·app 入口隔离 | 确定性 | 矩阵化权限测试 |
| 协议外壳 / 哈希绑定 / fail-closed | 确定性 | 契约测试 |
| 不丢稿 / 冲突不静默覆盖 | 确定性 | Playwright 杀进程重载 |
| 一致性"两段设不设定冲突" | 混合 | 定位/绑定部分断言 + 判定部分 LLM 评委 |
| 正文质量五维打分 | 混合 | 确定性流程 + 盲评大模型打分 |
| 知识回放对照 | 混合 | 确定性框架 + 对照评分 |
| 风格 / 节奏 / 可行动性 | 纯语义 | LLM 评委 / 对照实验,不下硬结论 |
### 3.2 混合体的处理纪律
混合体(外壳确定 + 打分语义)是最易做错的一类:**外壳必须单测,内核必须大模型**,二者不可互相替代。
- **一致性检测**owner [专题-03](专题-03-AI编排上下文与质量评测实现规范.md)):引用能否唯一定位、哈希是否绑定、`unknown` 是否带 gapReason——确定性断言"claims/事实冲突 verdict"——LLM 判定。
- **正文离线实验**owner [专题-04 §10](专题-04-生成质量门控与创作健康度设计方案.md)):双盲双评流程、"单维差 >0.5 加第三评""取稳定配对中位数""样本 <5 判证据不足"——确定性规则五维打分——盲评大模型
- **知识回放**owner [专题-07 §4](专题-07-知识消费契约与质量闭环.md)):冻结第 N 章、按契约组装、对照第 N+1 章——确定性框架;"台阶命中/设定一致/错误检出"——对照评分。
## 4. 确定性合同主干(高 ROI优先铺
以下六类全部可从现有 SoT 直接生成用例,是回归主干,最先落地:
1. **错误码枚举稳定**:业务错误码取自 [后端-05 §5](后端-05-统一API契约-v1.md) 枚举;特定失败不得压缩为泛化码(如来源阻断必须返 `SOURCE_BLOCKED` 而非 `STATE_CONFLICT`)。
2. **乐观锁**Block 写入必带 `expectedRevision`,冲突必拒且 revision 单调递增owner [架构-04 §4.6](架构-04-状态机与约束清单.md))。
3. **Accept 事务原子**:候选接受 8 步(校验→写 revision→归因→归档→审计/outbox任一步失败整体无副作用outbox/投影异步失败不回滚已提交正文owner [后端-03 §4](后端-03-关键流程实现与接口契约.md))。
4. **幂等**:同 `commandId` 重提返回首次结果、不重复写/确认/绑定/导出;同键不同语义必报 `IDEMPOTENCY_CONFLICT`owner [后端-05 §2.5](后端-05-统一API契约-v1.md))。
5. **鉴权矩阵 / 入口隔离**`/admin-api/**` 改不了用户正文,`/app-api/**` 碰不到系统配置;系统内部调用不得复用用户 token越权 `FORBIDDEN`、无身份 `UNAUTHENTICATED`owner [后端-02 §4.3](后端-02-工程结构与模块职责.md)ArchUnit 包级隔离)。
6. **双轨写路径审计**AI 任务/候选/智能体绝不能直写正文事实层;来源传播只能限制/标记/作废不得改写已确认正文owner [架构-02 §1.1](架构-02-核心数据结构与双轨模型.md)、[架构-04 §11](架构-04-状态机与约束清单.md))。
补充确定性主干(同优先级):状态机迁移图遍历(通用版本/任务/候选/来源、唯一约束与快照不可变、SSE 框架合同与重连续传、`X-API-Version` 废弃期/410 行为、不丢稿不变式(崩溃后 `max(本地缓存, 服务端)` 可恢复、零丢失)。
## 5. 语义评测方法论
语义部分最大的坑是"测了个寂寞"(跑一次、看着行、就过)。三套机制,铁律先行:**n=1 不下结论;两臂必须对等、控住混淆变量。**
### 5.1 LLM 评委(双盲双评)——给单条产出打分
- 两个评委独立打分、互不知结果;分差超阈值([专题-04 §10.1](专题-04-生成质量门控与创作健康度设计方案.md) 用 0.5)自动引入第三评。
- 评委 fresh 进程隔离、匿名样本,不告知"AI 写还是人写"。
### 5.2 对照实验A/B 两臂对等)——回答"新策略是否真的更好"
- 两臂对等:同一批章节、同一模型、同一预算,只改变被测变量。
- 样本不足不下结论:[专题-04 §10.1](专题-04-生成质量门控与创作健康度设计方案.md) Gate A——样本 <5 或五场景不全 `insufficient_evidence`"证据不足"**不是**"通过")。
- **通过线必须是硬数字**。全仓范本 = [专题-04 §10.1](专题-04-生成质量门控与创作健康度设计方案.md) Gate B试验臂相对对照臂文风或张力**不退化**,且设定保真均值 **≥0.25**、且 **≥60%** 样本为正 → `passed`。这是"语义质量落成确定性判定"的唯一现成范本,所有新语义门补标准时照此范式。
### 5.3 回放评测——回答"知识/上下文策略有没有用"
拿参考书当标准答案:冻结到第 N 章,按消费契约组装上下文去生成第 N+1 章,对照真实第 N+1 章owner [专题-07 §4](专题-07-知识消费契约与质量闭环.md))。铁律:**没跑过回放,不许声称有改善。**
## 6. 测试可判定性合同(倒逼 owner 分册)
**每个功能要进入自动化验收,必须向测试提供下列之一;提供不出来的,视为需求未闭合,不得声称"已完成"。**
| 功能类型 | 必须提供 | 提供不出来的后果 |
|---|---|---|
| 状态机 / 流程 | 完整合法+非法迁移图、终态 | 无法写迁移断言 |
| 端点 / 命令 | 稳定错误码、前置条件、幂等键来源 | 无法写契约/并发测试 |
| 数值门槛TTL/置信度/配额) | **具体数值**,或明确的"基线产生时点+校准责任人" | 过期/拒绝/超限路径不可断言 |
| 语义质量门 | 量表 + 通过线 + 评委规则(照 §5.2 Gate B 范式),或书面承认"只展示不阻断" | 既想阻断又无判据 = 黑洞,测试拒绝背书 |
| 失败路径 | 四问:为什么 / 哪些事实没变 / 下一步 / 返回哪里 | 失败恢复不可验收 |
本条是测试对需求的硬约束:凡声称"质量达标""风险可控""自动入库"而无上表对应判据者,测试侧记为**不可判定**,回退 owner 分册补标准。当前已知的不可判定点,集中登记在 `docs/plans/2026-07-30-测试倒逼需求缺口跟踪.md`,拍死后蒸馏回各分册即删。
## 7. 已拍决策的测试合同
以下三项已由人类拍死2026-07-30本册登记其**测试合同**;对应 owner 分册的措辞修订见缺口跟踪文档的蒸馏清单。
### 7.1 收紧自动确认G1
**决策**:知识草稿仅在四条件**全满足**时自动入库——① 自有正文产生 ② 无外部来源 lineage ③ 无冲突 ④ 置信度达标;任一不满足 → 进待确认队列,用户确认才入正文事实层。
**测试合同(确定性)**
- 四条件逐一置假,断言草稿进入待确认队列、**不**写正文事实层;
- 四条件全真且置信度达标,断言 `confirm_mode=auto` 且可撤回;
- 带外部 lineage 的草稿即便改写,断言**不**洗白来源、**不**走自动确认。
**已蒸馏**`产品-02 §6.4` 入口清单已纳入"知识草稿达标自动确认(四条件)"`§9.1` "唯一入口"措辞已对齐,与 `流程-02B §7` 矛盾消除。
### 7.2 叙事质量门补硬标准并阻断G4
**决策**:运行时叙事三维(设定一致 / 角色声音 / 场景结构)照 §5.2 Gate B 范式补硬标准——每维一个量表 + 双盲评委 + 通过线,不达标阻断或触发有限重写(重写上限默认 ≤2owner [专题-04 §5](专题-04-生成质量门控与创作健康度设计方案.md))。
**测试合同(混合)**
- 确定性外壳:量表步长、双盲流程、"分差 >0.5 加第三评"、重写上限、`qualityState` 转移——机械断言;
- 语义内核:三维打分由盲评大模型给;
- 阻断断言:构造低于通过线的样本,断言候选**不**进 `shadow_ready`、**不**可接受。
**已蒸馏**`专题-04 §4.2.1` 已补运行时叙事门量表0-10/0.5 步长)、三维通过线(设定 ≥7.0、角色/场景 ≥6.0)与四步裁决顺序,盲评机制引用 §10.1。
### 7.3 阈值分类处理
**决策**
- **安全类阈值现在拍死**——凭证有效期handoff token / 下载凭证)、风险与冲突分级。一旦数值确定,其过期/拒绝/禁静默确认路径即为确定性断言。
- **语义类阈值留回放首轮基线**——知识质量三性门槛、回放通过线、自动确认置信度。必须同时写明"基线产生时点 + 校准责任人",否则视同悬置。
**测试合同**
- 安全类:数值落 SoT 后,过期/重复使用/actor 不匹配/越级确认 → 断言拒绝 + 写审计;
- 语义类:基线未定时,测试只断言"指标可计算、留痕、门禁要求附运行标识"**不**断言 pass/fail基线定后补硬断言。
**待蒸馏**具体安全数值建议默认handoff token 15 分钟、下载凭证 5 分钟、安全操作冷却 24 小时——**待人类确认**)落 `架构-04 §12``后端-05 §4.8/§4.9`;语义类"校准时点+责任人"落 `专题-07 §3/§4`
## 8. 验收与 CI 门禁
- **覆盖登记**:每条确定性合同登记进覆盖 JSON接口门机械源可机械核对未登记者不计入自动化率。
- **防假绿**:遵循 [`.agents/rules/verification-and-anti-false-green.md`](../.agents/rules/verification-and-anti-false-green.md)——测试必须真驱动被测流程并观察行为,禁止只跑 typecheck/空断言冒充通过。
- **阻断规则**CI 中 L1L3 测试失败阻断合入L4 语义评测以"证据不足/退化"为失败信号,不以单次分数为失败信号。
- **语义门上线门禁**:任何语义质量门,要么持有 §5.2 范式的硬通过线,要么书面标注"只展示不阻断";二者皆无 → 测试侧拒绝背书,需求视为未闭合。

View File

@ -386,8 +386,9 @@ Muse 的 AI 能力通常不是单个智能体按钮,而是系统功能编排
- 用户手动创建或修正作品知识。
- 导入解析或全书解析结果先经过章节级确认;其产生的知识草稿仍必须再经过知识确认。
- 规划候选经过用户确认,并按规则沉淀为作品知识或叙事状态。
- 知识草稿达标自动确认:仅当下列四个条件**全部满足**时,系统才可自动把草稿写入局域知识库——① 草稿由用户自有正文产生;② 不含任何外部来源 lineage市场资产、授权知识、参考作品等③ 与既有知识无冲突;④ 置信度达到质量策略登记的阈值。任一条件不满足,草稿一律进入待确认队列,由用户确认后才入库。自动确认结果对用户可见、可撤回。
正文保存只表示用户文本落盘,进入正式正文和版本历史;它不自动表示相关内容可以沉淀为作品知识、设定、关系或事件事实。
正文保存只表示用户文本落盘,进入正式正文和版本历史;它不自动表示相关内容可以沉淀为作品知识、设定、关系或事件事实。带外部来源 lineage 的草稿即使用户改写,也不得借此洗白来源、改走自动确认。
知识草稿确认前必须校验来源快照。来源正文、规划项、候选文本或授权资产版本已变化时,草稿必须标记为已过期,不能确认入库。用户可以重新提取、手动修改后保存或忽略。
@ -508,7 +509,7 @@ Muse 的 AI 能力通常不是单个智能体按钮,而是系统功能编排
- 管理员配置 MetaSchema、系统级智能体、全局知识、权限、质量门控和市场治理规则。
- 普通用户写作、规划、选择智能体、绑定知识来源、确认候选和知识。
- AI 产出的候选文本、知识草稿、规划候选、风险标记都先进入 Shadow。
- 进入 Canonical 的唯一入口是用户确认,或用户自己的正文保存动作;正文保存不等于知识入库。
- 进入 Canonical 的入口是用户确认、用户自己的正文保存动作,以及 §6.4 定义的"知识草稿达标自动确认"(仅限自有正文、无外部来源、无冲突、置信度达标四条件全满足的窄口径);除此之外 AI、外部知识和市场资产不得直接写正式事实。正文保存不等于知识入库。
- Archive 记录已接受、已丢弃、已过期、失败、撤权和历史版本,不能和待确认内容混显示。
### 9.2 普通用户决策模型

View File

@ -47,6 +47,7 @@
- `专题-05-AI统一交互协议与外部AgentAdapter设计.md`
- `专题-06-元数据驱动的智能体架构.md`
- `专题-07-知识消费契约与质量闭环.md`
- `专题-08-自动化测试方案.md`
- dev 路线图(⚠️ `doc/dev/*` 规划未落地、从未创建;职责已由实际文档承担):
- 真实现状与目标差距 → [`docs/项目功能与进度总览.md`](../docs/项目功能与进度总览.md)
- 总体路线图 / 阶段 → [`docs/mvp/进度总账.md`](../docs/mvp/进度总账.md)
@ -201,6 +202,12 @@
- 回放评测:参考书=标准答案的知识策略离线评估(机制归 `专题-04` §10 框架,定义在本册)
- 长线进度消费语义:演变历程 {章,台阶,周期} 的规划/检测/写作三期消费
- 边界备注:参照作品面的浇铸位归 `专题-06` §6.4;输出侧质量维度仍归 `专题-04`;术语权威仍在 `架构-02`
- 测试可判定性(横切):主文档 `专题-08-自动化测试方案.md`owns 四个概念——
- 测试金字塔分层L1 数据不变式/状态机、L2 接口契约/事务/幂等、L3 前端交互/不丢稿、L4 AI 语义质量
- 确定性/语义分界判据:「能否不看正文含义、只比对结构与数值判定对错」+ 混合体处理纪律
- 语义评测方法论双盲评委、对照实验两臂对等Gate B 范式、回放评测n=1 不下结论
- 测试可判定性合同:每个功能要可测必须提供的判据;未提供视为需求未闭合
- 边界备注:不重定义状态机/Schema/API/质量维度,只引用各 owner具体质量维度仍归 `专题-04`,知识效用仍归 `专题-07`
- 状态机与约束:主文档 `架构-04-状态机与约束清单.md`
- 后端模块职责:主文档 `后端-02-工程结构与模块职责.md`
- 统一数据库表结构:主文档 `后端-04-统一数据库Schema-v1.md`

View File

@ -0,0 +1,44 @@
# 测试倒逼需求缺口跟踪2026-07-30
- 性质:短期任务文档。由"设计自动化测试方案"任务产生,用于跟踪测试倒逼出的需求缺口与蒸馏动作。**拍死并蒸馏回各 owner 分册后删除本文件**,结论性合同归 `design-docs/专题-08-自动化测试方案.md`
- 来源:通读 design-docs 全册提取可测合同时发现的不可判定/自相矛盾点。
- 测试方案 SoT[`design-docs/专题-08-自动化测试方案.md`](../../design-docs/专题-08-自动化测试方案.md)§6 可判定性合同、§7 已拍决策)。
## 一、已拍决策2026-07-30人类确认
| 决策 | 结论 | 测试合同归属 |
|---|---|---|
| G1 自动确认入口矛盾 | **收紧自动确认**:仅"自有正文+无外部来源+无冲突+置信度达标"四条件全满足才自动入库,其余进待确认队列;"唯一入口"措辞纳入"达标自动确认" | 专题-08 §7.1 |
| G4 运行时叙事质量门 | **补硬标准并阻断**:照 Gate B 范式给叙事三维定量表+双盲评委+通过线,不达标阻断/重写 | 专题-08 §7.2 |
| 阈值批处理 | **分类处理**:安全类(凭证 TTL/风险分级)现在拍死;语义类(知识质量/回放通过线/自动确认置信度)留回放首轮基线,须写明校准时点+责任人 | 专题-08 §7.3 |
## 二、缺口清单与蒸馏动作
状态:`已拍待蒸馏` = 决策已定、需改 owner 分册措辞;`待人类拍` = 仍需人类定具体数值/标准。
### 第一档:自相矛盾 / 状态机悬置
| # | 缺口 | 现状矛盾 | owner | 蒸馏动作 | 状态 |
|---|---|---|---|---|---|
| G1 | 自动确认 vs 唯一入口 | `产品-02 §6.4/§9.1` 言唯一入口=用户确认/保存(清单不含自动确认);`流程-02B §7` 允许达标自动入库 | `产品-02` | 改 `产品-02 §6.4/§9.1`:入口清单纳入"达标自动确认(四条件)",与 `流程-02B §7` 对齐 | **已蒸馏** |
| G2 | 计费状态机悬置 | `产品-02 §10.8` 要求 待结算/已结算/已返还/已补偿 四态;`流程-02A §10` 称"由后续 owner 承接",当前无状态可测 | `后端-04`/`后端-05` | 补计费 ledger 状态机与端点;未补前测试仅能断言 quota-adjustment 幂等+审计 | 待人类拍(是否本阶段做) |
| G3 | 改写"洗白"外部来源判据缺失 | "独立来源证明/原创确认"反复作前置条件,从无成立判据 | `架构-04 §6`/`产品-02 §6.4` | 定义"原创确认成立"的可验证条件;未定前测试断言"外部 lineage 不可被改写移除" | 待人类拍 |
### 第二档:阈值 / 标准缺失
| # | 缺口 | 现状 | owner | 蒸馏动作 | 状态 |
|---|---|---|---|---|---|
| G4 | 运行时叙事门无判定标准 | `专题-04 §4.2` 仅模糊词,无分值/阈值 | `专题-04 §4.2` | 照 §10.1 Gate B 体例补三维量表+双盲+通过线 | **已蒸馏** |
| G5 | 知识质量三性有指标无阈值 | 8 指标已命名,数值"留回放首轮基线" | `专题-07 §3` | 补"基线产生时点+校准责任人";基线定后补数值 | 已拍(留基线,待补时点/责任人) |
| G6 | 回放评测无通过线 | 三线只有"得分",无"多少分算可上线" | `专题-07 §4` | 补切断分(照 Gate B 范式)+ 校准时点 | 已拍(留基线,待补时点/责任人) |
| G7 | 自动确认置信度无定义 | 仅"超阈值",数值/设定者/可调性全无 | `产品-02 §6.4`/`专题-04` | 定置信度数值或留基线+责任人(随 G1 蒸馏一并处理) | 已拍(留基线) |
| G8 | 凭证/冷却 TTL 无数值 | handoff token、下载凭证"短期有效"、安全冷却期均无时长 | `架构-04 §12`/`后端-05 §4.8/§4.9` | 拍死数值(**建议默认待确认**handoff 15min / 下载凭证 5min / 安全冷却 24h | 已拍(安全类现在定,具体数值待人类确认) |
| G9 | 风险/冲突分级无标准 | "高风险禁静默一键确认",但等级/分级未定义 | `产品-02 §10.4`/`专题-04` | 定风险等级枚举与"可确认章节"判据 | 已拍(安全类现在定,具体分级待人类给) |
| G10 | 灰度发布无通过准则 | 系统智能体"高风险进灰度",成功/回退判定缺失 | `流程-02A §5`/`专题-04` | 定灰度通过/回退判据(可用对照实验范式) | 待人类拍 |
## 三、下一步
1. 人类确认 G8 三个 TTL 默认值、G9 风险分级枚举、G2/G3/G10 是否本阶段做。
2. Agent 按上表"蒸馏动作"改 owner 分册G1→产品-02、G4→专题-04、G8→架构-04/后端-05
3. 每条蒸馏完成后在 `专题-08 §7` 对应"待蒸馏"标记去除,覆盖 JSON 登记对应确定性合同。
4. 全部蒸馏完成 → 删除本文件。