{
  "scope": "Node-only deterministic model, motion lifecycle and storage lock stand-in checks",
  "started": "2026-09-08T15:11:15.515Z",
  "finished": "2026-09-08T15:11:35.837Z",
  "node": "v23.4.0",
  "modelSHA256": "67cbfdd695e7f3f1759db2d826fba03d6944842d865ca039e13d74d339abcf30",
  "motionSHA256": "85532a66a33c9433d118d81d7aa57013db654a2c1feafaf6cf5f9177116fc5e3",
  "storageSHA256": "ea568c852f02f8952558078a95ee06c9a55d28b8007990367dad81b83ec41fc8",
  "inputHashes": {
    "assets/model.js": "67cbfdd695e7f3f1759db2d826fba03d6944842d865ca039e13d74d339abcf30",
    "assets/motion.js": "85532a66a33c9433d118d81d7aa57013db654a2c1feafaf6cf5f9177116fc5e3",
    "assets/storage.js": "ea568c852f02f8952558078a95ee06c9a55d28b8007990367dad81b83ec41fc8",
    "tests/model.test.cjs": "7fda34b2e47a93ee0fc9f085a439ecc5eac0e40098b71ace550d395d032faf79",
    "tests/repair.test.cjs": "2b7cb9d3bf1ab0bf02bfc4538ba8139e75644e92288c4b1e76b2ad066358ee08",
    "tests/run.cjs": "c5ac5c09366928ee0207a33fcfcb9d5981491ff277f855ccde1b2c5c1d20f1c9"
  },
  "endingHashes": {
    "assets/model.js": "67cbfdd695e7f3f1759db2d826fba03d6944842d865ca039e13d74d339abcf30",
    "assets/motion.js": "85532a66a33c9433d118d81d7aa57013db654a2c1feafaf6cf5f9177116fc5e3",
    "assets/storage.js": "ea568c852f02f8952558078a95ee06c9a55d28b8007990367dad81b83ec41fc8",
    "tests/model.test.cjs": "7fda34b2e47a93ee0fc9f085a439ecc5eac0e40098b71ace550d395d032faf79",
    "tests/repair.test.cjs": "2b7cb9d3bf1ab0bf02bfc4538ba8139e75644e92288c4b1e76b2ad066358ee08",
    "tests/run.cjs": "c5ac5c09366928ee0207a33fcfcb9d5981491ff277f855ccde1b2c5c1d20f1c9"
  },
  "stableDuringRun": true,
  "passed": 95,
  "failed": 0,
  "total": 95,
  "acceptance": "not_design_ready",
  "notChecked": [
    "browser_dynamic_security_blocked",
    "visual",
    "native_popup",
    "system_ime",
    "chinese_voiceover",
    "real_extension",
    "feature_002_integration",
    "true_cross_window_concurrency",
    "native_web_locks"
  ],
  "results": [
    {
      "id": "R03-US1-A1",
      "name": "默认只显示待保存事实，不自动创建对象",
      "requirements": [
        "003-DR-01",
        "FR-001",
        "FR-002"
      ],
      "status": "passed",
      "durationMs": 1
    },
    {
      "id": "R03-US1-A2",
      "name": "视频来源不启动正文或知识处理",
      "requirements": [
        "003-DR-01",
        "003-DR-07",
        "FR-020"
      ],
      "status": "passed",
      "durationMs": 1
    },
    {
      "id": "R03-US1-A3",
      "name": "动画和提交不制造成功回执",
      "requirements": [
        "003-DR-05",
        "003-DR-09",
        "FR-008"
      ],
      "status": "passed",
      "durationMs": 1
    },
    {
      "id": "R03-US1-A4",
      "name": "可靠接收后收集箱恰好同一对象",
      "requirements": [
        "003-DR-05",
        "003-DR-12",
        "FR-008"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US1-A5",
      "name": "重复无新增不覆盖且不建空记录",
      "requirements": [
        "003-DR-06",
        "FR-009"
      ],
      "status": "passed",
      "durationMs": 1
    },
    {
      "id": "R03-US1-A6",
      "name": "仅链接保留限制与来源",
      "requirements": [
        "003-DR-07",
        "FR-010"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US1-A7",
      "name": "内部页不产生空对象",
      "requirements": [
        "003-DR-11",
        "FR-011"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US1-A8",
      "name": "离线公开内容入队而敏感内容不入队",
      "requirements": [
        "003-DR-08",
        "003-DR-11",
        "FR-013"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US1-A9",
      "name": "100 次触发与回执收敛同一身份",
      "requirements": [
        "003-DR-06",
        "003-DR-09",
        "FR-014"
      ],
      "status": "passed",
      "durationMs": 5
    },
    {
      "id": "R03-US1-A10",
      "name": "重建模型后仍打开同一对象",
      "requirements": [
        "003-DR-12",
        "FR-022"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US1-A11",
      "name": "7 天和 30 天观察不使意图到期",
      "requirements": [
        "003-DR-08",
        "003-DR-09",
        "FR-013"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US1-A12",
      "name": "入队写入失败不变成自动补发",
      "requirements": [
        "003-DR-08",
        "003-DR-09",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US1-A13",
      "name": "队列第 100 项允许，第 101 项拒绝",
      "requirements": [
        "003-DR-08",
        "FR-013"
      ],
      "status": "passed",
      "durationMs": 56
    },
    {
      "id": "R03-US1-A14",
      "name": "草稿跨关闭按来源恢复且不自动发送",
      "requirements": [
        "003-DR-02",
        "003-DR-10",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US1-A15",
      "name": "默认取消保留草稿且重连不发",
      "requirements": [
        "003-DR-09",
        "FR-016"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US2-A1",
      "name": "选区优先且仅链接显式清除采集内容",
      "requirements": [
        "003-DR-03",
        "FR-004"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US2-A2",
      "name": "元数据不覆盖用户标题与其他字段",
      "requirements": [
        "003-DR-02",
        "003-DR-05",
        "FR-005"
      ],
      "status": "passed",
      "durationMs": 1
    },
    {
      "id": "R03-US2-A3",
      "name": "只有确认安全图片才能进入载荷",
      "requirements": [
        "003-DR-04",
        "FR-006",
        "FR-007"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US2-A4",
      "name": "默认最小载荷无正文和隐式截图",
      "requirements": [
        "003-DR-01",
        "FR-003"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US2-A5",
      "name": "页面身份变化阻断并保留备注",
      "requirements": [
        "003-DR-10",
        "FR-021"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US2-A6",
      "name": "模型没有知识生成或重复编辑器入口",
      "requirements": [
        "003-DR-01",
        "FR-017",
        "FR-018",
        "FR-019",
        "FR-020"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US2-A7",
      "name": "新增选区和备注追加一条独立记录",
      "requirements": [
        "003-DR-06",
        "003-DR-12",
        "FR-009"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US2-A8",
      "name": "新意图追加而旧意图重试不追加",
      "requirements": [
        "003-DR-06",
        "003-DR-09",
        "FR-014"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US2-A9",
      "name": "已有对象不替代本次未知追加事实",
      "requirements": [
        "003-DR-06",
        "003-DR-09",
        "FR-008",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US2-A10",
      "name": "中文与组合表情计数、超限不截断",
      "requirements": [
        "003-DR-02",
        "003-DR-03",
        "FR-004",
        "FR-005",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 3
    },
    {
      "id": "R03-US2-A11",
      "name": "标签 trim 与英文同名去重，不做近义合并",
      "requirements": [
        "003-DR-02",
        "FR-005"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "R03-US2-A12",
      "name": "图片格式、数量以单图模型、尺寸和字节边界",
      "requirements": [
        "003-DR-04",
        "FR-006"
      ],
      "status": "passed",
      "durationMs": 3
    },
    {
      "id": "R03-US2-A13",
      "name": "未应用字段单独保留且已交付文字不重放",
      "requirements": [
        "003-DR-02",
        "003-DR-06",
        "FR-009",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 1
    },
    {
      "id": "LIMIT-URL",
      "name": "URL 16,000 字节等值允许，超 1 字节禁止",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 1
    },
    {
      "id": "LIMIT-note",
      "name": "文字边界 note",
      "requirements": [
        "FR-004",
        "FR-005"
      ],
      "status": "passed",
      "durationMs": 2
    },
    {
      "id": "LIMIT-selection",
      "name": "文字边界 selection",
      "requirements": [
        "FR-004",
        "FR-005"
      ],
      "status": "passed",
      "durationMs": 10
    },
    {
      "id": "LIMIT-TAGS",
      "name": "标签数量与长度的全部等值/超限",
      "requirements": [
        "FR-005"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "LIMIT-ITEM",
      "name": "真实序列化整条 5 MB 允许，超 1 字节拒绝",
      "requirements": [
        "FR-013",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 111
    },
    {
      "id": "LIMIT-QUEUE-TOTAL",
      "name": "真实载荷总量 100 MB 允许，新项超量拒绝且旧项保持",
      "requirements": [
        "FR-013",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 9225
    },
    {
      "id": "LIMIT-DRAFT-COUNT",
      "name": "本机草稿 20 份允许，21 份不淘汰旧稿",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 3
    },
    {
      "id": "LIMIT-DRAFT-TOTAL",
      "name": "真实草稿 20 MB 等值允许，超量不覆盖",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 644
    },
    {
      "id": "DRAFT-UPDATE-FAIL",
      "name": "更新草稿失败保留最后可靠版本",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "DRAFT-SOURCE-CONFLICT",
      "name": "新捕获不覆盖旧草稿且异来源不串稿",
      "requirements": [
        "003-DR-10",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "DRAFT-CONTEXT",
      "name": "恢复同 URL 的不同上下文要求核对",
      "requirements": [
        "003-DR-10"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "CANCEL-SAVE-FAIL",
      "name": "取消时草稿写入失败保留原队列载荷",
      "requirements": [
        "003-DR-09",
        "FR-016"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "CANCEL-DISCARD",
      "name": "放弃不删除对象与旧记录并清掉本次未送达输入",
      "requirements": [
        "003-DR-09",
        "FR-016",
        "FR-017"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "CANCEL-DELIVERED",
      "name": "已送达先发生时取消不删除事实",
      "requirements": [
        "003-DR-09",
        "FR-016"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "CANCEL-UNKNOWN",
      "name": "发送中取消须核对，未核对不伪报取消",
      "requirements": [
        "003-DR-09",
        "FR-016"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "RECEIPT-LOST",
      "name": "接收成功回执丢失后核对不重复追加",
      "requirements": [
        "FR-008",
        "FR-014"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "RECEIVER-FAIL",
      "name": "接收写入失败无成功且同意图可重试",
      "requirements": [
        "FR-008",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "PERSIST-DENIED",
      "name": "拒绝存储时输入可用但不宣称可靠保存",
      "requirements": [
        "FR-008",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "URL-CONSERVATIVE",
      "name": "等价仅忽略审核跟踪与导航片段",
      "requirements": [
        "FR-009"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "SECURITY-ZERO",
      "name": "敏感与不明输入不进入快照或存储",
      "requirements": [
        "003-DR-11",
        "FR-021"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "SAFETY-MALFORMED",
      "name": "不良片段编码不会使界面崩溃",
      "requirements": [
        "003-DR-11"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "SELECTION-SAFE",
      "name": "不安全选区不保留原文",
      "requirements": [
        "FR-007",
        "FR-021"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "TARGET-INVALID",
      "name": "目标失效不静默回根位置",
      "requirements": [
        "003-DR-02",
        "FR-005"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "TARGET-AFTER",
      "name": "已保存但整理失败保留对象并允许原对象改选",
      "requirements": [
        "003-DR-05",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "OBJECT-QUARANTINE",
      "name": "异常对象原位置保留，不创建空白替代",
      "requirements": [
        "003-DR-06",
        "003-DR-12"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "METADATA-LATE",
      "name": "旧元数据响应不污染另一来源输入",
      "requirements": [
        "003-M08",
        "FR-005"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "DESKTOP-FAIL",
      "name": "桌面打开失败保留保存事实",
      "requirements": [
        "003-DR-12",
        "FR-022"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "MULTI-MODEL",
      "name": "两个模型串行共享持久化去重与同意图记录",
      "requirements": [
        "003-DR-06",
        "FR-014"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "ONLY-OTHER-FIELDS",
      "name": "只有不应用字段不创建空采集记录",
      "requirements": [
        "FR-009"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "RESIDUE-FAIL",
      "name": "部分成功时草稿失败仍保留未应用输入",
      "requirements": [
        "FR-009",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "003-M01",
      "name": "进入、退出、快速反向、过时回调与减少动效终态",
      "requirements": [
        "003-M01",
        "003-DR-13",
        "003-DR-14"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "003-M02",
      "name": "进入、退出、快速反向、过时回调与减少动效终态",
      "requirements": [
        "003-M02",
        "003-DR-13",
        "003-DR-14"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "003-M03",
      "name": "进入、退出、快速反向、过时回调与减少动效终态",
      "requirements": [
        "003-M03",
        "003-DR-13",
        "003-DR-14"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "003-M04",
      "name": "进入、退出、快速反向、过时回调与减少动效终态",
      "requirements": [
        "003-M04",
        "003-DR-13",
        "003-DR-14"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "003-M05",
      "name": "进入、退出、快速反向、过时回调与减少动效终态",
      "requirements": [
        "003-M05",
        "003-DR-13",
        "003-DR-14"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "003-M06",
      "name": "进入、退出、快速反向、过时回调与减少动效终态",
      "requirements": [
        "003-M06",
        "003-DR-13",
        "003-DR-14"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "003-M07",
      "name": "进入、退出、快速反向、过时回调与减少动效终态",
      "requirements": [
        "003-M07",
        "003-DR-13",
        "003-DR-14"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "003-M08",
      "name": "进入、退出、快速反向、过时回调与减少动效终态",
      "requirements": [
        "003-M08",
        "003-DR-13",
        "003-DR-14"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "RANDOM-REPLAY",
      "name": "确定性事件序列的对象与记录不变量",
      "requirements": [
        "FR-009",
        "FR-014",
        "FR-016"
      ],
      "status": "passed",
      "durationMs": 286
    },
    {
      "id": "QUEUE-ONE-BYTE",
      "name": "队列总量精确超 1 字节且单项合法",
      "requirements": [
        "FR-013"
      ],
      "status": "passed",
      "durationMs": 9277
    },
    {
      "id": "DRAFT-ONE-BYTE",
      "name": "草稿总量精确超 1 字节且旧稿不变",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 562
    },
    {
      "id": "DRAFT-SINGLE-ONE-BYTE",
      "name": "草稿单份超 1 字节不替换可靠版",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 106
    },
    {
      "id": "CANCEL-CURRENT-ERASE",
      "name": "明确放弃同时清掉会话内本次内容",
      "requirements": [
        "FR-016"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "DIRTY-SWITCH-FAIL",
      "name": "草稿失败不使切换来源清掉唯一会话副本",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "MOTION-ADAPTER-REDUCE",
      "name": "实际动画适配器切换减少动效完成退出与卸载",
      "requirements": [
        "003-M01",
        "003-M02",
        "003-M06",
        "003-DR-14"
      ],
      "status": "passed",
      "durationMs": 1
    },
    {
      "id": "EDIT-AFTER-RECEIPT",
      "name": "成功后主动新输入进入独立意图，不误复用旧回执",
      "requirements": [
        "FR-009",
        "FR-014"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "SELECT-INTENT-SAFE",
      "name": "打开其他待发送项不清掉未可靠保留输入",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "CANCEL-DRAFT-RESTORE-GATE",
      "name": "取消保留后的草稿须恢复核对，不能被空编辑器覆盖",
      "requirements": [
        "FR-015",
        "FR-016"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-HASH-IDENTITY",
      "name": "内容路由与未核验片段不合并，导航证据仅适用于完整 URL",
      "requirements": [
        "FR-009",
        "003-DR-06"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-FRAGMENT-CREDENTIALS",
      "name": "查询和片段的敏感键、大小写、路由和嵌套编码全部阻断",
      "requirements": [
        "FR-021",
        "003-DR-11"
      ],
      "status": "passed",
      "durationMs": 1
    },
    {
      "id": "REPAIR-INTERLEAVED-RETRY",
      "name": "交错写入明确拒绝后保留输入，重试得到独立 ID 并保留两项",
      "requirements": [
        "FR-013",
        "FR-014",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-FAILED-WRITER-RELEASE",
      "name": "写入失败释放模型锁，重试不继承虚假 ID 或状态",
      "requirements": [
        "FR-014",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-READ-FAIL-CLOSED",
      "name": "读失败即拒绝写入，不用缓存覆盖其他可靠数据",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-DRAFT-CREATION",
      "name": "同来源首次草稿冲突不覆盖可靠副本，也不清当前输入",
      "requirements": [
        "FR-015",
        "003-DR-02",
        "003-DR-10"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-DRAFT-STALE-UPDATE",
      "name": "恢复后持有旧版本也不能覆盖另一次已确认更新",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-DRAFT-HANDOFF",
      "name": "草稿版本变化后不能入队并删除另一实例草稿",
      "requirements": [
        "FR-015",
        "FR-013"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-DRAFT-REVIEW-RACE",
      "name": "确认面板的旧版本不得恢复或删除后到的新版本",
      "requirements": [
        "FR-015",
        "003-DR-10"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-DRAFT-CONFLICT-CHOICES",
      "name": "明确恢复或删除已核对版本后才能继续当前输入",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-DRAFT-DELETED-VERSION",
      "name": "已删除或重新创建的草稿不能被旧版本编辑器复活覆盖",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-DRAFT-LEGACY",
      "name": "旧格式草稿显式恢复后仍受版本核对保护",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-RESIDUE-OWNERSHIP",
      "name": "重复确认回执不把另一实例草稿的版本授予旧残留内容",
      "requirements": [
        "FR-009",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-NAVIGATION-EVIDENCE",
      "name": "明确核对的导航证据只保留允许字段且跨草稿恢复保持来源身份",
      "requirements": [
        "FR-009",
        "FR-015",
        "FR-021"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-WRITE-GATE",
      "name": "只有获得独占门禁的适配器可以写；拒绝方不覆盖确认项",
      "requirements": [
        "FR-013",
        "FR-014",
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 1
    },
    {
      "id": "REPAIR-WRITE-GATE-UNAVAILABLE",
      "name": "无门禁 API 时显式只读，不退回无保护持久化",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-WRITE-GATE-RELEASE-RACE",
      "name": "门禁等待期关闭时迟到授予不能恢复写入",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-WRITE-GATE-REJECT",
      "name": "锁请求抛错或拒绝时保留只读并允许明确重试",
      "requirements": [
        "FR-015"
      ],
      "status": "passed",
      "durationMs": 0
    },
    {
      "id": "REPAIR-WRITE-GATE-SCOPE",
      "name": "持有门禁也只能写当前原型两项命名空间",
      "requirements": [
        "FR-021"
      ],
      "status": "passed",
      "durationMs": 0
    }
  ]
}
