Просмотр исходного кода

docs(tdd): 研发负责人 1705 轮(SC-X-22 实现合入主线 f14e46f84·TR-5 请测试侧补 RED+执行 TC-X-22·SC 口径 237·CI 17:05 节)

Agnes Agent 1 неделя назад
Родитель
Сommit
4c70d73107

+ 11 - 0
docs/tdd/ci/CI_READINESS_2026-11-05.md

@@ -82,3 +82,14 @@
 - 更新 G2/G3 断言:**SC-B / SC-H / SC-X-22 用例已齐备待执行证据**;G2 必测清单增补 SC-X-22(P0)。
 
 **如实声明**:CI 入口仍未启用(根目录无 `.gitlab-ci.yml`,`when: manual` 草案不擅动);runner JDK8 能力仍待主理人核实(编排机实测 JDK21,不能推断 runner)。本轮仅推进「本地回归资产复用 + 用例池同步」两项缺口,**不宣称 CI 已启用、不宣称任何新 SC 已跑通**。SC-X-22 设计契约已派发(lan-248 会话 `ses_e555b9c11ffe5Hh4iBjU5dOcb4`,`axonhub/deepseek`),契约合入 origin/cfclub 后 G0~G4 方有实现可承接持续回归(见 O-4)。
+
+
+## 二·四、17:05 轮推进项(2026-11-05,1 项可核验)
+
+**推进项:SC-X-22 实现已合入主线(G2/G3 门禁前置资产就绪)。**
+
+- 实现会话(lan-248 `ses_e554b5f26f`,`axonhub/deepseek`,16:37 `outcome=succeeded`)产出 `feat/sc-x22-impl`(`957e59bb2`),含:`RewardRuleService`(新建)、`RewardEstimateController`(新建)、`RewardDisplayVO`/`RewardEstimateRequest`/`RewardEstimateVO`(新建)、`TaskController`/`ProductController`/`GuideFamilyTaskController` 产出点挂载、`GrowthTask`/`Task`/`ProductDTO` 字段扩展、`JwtInterceptor` 公开路径登记。
+- 研发侧提取 **12 个 Java 文件(7M+5A,无删除)** 单提交合入 origin/cfclub:**`f14e46f84`**(`merge-base --is-ancestor` 已核验,PUSH_CONFIRMED)。未整支合并(分支基于 `594705507` 落后主线 4 提交,整支会删除 16:25/16:45/16:55 三份汇报并回退 cfc-web 构建文件)。
+- 门禁口径更新:**G2 中 SC-X-22 从「实现缺失」→「实现已就绪」**;仍缺 ① TC-X-22 四例三类流**实际执行证据**(用例已合入 `80cd3b0a8`/`413553900` 但未执行)② JUnit 契约测试(RED,S-cfc-16 尚未 mark-red)。G3 矩阵 SC-X-22 维持「未跑通」,转正计入口径同 O-3。
+
+**如实声明**:CI 入口仍未启用(根目录无 `.gitlab-ci.yml`,`when: manual` 草案不擅动);runner JDK8 能力仍待主理人核实(编排机实测 JDK21,不能推断 runner)。本轮推进「SC-X-22 实现入主线」一项缺口,**不宣称 CI 已启用、不宣称 SC-X-22 已跑通**(缺判据①③)。契约偏差疑点:`/api/reward/estimate` 被置于 JwtInterceptor PUBLIC_PATHS(契约 §7 语义为「必须登录」),实测 Controller 对 userId=null 自返 401 行为等价,已登记 TR-5 请测试侧按 TC-X-22-P 第 1 步验证。

+ 7 - 0
docs/tdd/dev/test-requests.md

