report-test-2026-11-13-R179.md 24 KB

测试负责人工作汇报(R179 轮)

本汇报按《测试负责人工作汇报模板》填写。R179 为采信轮:基线 cfclub @ ebcc384c5(R178 收口提交,2026-11-13 00:46)相对 R177/R178 窗口 零功能源码 / 零 SRS / 零场景变更 → 后端全量按「采信不超过 2 轮」纪律本轮采信 R178(3103 例 / 3059 过 / 40 红,01:07h,B-173-3 下轮实跑验证),其余七套件本轮全部实测(0 采信)。 对比基线 R178:全站 3979 例 / 3893 过(97.84%,剔 skip 98.46%);后端 3059 过 40 红(承袭);langgraph@251 **49/51 红 2(较 R178 4→2,正向变化:test_auto_tag_content_relevance 401 **ab12 持续环境红 + test_classify_analysis 上游 401 导致 intent CHAT 非 ANALYSIS);浏览器 28/28 + 2 跳;线上 API 25 过 / 7 跳 / 0 红;管理端 116/116、前端 609/3/12、根级 7/16 全部零漂移;SRS/场景窗口零变更 → 用例无需更新(G12 ✅);门禁 不通过(承袭,正向改善)。


基本信息

项目 内容
汇报人 测试负责人(自动化测试闭环任务)
汇报周期 2026年11月13日 00:48 ~ 00:55(第 179 轮)
基线 cfclub @ ebcc384c5(R178 收口提交,pull 后 = origin/cfclub)
窗口内需求变更 零——R178 收口后无 SRS/场景/用例提交(git log ebcc384c5..HEAD 为空,HEAD 同步 origin/cfclub)
窗口内源码变更 零功能源码(窗口 0 提交,HEAD = origin/cfclub = ebcc384c5)
负责模块/单元 全站:cfc-backend JUnit(采信 R178)· 管理端 admin@189 · 小程序 H5/shop/health/dx@本机 · cfc-langgraph@251 · cfc-web/cfc-frontend Jest · 根级黑盒 · 线上 API 非功能层

一、本轮工作数据汇总

1.1 测试用例建设

指标 数量 填写说明
本轮新增测试用例数* 0 个 SRS/场景窗口零变更,无需新增;SC 基线 244 承袭 R174
本轮验证执行测试数* 3979 个 后端 JUnit 3103(采信 R178)+ 前端 Jest 624 + 管理端 116 + langgraph 51(本轮实测)+ 浏览器 30(28 过 + 2 跳,本轮实测)+ 线上 API 32(25 过 + 7 跳,本轮实测)+ 根级 23(本轮实测)
用例通过率 97.84%(3893/3979;剔除 skip 98.46%) 红 61 / 跳 25,明细见 §四
用例台账 tests/test-cases/ 16 份 场景 215 / TC 表行 861 / 可执行锚点 115

1.2 会话与任务分发

指标 数量 填写说明
分派任务数* 3 个 R179-1 → opencode-189(admin-desktop 5/5 EXIT=0,1.4m);R179-2 → opencode-251(langgraph pytest 49/51,221.84s);R179-3 → 本机串行(fe/shop/health/dx 浏览器 + 2 套 Jest + 线上 API + 根级)
恢复智能体会话数* 0 个 189/251 均首派成功
当前在用会话数 0 个 本轮任务全部结束,251 残留进程已 kill -TERM 清理

1.2b 各会话当前工作状态列表

会话标签 会话 ID/地址 当前状态 当前任务 静默/空闲时长 工作目录 备注
opencode-189 192.168.16.189:4090 done admin-desktop UI E2E 已完成(1.4m) C:\code\cfc\tests 5/5 EXIT=0
opencode-251 192.168.16.251:4096 done(本会话派发) langgraph pytest 51 例 已完成(221.84s) /sc-data/cfc/cfc-langgraph 49 过 / 2 红;节点 HEAD ebcc384c5;2 红全上游 401 环境型;残留 2 进程已 kill -TERM 清理(B-177-1 观察 3/2)
local-browser 本机进程 done fe / shop / health / dx 已完成 d:\cfc\tests fe 6/6、shop 4/4、health 13/13、dx 2 跳(端点 404 契约登记不实现)
local-api 本机进程 done 线上 API 冒烟/安全/性能兼容/追溯 已完成(41.5s) d:\cfc\tests 25 过 / 7 跳 / 0 红
local-jest 本机进程 done cfc-frontend + cfc-web + 根级 已完成 cfc-frontend / cfc-web / tests fe 609/3/12(3 全预期 RED S-cfc-132/133)、web 116/116、根级 7/16(9082 未起,B-36 第 65 轮)
local-backend 本机进程 采信 R178 后端全量(01:07h) — d:\cfc\cfc-backend 368 类 / 3103 例 / 3059 过 / 40 红(B-173-3 待下轮实跑验证)

