D

质量管控机制

画得对不对,靠机制不靠运气。

工程级深度教学产品的最大死因是讲错。 RuntimeScope 用 5 层质量管控机制兜底,L1-L3 全自动跑在 CI, L4-L5 是发布门 + 持续纠错。

L1

状态机属性测试

自动 · 每次 commit

每个 demo 的状态机都有不变式 (例:MESI 任意时刻至多 1 个 Modified、流水线退役顺序 = 程序顺序)。Vitest + fast-check 用 100-200 次随机输入连续 fuzz,违反就崩。当前 68 个 invariant 全部通过。

位置:docs/qa.md L1, tests/invariants/*.test.ts

L2

模拟器 diff

自动 · 每个 demo 完成

我们的可视化模拟器输出必须与 Spike (RISC-V 官方参考实现) 对齐。Spike 离线跑 trace,存仓库 fixture,CI 逐 cycle 对比。当前 Ch01 fixture 已就位,等 Spike 接通后切换为真 L2 diff。

位置:scripts/qa/sim-diff.mjs, tests/fixtures/golden/*.trace.json

L3

LLM 事实核 (Doubao)

自动 · 每章定稿

用 docs/sources.md 引用台账作 ground truth,Doubao 1.5 Pro 逐句审查章节内容,标注 ❌ / ⚠️ / 🟡 / ✅。任何 ❌ 阻塞 PR。复用 InkFlow 的审稿管线。

位置:scripts/qa/fact-check.mjs, scripts/qa/prompts/fact-check.txt

L4

同行试读

人工 · 每章发布前

每章 3-5 名 reviewer:计算机系学生、性能工程师、文字编辑、外行各 1 名。事实错误必修,可改进项逐条回应。L1-L3 机器抓不到的'听起来对但读者不懂'就在这一层暴露。

位置:docs/review-process.md

L5

公开 errata + 持续纠错

持续

发布后接收读者上报。承诺经验证的错误 24 小时内在 /errata 公开列出,7 天内修复原章节。出现高频错误模式 → 反推 L1 invariant 漏 / L3 prompt 漏,补回去。

位置:src/app/errata, docs/errata.md, .github/ISSUE_TEMPLATE/errata.yml

当前状态

  • ✅ L1:68 个状态机 invariant 全部通过
  • ⚠️ L2:Ch01 fixture 就位,等 Spike 接通后变成真 L2 diff
  • ⚠️ L3:脚本骨架就绪 + prompt 模板就绪,等接 Doubao API key
  • 📝 L4:流程文档化,等每章发布前启动
  • 📝 L5:/errata 页面就绪 + Issue 模板就绪