@@ -133,3 +133,10 @@
 |---|---|---|---|---|
 | TR-3 | 研发负责人1(自动化 ce26ad68) | 2026-11-05 06:20 | SC-G-02 / SC-G-06 会话产出已**合入 origin/cfclub**:merge `3aebf9b16`(SC-G-02 契约测试+权限流测试+e2e 用例+执行证据报告,源自 `feat/sc-g-02-wechat-login`)+ merge `73e2f194e`(SC-G-06 越权拦截实现+契约测试+执行报告,源自 `feat/sc-g-06-jwt-guard`);合并树 `mvn -o -B test-compile` BUILD SUCCESS(2041 主源+208 测试源)。S-cfc-10 `auth.guest.jwtGuard` 已补登 YELLOW(commit 73e2f194e)。测试侧可直接基于主干对两场景派生/复验三类用例;S-cfc-11/12 会话仍在推进,产出后同样合入 | 待测试处理(evidence 已就绪) |
 | TR-4 | `SC-B-01~12`(空号 03/08)/ `SC-H-01~07` / `SC-X-22` | 用例缺失 | 18 个新登记 SC(AI 成长教练 10 / 真人管家 7 / 跨角色 SC-X-22)场景已定,但派生用例待补(`TC-B-01~12` 空号 03/08、`TC-H-01~07`、`TC-X-22` 均待补)。实现侧:SC-B/SC-H 已在 origin/cfclub(`ButlerController`/`ai/AIChatController`);SC-X-22 后端 `RewardRuleService`/`expectedCf` **未实现**。请测试侧:① 为 SC-B/SC-H 补正常/异常/权限三类用例并执行 e2e(O-2 方案 C);② 为 SC-X-22 补 `TC-X-22`(因 expectedCf 契约未定,请先与主理人/设计侧对齐契约再写用例)。 | 开发(研发负责人) | 2026-11-05 13:26 | 待测试处理 |
+
+
+## TR-5:S-cfc-16 补 JUnit 契约测试(RED)+ 执行 TC-X-22 四例三类流(研发 → 测试)
+
+| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
+|---|---|---|---|---|---|---|
+| TR-5 | `reward.cfEstimate.expectedCf`(S-cfc-16 / SC-X-22) | 用例缺失 + 复验 | 设计契约已合入(`6141c43a2`,v1.0);**实现已合入 origin/cfclub 主线**(`f14e46f84`,RewardRuleService / RewardEstimateController / RewardDisplayVO 等 12 个 Java 文件,7M+5A 无删除,提取自 feat/sc-x22-impl `957e59bb2`)。请测试侧:① 按契约 §2/§7 为 `/api/reward/estimate` 补契约级 JUnit(MockMvc standalone,风格沿用 DimensionAdminControllerTest),登记 RED(`--mark-red reward.cfEstimate.expectedCf --commit <sha>`);② 执行 `tests/test-cases/cross-role-e2e.md` 的 TC-X-22 / TC-X-22-E / TC-X-22-E2 / TC-X-22-P 四例,产出正常/异常/权限三类流执行证据;③ 权限流重点验证:TC-X-22-P 第 1 步游客 401(实现将 `/api/reward/estimate` 置于 JwtInterceptor PUBLIC_PATHS、Controller 对 userId=null 自返 401,行为等价于契约「必须登录」但语义有偏差,请测试确认实际返回 401)、第 2 步孩子 token 调家长侧预估 403、第 5 步伪造 expectedCf 被忽略。注意:`cfc-backend/pom.xml:28` 有 `<skipTests>true</skipTests>`,`mvn test` 必须显式 `-DskipTests=false`,否则假绿 | 研发负责人(闭环巡检轮) | 2026-11-05 17:05 | 待测试处理 |

+ 166 - 0
docs/tdd/orchestration/report-dev-2026-11-05-1705.md