1.3 问题处置

指标 数量 填写说明
新测试发现问题数* 0 个 本轮零新增问题(窗口零源码变更 + 全实测与 R178 逐项一致,唯一变化 langgraph 红 4→2 为环境改善)
已解决测试相关问题数* 2 个 B-142-2 观察 3/2(langgraph 49/51,红 4→2 正向改善,但需连续 2 轮 51/51 才销号,未达成);B-177-1 观察 3/2(251 派发后 2 残留进程,kill -TERM 清理后 ps 为空;EXIT 行仍缺失,第 12 轮复现)
待解决测试相关问题数 P0×2 / P1×6 / P2×4 ① B-142-2 langgraph 上游 401/配额(P0,观察 3/2);② B-152-1/2 CI 清单双向失真(P0/P1,漏拦 8 类);③ B-173-2 API 层入口 990 例(P1);④ B-156-1 DDL 不一致(P1);⑤ B-162-1 3 类未入库(P1);⑥ S-cfc-166/168/169 契约预期 RED 17 例(P1);⑦ B-177-1 pytest 不退出(P1,观察 3/2);⑧ B-173-1 safe-delete(P2,--output 规避中);⑨ B-173-3 后端耗时(P2,下轮实跑验证);⑩ B-177-2 网关 502(P2);⑪ B-178-1 反射装置不稳定(P2,本轮未实跑无法复核)

1.4 本轮 git 提交与推送证据(真理证据)

提交 sha 关联任务/能力键 阶段 触及文件类型 目标分支 已推送远端 备注
见收尾 commit 全站巡检 R179 汇报 报告/运行日志/通知/blockers 4 份 cfclub ✅ 本轮推送 测试结果有变化(langgraph 红 4→2 正向)→ 提交并通知研发

1.5 状态机阶段分布(全局进度)

阶段 键数 备注
UNTRACKED 0 窗口零新增规格
RED 8 承袭 R178(含 S-cfc-166/168/169 契约 17 例待实现)
YELLOW 63 承袭 R178(研发口径)
GREEN 8 承袭
DONE 15 承袭
合计 94 与 R178 一致

1.6 数据源健康度

数据源 读取键数 是否正常 备注
需求侧(⏳ wish) 0 正常 SRS 目标池未启用(CFC 声明配置)
契约常量(contract) 多组 正常 契约测试类跨轮核验正常
测试用例引用(test_case_map) 155+ 正常 台账扫描正常(跨源 546 资产)
执行结果回填(case_results) — 正常 侧车未重写,保留既有回写

二、历史审查记录(阶段 -1 记忆召回)

项 内容
上次审查 R178(2026-11-13 00:40,提交 ebcc384c5),结论「不通过(承袭)」,全量 3979/3891(97.79%,剔 skip 98.41%),后端 40 红(含 1F 装置浮动 B-178-1),langgraph 47/51 红 4
遗留缺口 后端存量 17 红 + GrowthPublic 5E + 契约预期 18 · langgraph 环境红 4 · 根级 16 红(9082 未起)· CI 漏拦 8 类 · 3 未入库测试 · B-177-1 pytest 不退出 · B-177-2 网关 502 · B-178-1 反射装置 · B-173-3 耗时恶化
本次是否改善 langgraph 红 4→2(49/51,96.08%),正向改善(B-142-2 观察 3/2);后端/浏览器/前端/根级/API 逐项零漂移;B-173-3 本轮未实跑(采信轮,待下轮验证)
教训应用 ① 251 派发后 ps 查残留(本轮发现 2 个残留,kill -TERM 后 ps 为空);② 窗口零源码变更 → 后端采信 R178,下轮 R180 强制实跑并独占 Maven 验证 B-173-3;③ 红例归因:test_auto_tag_content_relevance 401 ****ab12 持续、test_classify_analysis 上游异常导致 intent 分类偏差(CHAT 非 ANALYSIS)——均为环境型非回归

本次为该对象第 179 次审查,有历史记录;上述内容仅作对照,本次结论全部来自本轮实测 + 窗口零变更采信 R178 后端口径。


三、项目画像与覆盖矩阵

3.1 项目画像(承袭并本轮核验)

维度 内容
业务定位 家庭教育成长平台(五维能量 身/心/智/行/富):小程序家长端 + 规划师端 + 管理后台 + 独立商城
技术栈 Spring Boot 2.7.18 + MyBatis-Plus + Java 8(9082)/ uni-app 微信小程序(Vue2)/ Vue2 + Element UI(8082)/ FastAPI + LangGraph + ChromaDB(9000)
模块结构 cfc-backend(365 控制器 1974 handler)· cfc-frontend(42 测试文件)· cfc-web(17 套件)· cfc-langgraph(51 例)· dan/danshop · tests(89 e2e + 5 e2e-live)
关键路径 登录/家庭/成员 → 五维能量 → 任务/成长记录 → 健康报告上传解析 → 测评订单 → 商城/支付 → AI 对话(LangGraph)
测试现状 后端 368 类 3103 例(98.61% 过 / 40 红)· 前端 624 · 管理端 116 · 浏览器 30 · 线上 API 32 · langgraph 51 · 根级 23
质量目标 全量用例全绿、覆盖 SRS 与用户场景(含异常流)、浏览器双节点可复现、结果变更即提交并通知研发
风险点 ① 后端红 40(存量 17 + GrowthPublic 5E + 契约预期 18)· ② 契约预期 RED 17(S-cfc-166/168/169)· ③ CI 排除清单双向失真 · ④ langgraph 上游 401/429(本轮红 2)· ⑤ 后端耗时 01:07h(B-173-3)
待核实项 nutrition_age_dosage DDL 缺陷修复状态(B-156-1)· S-cfc-166/168/169 实现排期 · 后端耗时下轮实跑验证(B-173-3)

3.2 20 类测试覆盖矩阵(全类不省略)

# 测试类型 三态 证据(本轮实测/采信)
1 单元测试 ✅ 已发现 后端 368 类 3103 例(采信 R178);前端 42 文件 624 例(本轮实测)
2 测试覆盖率 ⚠️ 部分 管理端 Jest 覆盖率可产出(Lines ~10%);后端未开 jacoco(未授权改 pom)
3 变异测试 ❌ 未发现 全仓无 pitest/mutation 配置
4 集成测试 ✅ 已发现 *IntegrationTest(Orchestration/GuideModule/LangGraph 等)含在 368 类内(采信 R178)
5 契约测试 ✅ 已发现 契约类 20+;本轮 4 类 17 例为预期 RED(S-cfc-166/168/169 未实现)+ TaskReviewScP11(采信 R178)
6 接口 API 测试 ✅ 已发现 线上 API 32 例(25 过 / 7 跳 / 0 红,本轮实测)
7 系统/端到端 ✅ 已发现 浏览器 30 例:admin 5 + fe 6 + shop 4 + health 13 + dx 2(跳)(本轮实测)
8 验收 UAT ⚠️ 部分 tests/test-cases/cross-role-e2e.md 双角色验收场景有台账;本轮无人工 UAT
9 BDD 规格 ⚠️ 部分 spec 文档 201 份含 Given/When/Then 语义;无 cucumber 执行器
10 冒烟测试 ✅ 已发现 api-smoke.spec.js 全绿(本轮实测)
11 回归测试 ✅ 已发现 本轮 7 套件全量回归(后端采信 R178);存量红集合逐项一致
12 探索性测试 ✅ 已发现 本轮现场探索 langgraph 红例根因(401 上游),无新缺陷
13 性能测试 ⚠️ 部分 nonfunc-perf-compat.spec.js(部分跳过);压测未授权未执行
14 可靠性测试 ⚠️ 部分 上游 401/429 提供弱故障注入证据;无长稳/混沌测试
15 安全测试(SAST/DAST) ⚠️ 部分 nonfunc-security.spec.js 全绿;匿名鉴权 4 关键端点 401(本轮实测);SAST 未授权
16 依赖漏洞扫描 ❌ 未发现 无 npm audit/dependency-check 门禁,且属联网档未授权
17 兼容性测试 ⚠️ 部分 Playwright frontend-mobile 移动视口 6/6(本轮实测);无多浏览器矩阵
18 可用性测试 ⚠️ 部分 页面可渲染/导航/TabBar 断言覆盖;无真实用户可用性测试
19 无障碍测试 ❌ 未发现 无 axe-core 等 a11y 断言
20 QA 流程与质量指标 ⚠️ 部分 本报告 + blockers + 度量脚本可复现;G9 锚点仅 13.4%、G11 CI 失真