@@ -0,0 +1,166 @@
+# 研发负责人工作汇报 2026-11-05(17:05 轮 · SC-X-22 实现合入主线)
+
+## 基本信息
+
+| 项目 | 内容 |
+|------|------|
+| 汇报人 | 研发负责人(闭环巡检自动化 5c32f42a) |
+| 汇报周期 | 2026-11-05 17:06 ~ 17:20(第 25 轮) |
+| 负责模块/单元范围 | CFC 后端(cfc-backend)+ 前端(cfc-frontend/cfc-web)全量 |
+
+---
+
+## 一、本轮工作数据汇总
+
+### 1.1 问题接收与处置
+
+| 指标 | 数量 |
+|------|------|
+| 收到的测试反馈问题数 | **0** 个 |
+| 已解决问题数 | **0** 个 |
+| 待解决研发问题数 | **0** 个(本轮窗口无新增) |
+
+> 说明:本轮无新增测试反馈需研发处理。历史挂账延续:B-6/B-7(2 YELLOW 键待测试 `--mark-green`)、B-11(`/api/cf` 三端点删除待主理人裁决意图)、B-12(@Disabled 夹具待测试侧 seed)、B-13(@SpringBootTest 硬编码 127.0.0.1:3306 环境红,归环境/测试侧);B-1/B-3/B-4/B-5/B-9 研发侧交付完成待测试复验;B-8/B-10 已解除。
+
+### 1.2 任务分发与会话管理
+
+| 指标 | 数量 |
+|------|------|
+| 分派任务数 | **0** 个(S-cfc-16 在途会话已产出实现,本轮只做合入不再新派) |
+| 恢复智能体会话数 | **0** 个 |
+| 当前在用会话数 | **1** 个(lan-248 契约/实现会话均已结束 idle) |
+| 会话平均利用率 | —(单会话已收尾,未到可评估周期) |
+
+> 本轮唯一在途任务 S-cfc-16 `reward.cfEstimate.expectedCf`(SC-X-22)实现会话 `ses_e554b5f26f`(lan-248,16:37 `outcome=succeeded`)已产出 `feat/sc-x22-impl` `957e59bb2`,本轮完成合入。
+
+### 1.2b 各会话当前工作状态列表
+
+| 会话标签 | 会话 ID | 当前状态 | 当前任务 | 静默/空闲时长 | 工作目录 | 备注 |
+|----------|---------|----------|----------|---------------|----------|------|
+| lan-248 | ses_e554b5f26f | done/idle | SC-X-22 CF预估后端实现(已产出 957e59bb2) | 16:37 收尾 | /sc-data/cfc | 产出已由研发侧合入 f14e46f84 |
+| lan-248 | ses_e555b9c11 | done/idle | SC-X-22 设计契约(已产出 f9034d0a1) | 15:30 收尾 | /sc-data/cfc | 契约已单文件合入 6141c43a2 |
+| lan-189 | ses_e8cf399e3f | running | 局域网189 MES 编码会话(编排派发标签) | 持续更新 | c:\code\mes | 非 CFC,观察 |
+| pub-iwintrue | — | idle | — | 全空闲 | — | `--inspect`:50 会话 busy=0 idle=50 interrupted=0,配额占用 0/3 剩余 3 |
+| local-45278 / lan-204 / prod-etotem | — | idle | — | 全空闲 | — | hub status:6/6 实例可达,各 running_total=0 |
+
+> 状态判定:2 个 CFC 会话已 done(lan-248 契约+实现),1 个非 CFC running(lan-189),余实例 idle。无 wedged/thrash/swallowed/stalled/blocked。`--inspect`(测试负责人只读口径)任务账本 16 条 done=15/pending=1(S-cfc-16,实现已产出待登记)。
+
+### 1.3 变更感知与新任务建立
+
+| 指标 | 数量 |
+|------|------|
+| 感知需求/设计变更数 | **0** 次(`--changes --days 7`:200 提交/215 文件,变化集中在既有键) |
+| 新增入池任务数 | **0** 个(S-cfc-16 已在池,本轮无新增键) |
+| 既有键状态流转数 | **0** 次(17:06 后状态机无变化,S-cfc-16 仍 RED) |
+
+> `--changes --days 7`:设计 37 + 测试用例 63 + 其他 115 文档,**无新增能力键(0→0)** → 无需 `--add-task`。
+
+### 1.4 本轮 git 提交与推送证据(真理证据)
+
+| 提交 sha | 关联任务/能力键 | 阶段 | 触及文件类型 | 目标分支 | 已推送远端 | 备注 |
+|----------|-----------------|------|--------------|----------|------------|------|
+| **f14e46f84** | reward.cfEstimate.expectedCf(S-cfc-16 / SC-X-22) | 实现合入 | 实现(7M+5A Java) | cfclub | 是 | **本轮核心**:提取自 feat/sc-x22-impl 957e59bb2,`merge-base --is-ancestor` 核验 PUSH_CONFIRMED |
+| 1767d4414 | health.report.createReport | YELLOW | 实现 | cfclub | 是 | 测试侧契约测试 81d8883f7 全绿 |
+| c3e32460a | dan.assessment.getActiveMaterial | YELLOW | 实现 | cfclub | 是 | 测试侧契约测试 faf3ca174 全绿 |
+| 6141c43a2 | reward.cfEstimate.expectedCf(S-cfc-16) | 设计契约 | 契约 | cfclub | 是 | SC-X-22 设计契约 v1.0 |
+| 8051b64f1/73e2f194e/df2364ba3/f1b0e3ed5/f41da2779/291955bce | SC-G-02/G-06/P-03/P-10/P-11 证据链 | 三类流证据 | 测试+实现 | cfclub | 是 | 6 sha 场景证据链,见 1.7 |
+
+> f14e46f84 经 `git merge-base --is-ancestor` 核验在 origin/cfclub ✓(PUSH_CONFIRMED)。S-cfc-16 实现已入主线,但仍缺 RED 契约测试(未 mark-red)与三类流执行证据,故**维持 RED 不置 YELLOW**(角色隔离 + 判据①缺失)。
+
+### 1.5 状态机阶段分布与部署状态
+
+| 阶段 | 键数 | 备注 |
+|------|------|------|
+| UNTRACKED | 0 | 已发现未入池 |
+| RED | 1 | **reward.cfEstimate.expectedCf(S-cfc-16):实现已合入 f14e46f84,缺 RED 契约测试与三类流证据** |
+| YELLOW | 2 | dan.assessment.getActiveMaterial / health.report.createReport(只差测试 mark-green) |
+| GREEN | 0 | 待部署验证 |
+| DONE | 11 | auth.guest.jwtGuard、auth.guest.wechatLogin、dimension.registry.getTree、dimension.registry.mapLegacyCode、family.familyMembers.addMember、family.familyMembers.listMembers、guide.trainingPlan.getPlanList/getPlanDetail、family.parent.switchRole、task.parent.createTask/review |
+
+| 部署项 | 值 | 说明 |
+|--------|-----|------|
+| 本轮部署次数 | 0 次 | TDD 链无新部署动作 |
+| 最新 `last_deployed` | a9f283d25(14:01 前端修复部署确认,非状态机键) | TDD 链最新 291955bce(10:21:29);deploy_verify=false |
+
+### 1.6 数据源健康度
+
+| 数据源 | 读取键数 | 是否正常 | 备注 |
+|--------|----------|----------|------|
+| 需求侧(⏳ wish) | 0 | 正常 | 目标池 0 键 |
+| 契约常量(contract) | 0 | 正常 | SC-X-22 契约已合入,实现已合入 |
+| 测试用例引用(test_case_map) | 0 | 正常 | 用例引用∩⏳ = 0 |
+| 执行结果回填(case_results) | 0 | 正常 | 已部署键回验,无新增未实现键 |
+
+### 1.7 场景覆盖矩阵(DEV_GOAL 顶层验收 · 必填)
+
+| 指标 | 值 | 说明 |
+|------|-----|------|
+| 场景总数 | **237**(origin/cfclub `sc-key-map.md` 实际登记,git 真理) | 官方文案 218 + 新增 19(AI 成长教练 B 11 / 真人管家 H 7 / 跨角色 X-22 1);DEV_GOAL 文案 218 / 上轮记忆 236 / 实际 237 三口径差异登记 **O-4** 待主理人裁决 |
+| 累计严格跑通 | **0/237** | 三类流实际执行证据 + 实现/用例推 origin/cfclub + 工作区干净,三条全满足 |
+| 证据链齐备待门禁转正 | **5/237** | SC-G-02(wechatLogin)/ G-06(jwtGuard)/ P-03(switchRole)/ P-10(createTask)/ P-11(review)——6 sha 全在 origin,唯缺「工作目录干净」第三判据(O-3 门禁恒 1) |
+| 本轮新增跑通 | **0** | SC-X-22 本轮实现已合入主线(f14e46f84)=判据②部分满足,仍缺①三类流执行证据(TC-X-22 四例已写未执行)与③门禁,不计跑通 |
+| CI 自动回归 | 未接入 | G0~G4 无自动回归,`gitlab-ci.draft.yml` 已就绪未启用 |
+
+> **不报开发完成**:237/237 前不得报「开发完成」。能力键 DONE(11)≠ SC 跑通(0)。本轮推进 SC:**SC-X-22**(实现合入 f14e46f84,已登记 TR-5 请测试侧补 JUnit RED + 执行 TC-X-22)。
+
+---
+
+## 二、下一步需要研发处理的事项
+
+| 序号 | 事项描述 | 依赖/前置条件 | 预估完成时间 | 优先级 | 状态 |
+|------|----------|---------------|--------------|--------|------|
+| 1 | S-cfc-16 置 YELLOW(实现已合入 f14e46f84) | 测试侧补 RED 契约测试(mark-red)→ 研发 mark-yellow;角色隔离研发不代登记 RED | 待测试侧 RED | P0 | 待测试侧 |
+| 2 | 2 YELLOW 键(getActiveMaterial/createReport)测试 `--mark-green` 收口 | 测试侧复验后 mark-green(角色隔离) | 待测试侧 | P1 | 待测试 |
+| 3 | 5 SC(G-02/G-06/P-03/P-10/P-11)证据链转正 | O-3 主工作树干净门禁解除(需主理人裁决) | 待主理人 | P1 | 待裁决 |
+| 4 | SC-X-22 转正 | TR-5:测试侧补 JUnit RED + 执行 TC-X-22 四例三类流 | 待测试侧 | P0 | 已登记 TR-5 |
+
+---
+
+## 三、阻塞与风险
+
+| 阻塞项 | 影响范围 | 阻塞类型 | 处置进展 | 需要协调 |
+|--------|----------|----------|----------|----------|
+| O-3 工作目录门禁恒 1(主工作树 30 处未提交 + 本地 cfclub 落后 origin 79 提交) | 5 SC 卡在「证据链齐备」无法转正 | 主理人 | 待裁决(同步主工作树 / 改用已推远端口径 / 明确收口责任人) | 主理人 |
+| SC 口径 218/236/237 差异 | 场景覆盖矩阵计数与顶层目标口径不一致 | 主理人 | O-4 已登记,待主理人裁决 237 正本后台账同步 | 主理人 |
+| O-1 纯状态机同步 | 2 YELLOW 键卡测试 mark-green | 测试 | 测试侧连续多轮复验通过,待 `--mark-green` 落库 | 测试侧 |
+| **SC-X-22 契约鉴权语义偏差** | /api/reward/estimate 被置于 JwtInterceptor PUBLIC_PATHS(契约 §7 语义「必须登录」);实测 Controller 对 userId=null 自返 401,行为等价 | 研发/测试 | 已登记 TR-5 请测试侧按 TC-X-22-P 第 1 步验证游客 401;若契约要求走 LOGIN_REQUIRED 建议后续调整 | 测试侧 |
+| CI 未接入 | G0~G4 无自动回归,全量依赖人工 | 研发/运维 | `gitlab-ci.draft.yml` 已就绪,待 runner 核实启用 | 运维 |
+| 统一维度双路由歧义 | feature/unified-dimension-p0 与主线 admin 版 `@RequestMapping("/api/dimension-registry")` 相同 | 设计(P0 historical) | 主线现仅一份 admin 版,合入前须主理人裁决正本 | 主理人 |
+| B-11/B-12/B-13 | /api/cf 三端点删除意图 / @Disabled 20 例 / 3306 硬编码环境红 | 研发/环境 | B-11 待主理人确认意图;B-12/B-13 待测试侧夹具与环境 | 主理人/测试 |
+
+---
+
+## 四、下轮工作规划
+
+| 计划项 | 预计完成时间 | 前置依赖 | 涉及会话标签 | 备注 |
+|--------|--------------|----------|--------------|------|
+| 跟进 TR-5(测试侧补 RED + 执行 TC-X-22)→ S-cfc-16 置 YELLOW | 下轮 | 测试侧 RED 提交已推远端 | lan-248 | RED 后 `--mark-yellow --commit <sha>` |
+| 复核 SC 口径与 5 SC 转正 | 待 O-3/O-4 裁决 | 主理人裁决 | — | 裁决后按新口径更新矩阵 |
+
+---
+
+## 附录
+
+### 附录 A:收到的测试反馈问题明细
+
+| 问题 ID | 能力键/任务号 | 问题类型 | 来源 | 接收时间 | 处置状态 | 关联 sha |
+|---------|---------------|----------|------|----------|----------|----------|
+| — | — | — | — | — | — | 本轮无新增 |
+
+### 附录 B:任务分派与会话恢复明细
+
+| 任务号 | 目标会话标签 | 任务类型 | 分派时间 | 当前状态 | 恢复会话标签 | 恢复原因 | 恢复时间 |
+|--------|--------------|----------|----------|----------|--------------|----------|----------|
+| S-cfc-16 | lan-248 | RED(实现产出) | 15:54 | done(产出 957e59bb2,本轮合入 f14e46f84) | — | — | — |
+
+### 附录 C:新增入池任务明细
+
+| 任务号 | 能力键 | 需求溯源 | 设计溯源 | 创建时间 | 状态 |
+|--------|--------|----------|----------|----------|------|
+| — | — | — | — | — | 本轮无新增 |
+
+### 附录 D:变更感知明细(来自 `--changes`)
+
+| 变更文档 | 文档类型 | 变更日期 | 新增能力键 | 是否已入池 |
+|----------|----------|----------|------------|------------|
+| 200 提交/215 文件(设计 37 + 用例 63 + 其他 115) | 需求/设计/用例 | 11-03 ~ 11-05 | 0 | — |