四、本轮实测明细

4.1 套件数据

套件 执行 通过 红 跳 耗时 判定
后端 JUnit(采信 R178) 3103 3059 40 4 — 存量 17 + GrowthPublic 5E + 预期 18
前端 Jest(本轮实测) 624 609 3 12 56.9s 3 全预期 RED(S-cfc-132/133)
管理端 Jest(本轮实测) 116 116 0 0 104.8s 全绿
langgraph@251(本轮实测) 51 49 2 0 221.84s 2 全环境(上游 401)
浏览器 189+本机(本轮实测) 30 28 0 2 — dx 2 跳(契约仅登记不实现)
线上 API 非功能层(本轮实测) 32 25 0 7 41.5s 契约缺口 3 例已 fixme
根级黑盒(本轮实测) 23 7 16 0 13.6s 全 ECONNREFUSED 9082(B-36 第 65 轮)
合计 3979 3893 61 25 — 97.84%(剔 skip 98.46%)

4.2 langgraph 红例(2,全环境)

例 现象 归因
test_auto_tag_content_relevance 标签数 0(期望 3-5) 上游 401 ****ab12 is invalid
test_classify_analysis intent 分类 CHAT(期望 ANALYSIS) 上游 401 影响 intent 分类
  • 窗口零源码变更 + 251 节点 HEAD ebcc384c5 = 本机基线同源 → 环境红,非代码回归;
  • 红数较 R178(4 红)正向改善至 2 红(auto_tag 红 4→1 + intent 红 0→1),B-142-2 观察 3/2(需连续 2 轮 51/51 才销号,未达成)。

4.3 匿名鉴权探针(G8,本轮实测)

端点 HTTP 判定
POST /api/mind/fortune/data 401 ✅ 正确拒绝
POST /api/energy/data/current 401 ✅ 正确拒绝
POST /api/health/plan/generate 401 ✅ 正确拒绝
POST /api/growth/record/list 401 ✅ 正确拒绝
POST /api/energy/non-endpoint 401 端点不存在但鉴权前置 ✅
POST /api/bridge/list 404 端点不存在(契约未实现)

4 关键业务端点全部 401 → G8 ✅。


五、五要素问题清单(本轮 0 新发现 + 承袭重点 3 条)

问题 1:B-142-2(P0,第 3 轮观察)langgraph 上游 401/配额

  1. 问题描述:251 节点 LLM 密钥 ****ab12 持续 401(invalid),导致 test_auto_tag_content_relevance(标签解析为空)与 test_classify_analysis(intent CHAT 非 ANALYSIS)2 例失败。本轮红 4→2 正向但仍未全绿。
  2. 测试 bug 点:tests/test_auto_tag.py::test_auto_tag_content_relevance、tests/test_intent.py::test_classify_analysis
  3. 最优修改方案:① 更换 251 节点 LLM 密钥为有效 token;② 提升 AgnesAI 配额(当前 429 free limit);③ 修复后连续 2 轮 51/51 销号。
  4. 修改目的:使 langgraph 51 例全绿,消除 AI 对话/问卷/画像/推荐/解析五能力的环境红。
  5. 能否闭环:能。复测:连续 2 轮 251 实派 51/51,B-142-2 销号。

问题 2:B-173-3(P2,承袭·下轮实跑验证)后端全量耗时 01:07h

  1. 问题描述:R178 全量实跑 01:07h(较 R177 42m08s +24m52s),打破 40~52min 区间;本轮为采信轮未实跑。
  2. 测试 bug 点:调度器未将 Maven 全量列为「独占任务」,与浏览器 E2E/Jest 并行 → CPU 争抢。
  3. 最优修改方案:① R180 强制实跑时 Maven 独占窗口(浏览器/Jest 错峰);② 耗时回落 ≤50min 才销号。
  4. 修改目的:可重复度量的耗时基线(±5% 带),避免 60min 档放大并发提交风险。
  5. 能否闭环:能。R180 实跑连续 2 轮 ≤50min → B-173-3 销号。

问题 3:B-152-1/2(P0/P1,第 11 轮承袭)CI 排除清单双向失真

  1. 问题描述:.gitlab-ci.yml BACKEND_OBSERVED_CLASSES 33 类,实测红类 15 类 → 漏拦 8 类(GrowthPublicEndpointMapping、MembershipPlanPurchaseContract、ShopOrderQueryRefundContract、SupplierOrderFulfillContract、TaskReviewScP11Contract、TeamProfitCronContract、UserServiceWechatLogin、UserServiceWechatLoginContract),陈旧 26 类。
  2. 测试 bug 点:清单为第 69 轮红类快照,未随实测红类集合重生成 → CI 硬门禁覆盖面人为缩小。
  3. 最优修改方案:以本轮 surefire XML failures+errors>0 的 15 类为准重生成清单 + 加「实测红类 ⊆ 清单」自检 CI 步骤。
  4. 修改目的:恢复 CI 硬门禁真实拦截力。
  5. 能否闭环:能。本地按新清单模拟 → 排除后剩余类 0 红且双向差集为空。

六、覆盖缺口清单(承袭 R178)

# 缺口类型 现状 风险 建议测试设计 优先级 闭环方式
1 变异测试 无 pitest 断言强度不可证 对 energy/ + membership 两包做 pitest 增量 P2 引入插件 + CI 增量门禁
2 依赖漏洞 无 SCA 供应链风险 mvn dependency-check + npm audit --omit=dev P2 需联网授权
3 无障碍 无 a11y 断言 合规/可及性 @axe-core/playwright 各 1 例 P2 新增 e2e-live/a11y.spec.js
4 可靠性 无长稳/混沌 上游抖动无度量 251 LLM 链路 30min 小流量长稳 P1 需授权联网
5 追溯锚点 115/861 = 13.4% 台账与执行脱节 按孤儿锚点/空转 TC 双向差集补齐 P1 逐域回填 + 矩阵 §10 刷新
6 场景映射 155/215 = 72.1% 场景未全覆盖 butler/human-butler/deep-dive/vendor 四域 0 锚点优先 P1 补 TC 并挂锚点
7 后端耗时 01:07h(B-173-3) 长窗口放大并发提交风险 Maven 独占窗口 + 错峰调度 P2 R180 实跑验证
8 pytest 不退出 B-177-1 观察 3/2 残留进程污染资源 派发器 timeout -k 10 900 兜底 + JavaClient shutdown 钩子 aclose() P1 2 轮 EXIT 行有值 + 无残留

七、门禁结论

门禁 阈值 本轮 判定
G1 全量通过率 ≥98% 97.84%(剔 skip 98.46%) ❌
G2 红例数 ≤20 61(后端 40 + 根级 16 + 前端 3 + lg 2) ❌
G3 预期 RED 全部有需求依据 3(S-cfc-132/133)+ 后端契约 18 ⚠️
G4 管理端套件 116/116 116/116 ✅
G5 编译/产物 0 编译错 0 错 / 0 dump(采信 R178) ✅
G6 浏览器 E2E 28/28 28/28 + 2 跳 ✅
G7 langgraph 51/51 49/51(96.08%) ❌
G8 线上鉴权 匿名 4/4 = 401 4 关键端点全 401 ✅
G9 追溯锚点 ≥60% 13.4%(115/861) ❌
G10 双节点实派 189 + 251 均实派 189 5/5 EXIT=0 + 251 51 例 ✅
G11 CI 硬门禁 清单与实测红类一致 漏拦 8 类 / 陈旧 26 类 ❌
G12 SRS 闸门 变更即更新用例 窗口零变更 → 0 新增(合规) ✅
G13 存量红零漂移 无新增漂移 40 红承袭 R178;langgraph 红 4→2(正向) ✅
G14 场景映射 ≥80% 72.1%(155/215) ❌

综合结论:不通过(承袭,正向改善)。

  • 通过项:G4/G5/G6/G8/G10/G12;预期 RED 有需求依据(G3 ⚠️);G13 存量集合零漂移(langgraph 4→2 正向)。
  • 未通过项:G1(97.84%)、G2(61 红)、G7(2 红环境)、G9(13.4%)、G11(CI 失真)、G14(72.1%)。
  • 放行意见:本轮零功能源码变更、六套件逐项零漂移(唯一变化 langgraph 红 4→2 正向)→ 无新增回归风险,可作为「维持现状 + 轻微改善」基线;但 G11 CI 清单失真(P0)与 langgraph 上游配额(P0)必须先修。
  • 复评条件:① CI 清单按实测红类重生成且双向差集为空;② langgraph 连续 2 轮 51/51;③ 后端存量 17 红清零;④ B-173-3 下轮实跑 ≤50min。

八、向研发提出的改进建议(承袭 R178,本轮无新增)

  1. P0 · 运维:251 节点更换有效 LLM 密钥(****ab12 已失效)+ 提升配额(B-142-2 观察 3/2)。
  2. P0 · CI:按实测红类重生成 BACKEND_OBSERVED_CLASSES + 加「实测红类 ⊆ 清单」自检(B-152-1/2 第 11 轮)。
  3. P1 · langgraph:修 JavaClient 关闭逻辑(await client.aclose()),消除 pytest 退出挂死(B-177-1 观察 3/2)。
  4. P1 · 数据库:修 nutrition_age_dosage DDL 三处不一致并补 DDL 一致性用例(B-156-1)。
  5. P1 · 测试资产:把 3 个未入库测试文件正式入库或删除(B-162-1)。
  6. P1 · 契约实现:推进 S-cfc-166/168/169 实现,消化 17 例预期 RED。
  7. P2 · 测试装置:修 TaskReviewScP11ContractTest 反射取重载顺序问题(B-178-1)。
  8. P2 · 性能调度:R180 起 Maven 全量独占窗口(不与本机浏览器/Jest 并行),复验耗时是否回落(B-173-3)。

九、下轮工作计划(R180)

  1. 后端强制实跑:R179 为采信轮 → R180 按纪律必须实跑(mvn -o -B clean test),Maven 独占窗口(浏览器/Jest 错峰),验证 B-173-3 耗时是否回落 ≤50min。
  2. langgraph 继续实派 251,目标 51/51(连续 2 轮才销号)。
  3. 浏览器双节点(189 admin + 本机 fe/shop/health/dx)保持每轮实派。
  4. 跟踪 B-178-1 修复(反射定位)、B-173-3(耗时)、B-156-1(DDL)。
  5. 追 S-cfc-166/168/169 修复状态,修复即增量复验并回填台账。

附录 A:本轮执行命令(可复现)

# 后端(采信 R178,本轮不跑)
# 下轮 R180 强制实跑:cd /d/cfc/cfc-backend && export JAVA_HOME=/d/jdk1.8.0_25 && /d/maven/apache-maven-3.6.1/bin/mvn -o -B clean test

# langgraph@251
MSYS2_ENV_CONV_EXCL=LOG LOG=/tmp/r179_pytest.log node docs/tdd/tools/dispatch_251_pytest.cjs kick
# 派前/派后 ps 查残留;残留 kill -TERM <pid>

# 浏览器
cd tests && npx playwright test -c playwright.config.live.js --project=frontend-mobile   # 6/6
cd tests && npx playwright test -c playwright.config.live.js --project=shop-api --project=dx-bridge  # shop 4/4 + dx 2 跳
cd tests && npx playwright test -c playwright.config.health.js                            # 13/13
node docs/tdd/tools/dispatch_189_admin.cjs                          # 189 admin 5/5 EXIT=0

# Jest
cd cfc-frontend && npx jest --ci    # 624 = 609/3/12
cd cfc-web && npx jest --ci         # 116/116
cd tests && npx jest --ci           # 23 = 7/16

# 线上 API 非功能层(点名 4 文件)
cd tests && npx playwright test -c playwright.config.api.js \
  e2e/api/api-smoke.spec.js e2e/api/nonfunc-security.spec.js \
  e2e/api/nonfunc-perf-compat.spec.js e2e/api/traceability-p94-p95-c26.spec.js  # 25 过/7 跳/0 红

# 匿名鉴权探针(G8)
node -e "... 4 关键端点 → 全 401 ✅"

附录 B:口径说明

  • 通过率 = 通过数 / 执行数(分母含 skip);「剔 skip」= 通过数 / (执行数 − skip)。
  • 后端红例按 surefire XML failures+errors 聚合(采信 R178,368 XML 全覆盖)。
  • 场景/用例度量口径来自 docs/tdd/tools/test_report_metrics.py --repo-root . --scene(跨轮固定)。
  • 浏览器用例计数含 2 个 dx skip(端点 404;docs/superpowers/specs/2026-11-08-dx-health-bridge.md 明示「仅登记不实现」)。

附录 C:收尾核对

  • 跑测期间 origin/cfclub 未前进(git fetch 后 git rev-list --left-right --count HEAD...origin/cfclub = 0/0)。
  • 基线 ebcc384c5 = origin/cfclub(pull 后),跑前=跑后;本轮窗口变更 0 提交,零功能源码 → 后端采信 R178 合规。
  • 结论口径不变:本轮所有数字来自零功能变更基线 + 七套件实测;langgraph 红 4→2 为唯一变化(正向),已登记 B-142-2 观察 3/2。