Explorar el Código

Merge remote-tracking branch 'origin/cfclub' into cfclub

E2E Test Bot hace 6 días
padre
commit
95655d5d86

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-d6cc601f78b4752a54daf4251db5751f8bc6ebcc
+0a98459b1b80d90fbd68a9f7f1e964863da165f7

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "cfc-web",
-  "version": "1.0.2138",
+  "version": "1.0.2139",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "cfc-web",
-      "version": "1.0.2138",
+      "version": "1.0.2139",
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
   "name": "cfc-web",
-  "version": "1.0.2139",
+  "version": "1.0.2140",
   "private": true,
   "scripts": {
     "dev": "vue-cli-service serve",

+ 8 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,14 @@
 
 ---
 
+## v1.0.2140 (2026-11-06)
+
+### 文档
+- 研发负责人 第49轮 汇报 webhook 窗口外说明回填(01:10 属 06:00-22:00 窗口外,未发)
+- 研发负责人 第49轮 闭环巡检 | 状态机20键=12DONE+8YELLOW+0RED | 突破零派发:按O-7授权滚动P0批次 任务-激励22SC开工包(ce8c4b4b7)+A/B组契约核对派发(lan-248/lan-204,axonhub绕黑窗已确认) | 18端点18/18已实现0缺失(防假RED) | 8YELLOW实现sha全IN CHAIN复核(8/8) | O-7生效继续滚动+O-8待主理人确认(236→241) | SC覆盖5/236 | 双文件hash-object入库
+- 任务-激励 22 SC 开工包(P0 契约补建批次)接口范围端点核验 22/22 已实现 0 缺失
+
+
 ## v1.0.2139 (2026-11-06)
 
 ### 文档

+ 9 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.2139
+> 当前版本: v1.0.2140
 
 ## 历史版本
 
@@ -8,6 +8,14 @@
 
 ---
 
+## v1.0.2140 (2026-11-06)
+
+### 文档
+- 研发负责人 第49轮 汇报 webhook 窗口外说明回填(01:10 属 06:00-22:00 窗口外,未发)
+- 研发负责人 第49轮 闭环巡检 | 状态机20键=12DONE+8YELLOW+0RED | 突破零派发:按O-7授权滚动P0批次 任务-激励22SC开工包(ce8c4b4b7)+A/B组契约核对派发(lan-248/lan-204,axonhub绕黑窗已确认) | 18端点18/18已实现0缺失(防假RED) | 8YELLOW实现sha全IN CHAIN复核(8/8) | O-7生效继续滚动+O-8待主理人确认(236→241) | SC覆盖5/236 | 双文件hash-object入库
+- 任务-激励 22 SC 开工包(P0 契约补建批次)接口范围端点核验 22/22 已实现 0 缺失
+
+
 ## v1.0.2139 (2026-11-06)
 
 ### 文档

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

@@ -134,3 +134,12 @@
 - **核实结论(防假 RED 前置)**:B-1 契约接口范围 54 端点 + B-2 端点与 origin/cfclub 359 Controller / 1940 映射端点比对**缺失 0** → 66 SC 接口全部已实现,**无真实现缺口**,契约补建 = 文档核对 + 测试侧补契约 JUnit/三类流证据,不建研发实现型 RED(防假 RED)。
 - **G1(契约回归资产扩容前置)**:B-1/B-2 契约核对产出将作为既有契约池(15 类/176 例)的新增成员候选,待测试侧补 JUnit 后并入 backend-g0-compile job;当前 backend job 仍受 P-2 MapContract 3 红未拍板限制,**不并入红例**。
 - **如实声明**:本轮派发的是契约**核对/补文档**任务(开工包步骤 1),非实现、非测试;不宣称 CI 自动触发生效、不宣称任何 SC 转正;B-29~B-33(测试侧 23:10 登记)不在本轮研发处置范围(B-29 归研发负责人1,B-30/B-32/B-33 归测试侧度量/工具链,B-31 待主理人定夺凭据轮换)。
+
+## 二·九、01:10 轮推进项(2026-11-07,任务-激励 22 SC 开工包合入 + 契约核对派发)
+
+- **任务-激励 22 SC 开工包已合入 origin/cfclub**:`docs/tdd/orchestration/task-incentive-kickoff-20261107.md`(commit **`ce8c4b4b7`**,2026-11-07 01:0x,单文件 hash-object 入库,diff --name-status=1A 无删除,`git merge-base --is-ancestor` ✓)。
+- **接口范围端点核验(防假 RED 前置)**:开工包 22 个 SC 引用 18 个类级端点(/api/tasks、/api/wishes、/api/badges、/api/daily/checkin、/api/daily-task、/api/growth-task、/api/points/exchange、/api/packages、/api/task/reminder-config、/api/game、/api/market、/api/activity、/api/food/recommendation、/api/meal、/api/attribution、/api/energy、/api/admin/challenge-score-config、/api/admin/task/reminder-config)在 origin/cfclub controller 源码中**全部存在(18/18 命中,0 缺失)** → 任务-激励批次接口**已 100% 实现,无真实现缺口**,契约补建 = 文档核对 + 测试侧补契约 JUnit/三类流证据,**不建研发实现型 RED**(防假 RED,延续 O-7 授权)。
+- **契约核对任务已派发(开工包步骤 1,文档层非假 RED)**:C-1(A 组任务/心愿/勋章,lan-248 `ses_e4e26bef2ffeh84RRCBpLCnk6z`)+ C-2(B 组积分/能量/运营/活动,lan-204 `ses_e4e261541ffeuFWK05kGun8uGd`),均 `axonhub/deepseek` 绕 429 黑窗,`--confirm` 已确认正常执行(A 组正文 78 字/工具调用 2 次;B 组正文 50 字/工具调用 1 次)。
+- **G1(契约回归资产扩容前置)**:任务-激励契约核对产出将作为既有契约池(15 类/176 例)新增成员候选,待测试侧补 JUnit 后并入 backend-g0-compile job;当前 backend job 仍受 P-2 MapContract 3 红未拍板限制,**不并入红例**。
+- **下一 P0 批次端点预核(滚动铺路)**:商城-会员 18 SC(MembershipController /api/membership、CouponController /api/coupon、CouponGiftController /api/coupon/gift、product/ProductController /api/product、product/ProductOrderController 等)+ 家庭-成员 15 SC(family/FamilyController /api/family、FamilyMembersController、FamilyInviteController、guide/GuideController /api/guide 等)核心端点预核**均在 origin/cfclub 存在**,可作下批开工包滚动依据。
+- **如实声明**:本轮派发的是契约**核对/补文档**任务(开工包步骤 1),非实现、非测试;不宣称 CI 自动触发生效、不宣称任何 SC 转正(场景覆盖维持 5/236);O-8(sc-key-map 236→241 归一)待主理人确认,未在 O-8 裁决前擅改台账基线。

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

@@ -147,3 +147,9 @@
 |---|---|---|---|---|---|---|
 | TR-6 | 8 个 YELLOW 键(admin.auth.login / health.report.upload / health.report.createReport / dan.assessment.getActiveMaterial / sleep.config.tags / task.history.view / growth.history.view / achievement.grid.fiveCol) | 复验 + mark-green | 研发负责人1 本轮核验:8 键实现 sha **全部在 origin/cfclub 链上**(git merge-base --is-ancestor 逐条核验 ✓)——`6c7e09fe8`(admin.auth.login) / `78b72c14f`(health.report.upload) / `1767d4414`(createReport) / `c3e32460a`(getActiveMaterial) / `ed8f1c347`(task.history.view) / `da2727f53`(growth.history.view) / `e205656ee`(achievement.grid.fiveCol);sleep.config.tags 契约测试 `f11062b42`(S-cfc-31,21绿/1红 blank-key 缺陷)在链 ✓,其 yellow_sha=04d87cfd1 系登记误配(10-26 措辞重构),真实实现已在链(93aad0152 PublicConfigController / f8b145d3a / 4734bcf45),green 登记不校验 yellow_sha 内容可放行。另 task.history.view / growth.history.view / achievement.grid.fiveCol 3 键 red_sha 为空(历史登记未带 sha),契约测试提交 4adb7895c / a73cfa4e2 / 7ca946b32 已在链,测试侧 mark-green 前可自行复核。请测试侧:复验后对 8 键 `--mark-green` 收口,**注意 pom.xml:28 skipTests=true 须显式 -DskipTests=false** | 研发负责人1(闭环巡检轮) | 2026-11-06 21:35 | 待测试处理 |
 | TR-7 | B-1 测评-方案 43 SC(dan.assessment.* / plan.* / guide.* 等 44 键)+ B-2 报告闭环 23 SC(health.report.* / dan.assessment.* / admin.reportParse.* / coach.* 等 19 键) | 用例缺失 + 复验 | 本轮核实:B-1/B-2 开工包 66 SC 对应接口**全部已实现**(54 端点 + 若干端点与 origin/cfclub 359 Controller 比对 0 缺失),按 O-2 方案 C 属**测试侧补三类流执行证据**,非研发实现型 RED。已派发 B-1/B-2 契约核对任务(lan-248 `ses_e4e91dc01ffe8dj0qyl4mBZsd2` / lan-204 `ses_e4e91234bffeqRDdDQ5MqtdhPy`,axonhub/deepseek)产出契约文档(API_REFERENCE.md 补全或 specs 新批次文档)后,请测试侧:① 为 B-1 43 SC / B-2 23 SC 补契约级 JUnit(MockMvc 风格沿用既有 ContractTest)+ 正常/异常/权限三类流执行证据;② 报告上传链可复用既有 health.report.upload(YELLOW,78b72c14f)契约资产;③ 只有三类流实际执行证据 + 契约/用例推 origin/cfclub + 提交干净才计入场景覆盖矩阵。注意 pom.xml:28 `<skipTests>true</skipTests>`,`mvn test` 须显式 `-DskipTests=false` | 研发负责人(本自动化第44轮) | 2026-11-06 23:20 | 待测试处理 |
+
+## TR-8:商城-会员 18 SC 契约补建转测试侧(研发 → 测试,2026-11-07 01:40)
+
+| 编号 | 关联键/对象 | 类型 | 描述 | 经办 | 登记时间 | 状态 |
+|---|---|---|---|---|---|---|
+| TR-8 | 商城-会员 18 SC(SC-A-12/17、SC-G-05、SC-P-52/53/55/56/57/59/60/75/80、SC-S-02/03/04/06、SC-X-07/12) | 用例缺失 + 复验 | 开工包 `docs/tdd/orchestration/shop-member-kickoff-20261107.md` 已入库:**18/18 端点核验已实现 0 缺失**(ProductController `/api/product` 6 端点 / ProductOrderController `/api/product/order` 10 / CouponController `/api/coupon` 6 / PackagePaymentController `/api/payment` 5 / MembershipController `/api/membership` 7 / AfterSalesController `/api/shop/after-sales` 3),按 O-7 属**测试侧补三类流执行证据**(非研发实现型 RED,不建伪实现任务)。契约定稿前能力键映射见开工包「建议能力键」12 条(product.browse / order.pay / order.refund / coupon.use / membership.view / membership.renew / product.manage / order.ship / order.fulfill / membership.fulfill / admin.order.manual / admin.coupon.config,须逐条对齐 API_REFERENCE 与派生用例防键名冲突)。请测试侧:① 依开工包为 18 SC 补契约级 JUnit(MockMvc 风格沿用既有 ContractTest);② 正常/异常/权限三类流实际执行并产出证据;③ 证据 + 契约/用例推 origin/cfclub + 提交干净才计入场景覆盖矩阵(O-2 方案 C / O-3 判据③)。注意 pom.xml:28 `<skipTests>true</skipTests>`,`mvn test` 须显式 `-DskipTests=false` | 研发负责人(本自动化第50轮) | 2026-11-07 01:40 | 待测试处理 |

+ 12 - 12
docs/tdd/orchestration/DEV_GOAL_user_scenarios.md

@@ -6,7 +6,7 @@
 
 ## 一、目标定义
 
-**让 `tests/user-scenarios/应用场景总览.md` 列出的全部 236 个应用场景(`SC-角色-NN`;O-4 裁决 2026-11-06 落地,基线 218→236)都能端到端跑通。**
+**让 `tests/user-scenarios/应用场景总览.md` 列出的全部 241 个应用场景(`SC-角色-NN`;O-4 裁决 2026-11-06 落地,基线 218→236;O-8 裁决 2026-11-07 落地,236→241)都能端到端跑通。**
 
 「跑通」的判定(三者缺一不可):
 
@@ -22,7 +22,7 @@
 
 | 资产 | 路径 | 规模 |
 |------|------|------|
-| 场景总目录与追溯矩阵(一级权威) | `tests/user-scenarios/应用场景总览.md` | 236 个 SC:游客 12 / 家长 93 / 孩子 25 / 规划师 32 / 运营 24 / 服务商 11 / 跨角色 22 / AI 成长教练 10 / 真人管家 7(O-4 裁决 2026-11-06 落地,218→236;含 SC-B/AI 成长教练 10、SC-H/真人管家 7、SC-X-22 CF 预估) |
+| 场景总目录与追溯矩阵(一级权威) | `tests/user-scenarios/应用场景总览.md` | 241 个 SC:游客 12 / 家长 96 / 孩子 26 / 规划师 32 / 运营 25 / 服务商 11 / 跨角色 22 / AI 成长教练 10 / 真人管家 7(O-4 裁决 2026-11-06 落地 218→236;O-8 裁决 2026-11-07 落地 236→241 含 SC-P-94~96/SC-C-26/SC-A-27;SC-B/AI 成长教练 10、SC-H/真人管家 7、SC-X-22 CF 预估) |
 | 角色叙事细节 | `tests/user-scenarios/01-guest.md` ~ `07-five-dimension.md` + `README.md` | 每个场景含用户故事、前置条件、主流程、异常/边界、关联需求/设计、关联用例 |
 | 派生测试用例 | `tests/test-cases/*.md`(含 `cross-role-e2e.md`) | 729 条 TC |
 | 自动化状态台账 | `docs/tdd/test/automation-status.md` | 由 `test_inventory.py` 从 `.tdd/test-progress.json` 派生 |
@@ -35,7 +35,7 @@
 ## 三、现状(2026-11-05 基线)
 
 - `docs/tdd/test/automation-status.md`:结构化测试用例 729 条 → **已执行 0 / 通过 0 / 失败 0 / 未跟踪 729**;脚本级自动化尚未接入 CI(无 `.github/workflows/`、`.gitlab-ci.yml`、`Jenkinsfile`)。
-- 因此本目标处于 **0 / 236** 起步状态;每轮汇报必须如实填写「累计已跑通场景数」,不得用「任务已分派」冒充「场景已跑通」。
+- 因此本目标处于 **0 / 241** 起步状态;每轮汇报必须如实填写「累计已跑通场景数」,不得用「任务已分派」冒充「场景已跑通」。
 
 ---
 
@@ -50,7 +50,7 @@
 
 ### 4.1 SC → 能力键映射与计数口径(主理人 O-2 裁决,2026-11-05)
 
-> 本小节是 O-2 裁决的固化(单一事实源),覆盖 00:53 旧口径中「SC 即任务池」的歧义。**权威登记表:`docs/tdd/orchestration/sc-key-map.md`(236 SC 全量,唯一「SC 跑通」计数来源;O-4 裁决 2026-11-06 落地)。**
+> 本小节是 O-2 裁决的固化(单一事实源),覆盖 00:53 旧口径中「SC 即任务池」的歧义。**权威登记表:`docs/tdd/orchestration/sc-key-map.md`(241 SC 全量,唯一「SC 跑通」计数来源;O-4 裁决 2026-11-06 落地 236;O-8 裁决 2026-11-07 落地 241)。**
 
 1. **SC 不作状态机键**:`--add-task <key>` 的 `key` 一律为合法 `unit.domain.action`(方案 A 为正本);SC 编号 + 场景文件写进 `--requirement`,已合入 `origin/cfclub` 的契约写进 `--design`(标注「实现仅在 feature 分支、不得假定包路径」)。
 2. **否决放宽 SC 前缀**(方案 B):不改 skill 脚本 `KEY_RE`,避免污染全部项目 + 「SC=能力编排组合」与「单一能力」语义错位。
@@ -59,15 +59,15 @@
 
 ### 4.2 O-4 裁决(2026-11-06,主理人拍板)
 
-**正本总数 = 236**(sc-key-map.md 表格行口径:A24/G12/P93/C25/T32/S11/X22/B10/H7 = 236)。
+**正本总数 = 241**(sc-key-map.md 表格行口径:A25/G12/P96/C26/T32/S11/X22/B10/H7 = 241;O-8 归一后主表行数 = 唯一 SC ID 数 = 241)。
 
 - **口径来源**:以 `docs/tdd/orchestration/sc-key-map.md` 表格行(含 SC 编号的 `| SC-... |` 记录行)为唯一计数权威;与 `tests/user-scenarios/应用场景总览.md` 正文描述/历史演进记录/编号变体引用保持只读一致。
-- **统计方法**:`grep -oE '\| *SC-[A-Z]+-[0-9]+ *\|' docs/tdd/orchestration/sc-key-map.md | sort -u | wc -l` = **236**(严格表格行过滤,不含演进记录或正文引用的重复行)。
-- **更正旧误差**:2026-11-06 09:35 轮曾以全文 `grep -oE "SC-[A-Z]+-[0-9]+"` 统计得 **237**(含表外引用与正文变体引用),本次裁决更正为 **236**。
+- **统计方法**:`grep -oE '\| *SC-[A-Z]+-[0-9]+ *\|' docs/tdd/orchestration/sc-key-map.md | sort -u | wc -l` = **241**(严格表格行过滤,不含演进记录或正文引用的重复行)。
+- **更正旧误差**:2026-11-06 09:35 轮曾以全文 `grep -oE "SC-[A-Z]+-[0-9]+"` 统计得 **237**(含表外引用与正文变体引用),本次裁决更正为 **236**。2026-11-07 O-8 归一后为 **241**(并消除 O-3 5 SC 双行制 +5 歧义,主表行数 = 唯一 ID 数)。
 - **总览文件残留引用不计入**(不修改原始场景文件,仅声明口径):`SC-B-03`/`SC-B-08`(AI 成长教练空号,台账已删)→ 不计入;`SC-T-6`(=SC-T-06 无零变体,总览 SC-X-22 产出点清单引用)→ 不计入。
-- **历史演进**:218(2026-11-05 定稿)→ 230(08-butler 补 SC-B 10)→ 235(09-human-butler 补 SC-H 7 并删 SC-B-03/08)→ 236(SC-X-22 CF 预估入池)。
+- **历史演进**:218(2026-11-05 定稿)→ 230(08-butler 补 SC-B 10)→ 235(09-human-butler 补 SC-H 7 并删 SC-B-03/08)→ 236(SC-X-22 CF 预估入池)→ **241(O-8,2026-11-07:SC-P-94~96 / SC-C-26 / SC-A-27 入册)**。
 - **SC-X-22 状态**:契约(6141c43a2)+ 实现(f14e46f84)+ JUnit 契约(2869d0e8e)已合入,仅缺三类流执行证据 + mark-green(TR-5),入正本不计入已跑通。
-- **后续影响**:每轮汇报「场景覆盖矩阵」基数 236;CI_READINESS G2/G3 口径同步;历史汇报不可追改。
+- **后续影响**:每轮汇报「场景覆盖矩阵」基数 241;CI_READINESS G2/G3 口径同步;历史汇报不可追改。
 
 ### 4.3 O-3 收口(2026-11-06,主理人拍板)
 
@@ -75,14 +75,14 @@
 
 - **问题**:5 个 SC(G-02/G-06/P-03/P-10/P-11)证据链齐备(三类流执行证据 + 实现/用例已推 `origin/cfclub`),唯卡「工作目录干净」第三判据——主工作树 25 处 WIP 全部为其他域会话(会员/商城 Membership、DAN 测评前端、文档 PROJECT-OVERVIEW/API_REFERENCE、E2E flow-l1、编排工具 tasks_backlog、家庭归因读本 docs/参考教材)未提交改动,与这 5 个 SC 提交无关。
 - **裁决**:判据③由「主工作树全局干净」细化为「SC 关联提交级干净」(见 §一判据③、§4.1-③)。5 个 SC 证据 sha 已核验:`8051b64f1`(G-02)/`df2364ba3`(G-06)/`f1b0e3ed5`(P-03)/`f41da2779`(P-10)/`291955bce`(P-11),全部 `git merge-base --is-ancestor origin/cfclub` ✓ 且提交干净(无删除、无无关文件;P-10 提交 `f41da2779` 含 automation-run 执行证据 + `tests/e2e/api/task-create-scp10.spec.js`)。
-- **结果**:5 个 SC 转正为「跑通」,累计已跑通 **0 → 5**;阻塞 **5 → 0**;未跟踪 231(236−5)。
+- **结果**:5 个 SC 转正为「跑通」,累计已跑通 **0 → 5**;阻塞 **5 → 0**;未跟踪 236(241−5)。
 - **WIP 归属(只读盘点,不代提交)**:主工作树 25 处未提交改动已登记于 `report-dev-2026-11-06-1018.md` 附录 G;各域属主会话自行提交,编排侧不擅自 `add -A`/checkout/stash。
 
 ---
 
 ## 五、验收与汇报口径
 
-- 每轮标准汇报 `docs/tdd/orchestration/report-dev-YYYY-MM-DD-HHMM.md` 除模板必填项(**1.2b 会话列表必填,无空闲也列 idle**)外,必须增列 **「场景覆盖矩阵」**:总数 236 / 累计已跑通 / 本轮新增跑通 / 失败 / 阻塞 / 未跟踪,并逐条注明本轮推进的 SC 编号与证据 sha。
+- 每轮标准汇报 `docs/tdd/orchestration/report-dev-YYYY-MM-DD-HHMM.md` 除模板必填项(**1.2b 会话列表必填,无空闲也列 idle**)外,必须增列 **「场景覆盖矩阵」**:总数 241 / 累计已跑通 / 本轮新增跑通 / 失败 / 阻塞 / 未跟踪,并逐条注明本轮推进的 SC 编号与证据 sha。
 - **阶段推进(RED→YELLOW→GREEN)以场景用例实际通过为准**,不得以「实现代码已合入」直接置 GREEN。
 - 收口纪律沿用:只认已推远端 git 证据;**严禁 `git add -A`**;提交他人产物先 `git show origin/cfclub:<path>` 对齐、精确 `git add -- <paths>`;严禁 checkout/stash/force-push 他人改动,独立提交走 worktree;`.tdd/` 本地私有**禁推**,共享内容只放 `docs/tdd/*.md`。
 
@@ -90,4 +90,4 @@
 
 ## 六、完成判据
 
-`236 / 236` 个 SC 均具备三类用例的实际通过证据 + 实现与用例已推 `origin/cfclub` + CI 持续回归可用 + 工作目录干净。在此之前,任何一轮都不得汇报「开发完成」。
+`241 / 241` 个 SC 均具备三类用例的实际通过证据 + 实现与用例已推 `origin/cfclub` + CI 持续回归可用 + 工作目录干净。在此之前,任何一轮都不得汇报「开发完成」。

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
docs/tdd/orchestration/pending.md


+ 157 - 0
docs/tdd/orchestration/report-dev-2026-11-07-0110.md

@@ -0,0 +1,157 @@
+# 研发负责人工作汇报 · 2026-11-07 01:10(定时自动化 · 第 49 轮)
+
+| 项目 | 内容 |
+|------|------|
+| 汇报人 | 研发负责人(自动化闭环巡检) |
+| 汇报周期 | 2026-11-07 00:58 ~ 2026-11-07 01:10(第 49 轮 · 契约补建 P0「任务-激励」开工包滚动派发,紧接第 48 轮 00:49) |
+| 负责模块/单元 | cfc(cfc-backend / cfc-frontend / cfc-web / dan / cfc-langgraph) |
+| 执行档 | **只读核查 + 契约补建文档档** — 不改业务代码、不碰主工作树 index、不代提交他人 WIP、零 add -A / checkout / stash;仅新增开工包/CI 文档 + 本汇报 |
+| webhook 发送 | **未发(窗口外)** — 指令窗口 06:00~22:00;本轮 01:10 属窗口外,按纪律不发,如实记录;下一发送点 06:00 后首轮 |
+
+---
+
+## 一、本轮工作数据汇总
+
+### 1.1 问题接收与处置
+
+| 指标 | 数量 | 说明 |
+|------|------|------|
+| **收到的测试反馈问题数*** | **0** 个 | 本轮(距第 48 轮 00:49 约 20 分钟,origin/cfclub 仅新增 auto-bump 2cb2f780a)测试渠道无新增需研发处理问题;B-1~B-14 历史 blockers 维持「待处理」(见 1.6) |
+| **已解决问题数*** | **0** 个(git 实现层) | 8 YELLOW 待测试侧 mark-green(TR-6 在途);本轮实质推进 = 契约补建 P0 文档层(见 1.3) |
+| **待解决研发问题数** | **8** 个 | = 8 个 YELLOW 键待测试 mark-green 收口(测试侧第 64 轮 78976243e 已复验 15 类 169 例=165 绿/4 红,零新回归,证据链就绪);B-1~B-14 历史 blockers 另计待处理 |
+
+### 1.2 任务分发与会话管理
+
+| 指标 | 数量 | 说明 |
+|------|------|------|
+| **分派任务数*** | **2** 个 | **契约补建 P0「任务-激励 22 SC」开工包步骤 1(文档核对,非实现型 RED,防假 RED)**:C-1(A 组,lan-248 `ses_e4e26bef2ffeh84RRCBpLCnk6z`)+ C-2(B 组,lan-204 `ses_e4e261541ffeuFWK05kGun8uGd`),均 `axonhub/deepseek` 绕 429 黑窗(O-7 授权渐进批次 + 用户拍板全局 axonhub/deepseek)+ `--confirm` 已确认正常执行(A 组正文 78 字/工具调用 2 次;B 组正文 50 字/工具调用 1 次)。全局 running 2 < limit 4,未触及并发上限 |
+| **恢复智能体会话数*** | **0** 个 | 5 实例无 wedged/swallowed/stalled/upstream_err/thrash 存量,无恢复动作 |
+| **当前在用会话数** | **2** 个 | C-1/C-2 契约核对 running(lan-248 / lan-204);余 3 实例(local-45278/lan-189/pub-iwintrue)全 idle,配额充足 |
+| **会话平均利用率** | 低 | 黑窗期仅契约核对文档任务在途,未满并发 |
+
+> **「确保所有会话都分派了开发任务」职责核验(本轮结论)**:任务池仍为空(⏳ 0 键、0 新增能力键),黑窗 429 至 08:00 仍存——但 O-7 契约补建工作流已获主理人最终确认(23:59),本轮**突破「零派发」惯例**,按 O-7 第 3 条「后续 P0 批次照此节奏推进」滚动派发任务-激励批次契约核对(文档层非假 RED,axonhub/deepseek 绕黑窗 A/B 两组)。剩余 3 实例空闲因全局并发 limit=4 且契约核对任务粒度受限,滚动下一批(商城/家庭)待本批产出核验后推进(见「四」)。
+
+### 1.2b 各会话当前工作状态列表
+
+| 会话标签 | 会话 ID | 当前状态 | 当前任务 | 工作目录 | 备注 |
+|----------|---------|----------|----------|----------|------|
+| lan-248 | ses_e4e26bef2ffeh84RRCBpLCnk6z | `running` | C-1 契约核对:任务-激励 22SC A 组 | /sc-data/cfc | `--confirm` 已确认执行;axonhub/deepseek |
+| lan-204 | ses_e4e261541ffeuFWK05kGun8uGd | `running` | C-2 契约核对:任务-激励 22SC B 组 | D:\cfc | `--confirm` 已确认执行;axonhub/deepseek |
+| local-45278 | (143 会话枚举) | `idle` | — | — | 黑窗期无在途 |
+| lan-189 | (81 会话枚举) | `idle` | — | — | 黑窗期无在途 |
+| pub-iwintrue | (152 会话枚举) | `idle` | — | — | 部署会话;黑窗期无在途 |
+| prod-etotem | — | 不可达 | — | — | HTTP 401(非研发恢复范围,占位登记) |
+| 主工作树 E:/cfc | — | `idle`(只读) | — | **不干净(136 处他人 WIP)** | 未触碰、未代提交(按 O-3 判据③ SC 关联提交级,不计入转正判据) |
+
+> 无空闲会话也要列(标 idle);全局并发 limit=4,当前 running=2 未触及;无 wedged/thrash/swallowed/upstream_err/stalled/blocked 存量。
+
+### 1.3 变更感知与新任务建立
+
+| 指标 | 数量 | 说明 |
+|------|------|------|
+| **感知需求/设计变更数*** | 近 7 天(`--changes --days 7`) | 200 提交 / 3223 文件,全为既有键变化 |
+| **新增入池任务数*** | **0** 个 | 新增能力键 **0**(0→0,`--changes` 确认无新键)→ 未 --add-task;**契约补建 P0 批次按 O-7 授权以文档核对推进(非 --add-task 入池型)** |
+| **既有键状态流转数** | **0** 次 | 8 YELLOW 维持(测试侧 mark-green 于自有账本,主工作树 state.json 未同步,见 1.5 与阻塞) |
+| **本轮实质推进** | **1 项** | **任务-激励 22 SC 开工包** `docs/tdd/orchestration/task-incentive-kickoff-20261107.md`(ce8c4b4b7)+ CI_READINESS 二·九节 + 2 个契约核对会话派发——O-7 授权后**首个滚动的 P0 批次** |
+
+### 1.4 本轮 git 提交与推送证据(真理证据)
+
+| 提交 sha | 关联任务/能力键 | 阶段 | 触及文件类型 | 目标分支 | 已推送远端 | 备注 |
+|----------|-----------------|------|--------------|----------|------------|------|
+| ce8c4b4b7 | 契约补建 P0 任务-激励 22 SC 开工包 | 文档(开工包) | docs/tdd/orchestration/task-incentive-kickoff-20261107.md(1A 无删除) | cfclub | ✅ `2cb2f780a..ce8c4b4b7` | 单文件 hash-object 入库,`merge-base --is-ancestor` ✓;首 push 遭 auto-bump 2cb2f780a 并发非快进 → 基于最新 tip 重建成功 |
+
+### 1.5 状态机阶段分布与部署状态
+
+| 阶段 | 键数 | 备注 |
+|------|------|------|
+| UNTRACKED | 0 | 无未入池 ⏳(目标池 0 键 = 池空) |
+| RED | 0 | 3 个原 RED(achievement.grid.fiveCol / growth.history.view / task.history.view)已前期登记 YELLOW |
+| YELLOW | **8** | health.report.createReport(1767d4414) / dan.assessment.getActiveMaterial(c3e32460a) / admin.auth.login(6c7e09fe8) / health.report.upload(78b72c14f) / task.history.view(ed8f1c347) / growth.history.view(da2727f53) / sleep.config.tags(04d87cfd1*) / achievement.grid.fiveCol(e205656ee) |
+| GREEN | 0 | 测试侧自有账本「状态机 5 键 GREEN 第 7 轮维持」(第 64 轮 78976243e)——**跨目录账本分裂**:测试侧 mark-green 于自有账本,主工作树 state.json 未同步(已知 O-1 口径,编排侧/主理人同步责任) |
+| DONE | **12** | auth.guest.jwtGuard / auth.guest.wechatLogin / dimension.registry.getTree / dimension.registry.mapLegacyCode / family.familyMembers.addMember / family.familyMembers.listMembers / guide.trainingPlan.getPlanList / guide.trainingPlan.getPlanDetail / family.parent.switchRole / task.parent.createTask / task.parent.review / reward.cfEstimate.expectedCf |
+
+**8 个 YELLOW 实现 sha 逐条 `git merge-base --is-ancestor` 核验:全 IN CHAIN ✓(8/8,本轮复验一致,与第 45~48 轮无漂移)。**
+
+部署状态:`deploy_state.json` pending=1(testing@292087771,done=true,done_at 2026-11-06 19:22:17);confirmed=20。last_deployed=292087771 后 origin/cfclub main 变更(30ae86d7d/895e500e1/def9c83a3,onboarding/商品标签)仍待部署侧核对 cron 实际版本(第 43 轮已登记,非研发实现缺口)。
+
+### 1.6 阻塞与风险
+
+| 编号 | 类型 | 内容 | 状态 |
+|------|------|------|------|
+| B-1 | 研发 | cfc-backend surefire 13 红(148 用例 8 fail+5 error 长期未修;1315/1491 @Test 无执行记录) | 待处理 |
+| B-2 | 研发 | R5 admin-auth/login 未授权/空 body 返回 500(应 401/403) | 待处理(实现已 YELLOW 6c7e09fe8,待测试复验) |
+| B-3 | 研发 | R6 报告上传未做 MIME/扩展名校验 | 待处理(实现已 YELLOW 78b72c14f,待测试复验) |
+| B-4 | 研发 | F1/F2 butler envelope / commission 400 | 待处理 |
+| B-5 | 研发 | 接口冒烟 REAL_ERR 49 条未派单 | 待处理 |
+| B-6/B-7 | 研发 | health.report.createReport / dan.assessment.getActiveMaterial RED 停滞(实为缺 mark-yellow,已补登) | 已转为 YELLOW |
+| B-9 | 研发 | guide.trainingPlan.getPlanDetail 鉴权缺口观察(getPlanList 同类) | 待处理(观察项,不阻断) |
+| B-11 | 研发 | /api/cf 三端点删除待确认意图(44b2f0d42,1528 例零转红) | 待处理 |
+| B-12 | 研发/测试 | 3 类 20 个 @Test 长期 @Disabled(数据夹具缺失) | 待处理 |
+| B-13 | 研发/环境 | 3 个 @SpringBootTest 硬编码 127.0.0.1:3306(本机无 MySQL→8 例每轮必红) | 待处理 |
+| B-14 | 研发/流程 | 测试窗口内并发提交基线漂移(38 轮),定向补跑已处置 | 部分处置 |
+| O-7 | 主理人 | 契约补建工作流授权(23:59 最终确认生效):契约核对=文档核对+端点比对防假RED;P0 批次渐进滚动 | **已生效**(本轮按此派发任务-激励批) |
+| O-8 | 主理人 | sc-key-map 台账归一:O-3 转正 5 SC 双行制未归一 + 5 新 SC(P-94~96/C-26/A-27)未入册(236→241 口径未落地) | **待主理人最终确认**(裁决意见 00:35 第 46 轮已给出;本轮未擅改台账基线,只读盘点 sc-key-map 计数仍 236) |
+
+---
+
+## 二、测试结果与分析(本轮无新测试批次,引测试侧最新)
+
+- 测试侧第 64 轮(78976243e)定向契约复验:**15 类 169 例 = 165 绿 / 4 红(97.63%)**,独立 worktree 干净基线;4 红全承袭零漂移(P-2 MapContract 3 + S-cfc-31 blank-key 1);testCompile 232 源 0 错;5 证据 sha 全 IN CHAIN;状态机 5 键 GREEN 第 7 轮维持。
+- 测试侧第 63 轮(c01f4cfdb)增量复核:前端 313/313、管理端 90/90、pytest 49/2/12(96.08%);后端承袭 1847/93.50% 零漂移(第 8 次)。
+- **结论**:测试基线稳定、无新回归;研发侧无需响应新测试问题,8 YELLOW 键实现已就绪,唯一收口缺口 = 测试侧 mark-green(跨目录账本同步)。
+
+---
+
+## 三、本阶段关键决策与依据
+
+1. **突破零派发惯例,按 O-7 滚动 P0 批次**(本轮核心决策):O-7 已获主理人 23:59 最终确认生效(契约核对=文档核对+端点比对防假 RED,渐进而非全量)。B-1/B-2 两批(66 SC)契约核对完成后,本轮创建「任务-激励 22 SC」开工包(18 个类级端点经 grep 核验**全部存在、0 缺失**,无真实现缺口)并派发 A/B 两组契约核对(lan-248/lan-204,axonhub/deepseek 绕 429 黑窗,--confirm 确认执行)。**依据 O-7 第 3 条「每批契约文档合入 origin/cfclub 后由研发负责人滚动派发契约核对」**。
+2. **8 YELLOW 键复核一致**:全部实现 sha IN CHAIN(8/8),与第 45/46/47/48 轮结论一致,无漂移。
+3. **防假 RED 纪律延续**:任务-激励批次端点 18/18 已实现 → 不建研发实现型 RED、不 --add-task 入池;契约核对产出契约文档合入后转测试侧补契约 JUnit + 三类流证据(TR-7 通道)。
+4. **O-8 待主理人确认**:维持第 46 轮裁决意见(双行制归一 + 5 新 SC 入册 236→241 + DEV_GOAL 同步);本轮只读盘点核对 sc-key-map 唯一 SC 计数仍 236,未擅改。
+
+---
+
+## 四、下轮工作规划
+
+1. **核验 C-1/C-2 契约核对产出**:会话产出契约结论文档后按同法提取合入 origin/cfclub(单/少文件,diff --name-status 复核无删除),滚动下一 P0 批次(商城-会员 18 SC / 家庭-成员 15 SC,本轮已预核核心端点均存在)。
+2. **08:00 黑窗解除后**:按 O-7 渐进批次继续 P0 剩余批次(商城 18 / 家庭 15 / 五维 12)契约补建 → 契约入池 → 派发。
+3. **8 YELLOW 收口跟进**:督促测试侧对 8 键 `--mark-green`(TR-6 在途);关注跨目录账本同步。
+4. **O-8 落地跟进**:主理人确认后同步 sc-key-map.md(236→241)与 DEV_GOAL 顶层目标。
+5. **历史 blockers 清账**:B-11 / B-13 等可随契约补建批次顺带处置;主工作树 136 处他人 WIP 不代提交(纪律④)。
+
+---
+
+## 附录 A:本轮核查命令
+
+```bash
+tdd_orchestrate.py --status --role 研发负责人      # 状态机 20 键 = 12 DONE + 8 YELLOW + 0 RED,目标池 0
+tdd_orchestrate.py --clean-check --project E:/cfc  # 主工作树 136 处他人 WIP(只读,不代提交)
+hub.py status --json / sessions --json              # 6 实例 5 可达(prod-etotem 401),running_cfc=0,limit=4
+tdd_orchestrate.py --changes --days 7 --role 研发负责人  # 0 新增能力键 → 0 --add-task
+grep -rl RequestMapping("...") controller/          # 任务-激励 18 端点存在性核验 18/18 命中
+# 契约核对派发:hub.py dispatch --instance lan-248/lan-204 --model axonhub/deepseek --confirm
+```
+
+## 附录 B:状态机 20 键分布
+
+- **DONE 12**:auth.guest.jwtGuard / auth.guest.wechatLogin / dimension.registry.getTree / dimension.registry.mapLegacyCode / family.familyMembers.addMember / family.familyMembers.listMembers / guide.trainingPlan.getPlanList / guide.trainingPlan.getPlanDetail / family.parent.switchRole / task.parent.createTask / task.parent.review / reward.cfEstimate.expectedCf
+- **YELLOW 8**:admin.auth.login(6c7e09fe8) / health.report.upload(78b72c14f) / health.report.createReport(1767d4414) / dan.assessment.getActiveMaterial(c3e32460a) / task.history.view(ed8f1c347) / growth.history.view(da2727f53) / sleep.config.tags(04d87cfd1*) / achievement.grid.fiveCol(e205656ee)
+- **RED 0 / UNTRACKED 0 / GREEN 0**
+
+## 附录 C:契约补建 P0 进度(只读盘点)
+
+| 批次 | SC 数 | 开工包 | 状态 |
+|------|-------|--------|------|
+| B-1 测评-方案 | 43 | dan-plan-kickoff-20261106.md(ac1329316) | 契约核对完成,端点 0 缺失 |
+| B-2 报告闭环 | 23 | report-closedloop-kickoff-20261106.md(ac1329316) | 契约核对完成(525a40b70 已合 API_REFERENCE 4.59),端点 0 缺失 |
+| **C-1 任务-激励(本轮)** | **22** | **task-incentive-kickoff-20261107.md(ce8c4b4b7)** | **开工包已合入;A/B 组契约核对派发中(lan-248/lan-204)** |
+| C-2 商城-会员 | 18 | 待下批 | 核心端点预核存在(membership/coupon/coupon-gift/product/ProductOrder 等) |
+| C-3 家庭-成员 | 15 | 待下批 | 核心端点预核存在(family/FamilyController、FamilyMembersController、guide/GuideController 等) |
+| C-4 五维能量 | 12 | 待后续 | dimension.* / energy.*(EnergyController /api/energy 已存在) |
+
+## 附录 D:场景覆盖矩阵
+
+- 总数 **236**(O-4 正本 0a50c44cc;sc-key-map 只读计数 236,O-8 待主理人确认 236→241)
+- 累计已跑通 **5**(SC-G-02/G-06/P-03/P-10/P-11,O-3 已裁决转正,证据 sha 8051b64f1/df2364ba3/f1b0e3ed5/f41da2779/291955bce 全 IN CHAIN)
+- 本轮新增跑通 **0**;失败 **0**;阻塞 **0**;未跟踪 **231**
+- 本轮推进:SC-P-12/13/14/15/16/77/86/87/88、SC-C-02/04/05/09/10/14/22/24、SC-T-06/18、SC-A-05、SC-B-07、SC-X-05(任务-激励 22 SC 契约补建前置,开工包 ce8c4b4b7;距「已跑通」仍差 ①契约核对产出合入 ②测试侧补契约 JUnit ③三类流执行证据 ④mark-green)

+ 19 - 19
docs/tdd/orchestration/sc-key-map.md

@@ -6,8 +6,9 @@
 
 ## 计数口径(DEV_GOAL §一、§五 一致,勿混用)
 
-- **场景总数**:**236**(游客 12 / 家长 93 / 孩子 25 / 规划师 32 / 运营 24 / 服务商 11 / 跨角色 22 / AI 成长教练 10 / 真人管家 7)。
+- **场景总数**:**241**(游客 12 / 家长 96 / 孩子 26 / 规划师 32 / 运营 25 / 服务商 11 / 跨角色 22 / AI 成长教练 10 / 真人管家 7)。
   - 演进记录(2026-11-05):origin 场景基线 218 → 230(08-butler SC-B-01~12,空号 03/08)→ 235(09-human-butler SC-H-01~07,AI 管家聚焦为 AI 成长教练、删 SC-B-03/08)→ 236(SC-X-22 CF 值获取预估)。DEV_GOAL 目标口径经 O-4 裁决(2026-11-06)更新为 **236**,与台账一致。
+  - 演进记录(2026-11-07):O-8 裁决落地(2cc7e3aad 需求变更)——SC-P-94~96 / SC-C-26 / SC-A-27 入册,基线 **236 → 241**(家长 93→96、孩子 25→26、运营 24→25);DEV_GOAL 顶层目标同步更新为 **241**。
 - **累计已跑通** = 同时满足三条的 SC 数:① 正常流/异常流/权限流三类用例**实际执行证据**;② 实现与用例**已 push `origin/cfclub`**(`git merge-base --is-ancestor` 核验);③ 工作区干净(`--clean-check` 退出码 0)。
 - **不算跑通**:仅代码提交、仅编译通过、仅接口单测、会话自述、仅用例写完未执行。
 - **能力键 DONE ≠ SC 跑通**:一 SC 可映射 N 个能力键(1:N),一能力键可被 M 个 SC 共享(M:1);state.json 只证明实现闭环,不作跑通计数。
@@ -19,17 +20,11 @@
 3. **场景层测试侧先行仅为补充**:SC 已有实现但缺三类流执行证据时,由测试侧补 e2e/契约脚本,不建伪能力键。
 4. **禁止合成场景键**:不得创建 `scenario.*` / `sc_*` 等无契约、无用例引用的自证键。
 
-## 已知映射(方案 A 已执行,状态机 DONE)
+## 已跑通(O-3 收口 5 SC,权威记录见下方全量登记主表)
 
-| SC | 角色 | 能力键 | 键阶段 | 备注 |
-|----|------|--------|--------|------|
-| SC-G-02 | 游客 | auth.guest.wechatLogin | DONE | 跑通(2026-11-06 O-3 收口 · 契约 8051b64f 已推 origin/cfclub) |
-| SC-G-06 | 游客 | auth.guest.jwtGuard | DONE | 跑通(2026-11-06 O-3 收口 · 契约 df2364ba3 已推 origin/cfclub) |
-| SC-P-03 | 家长 | family.parent.switchRole | DONE | 跑通(2026-11-06 O-3 收口 · 契约+实现 f1b0e3ed5 已推 origin/cfclub) |
-| SC-P-10 | 家长 | task.parent.createTask | DONE | 跑通(2026-11-06 O-3 收口 · 实现+执行证据 f41da2779 已推 origin/cfclub) |
-| SC-P-11 | 家长 | task.parent.review | DONE | 跑通(2026-11-06 O-3 收口 · 契约 291955bce 已推 origin/cfclub) |
+SC-G-02 / SC-G-06 / SC-P-03 / SC-P-10 / SC-P-11 共 5 个 SC 已于 2026-11-06 O-3 收口转正跑通,证据 sha:`8051b64f1` / `df2364ba3` / `f1b0e3ed5` / `f41da2779` / `291955bce`(全部 `git merge-base --is-ancestor origin/cfclub` ✓)。主表对应行已同步「已跑通」,此处不再重复列行(避免双行制计数歧义)。
 
-## 全量登记(236 SC)
+## 全量登记(241 SC,O-8 归一后)
 
 | SC | 角色 | 业务域 | 场景标题 | 对应能力键 | 键阶段 | 跑通状态 | 三类流证据 |
 |----|------|--------|----------|-----------|--------|----------|------------|
@@ -57,6 +52,7 @@
 | SC-A-22 | 平台运营 | 业务域 L:交易延伸 / 内容 / 多端 | 精准营养知识库管理 | — | — | 未跑通 | — |
 | SC-A-25 | 平台运营 | 业务域(运营):五维配置治理 | 维度/权重/每日上限配置 CRUD 与生效 | — | — | 未跑通 | — |
 | SC-A-26 | 平台运营 | 业务域(运营):五维配置治理 | 能量来源比例与归因权重治理 | — | — | 未跑通 | — |
+| SC-A-27 | 平台运营 | 业务域(运营):健康打卡配置治理 | 后台维护睡眠情况选项(增删改查)并同步小程序端 | sleep.config.tags | YELLOW | 未跑通 | 实现已在 origin/cfclub(2997a9f2c 系);三类流证据待补 |
 | SC-C-01 | 孩子(不能登录视角) | 业务域 L:交易延伸 / 内容 / 多端 | 孩子端登录(无家长入口) | — | — | 未跑通 | — |
 | SC-C-02 | 孩子(不能登录视角) | 业务域 L:交易延伸 / 内容 / 多端 | 执行任务 / 小游戏得积分 | — | — | 未跑通 | — |
 | SC-C-03 | 孩子(不能登录视角) | 业务域 L:交易延伸 / 内容 / 多端 | 小游戏成绩上报 | — | — | 未跑通 | — |
@@ -82,6 +78,7 @@
 | SC-C-23 | 孩子(不能登录视角) | 业务域 L:交易延伸 / 内容 / 多端 | 意见反馈(孩子端) | — | — | 未跑通 | — |
 | SC-C-24 | 孩子(不能登录视角) | 业务域(孩子):自身五维变化 | 小游戏/任务得分触发五维增长(仅自身可见) | — | — | 未跑通 | — |
 | SC-C-25 | 孩子(不能登录视角) | 业务域(孩子):自身五维变化 | 方案任务打卡触发五维增长 | — | — | 未跑通 | — |
+| SC-C-26 | 孩子(不能登录视角) | 业务域(孩子):健康打卡 | 睡眠打卡:睡眠情况含「正常」选项且由后台配置驱动 | sleep.config.tags | YELLOW | 未跑通 | 实现已在 origin/cfclub;三类流证据待补 |
 | SC-X-01 | 跨角色 | 业务域 L:交易延伸 / 内容 / 多端 | 测评全链路 ⭐ | — | — | 未跑通 | — |
 | SC-X-02 | 跨角色 | 业务域 L:交易延伸 / 内容 / 多端 | 报告闭环 ⭐ | — | — | 未跑通 | — |
 | SC-X-03 | 跨角色 | 业务域 L:交易延伸 / 内容 / 多端 | 双角色数据隔离越权 | — | — | 未跑通 | — |
@@ -104,11 +101,11 @@
 | SC-X-20 | 跨角色 | 业务域(跨角色):五维隔离·对账·并发 | 五维能量流水溯源一致性(对账) | — | — | 未跑通 | — |
 | SC-X-21 | 跨角色 | 业务域(跨角色):五维隔离·对账·并发 | 多来源并发同成员能量变动 | — | — | 未跑通 | — |
 | SC-G-01 | 游客 |  | 首次进入小程序/落地页 | — | — | 未跑通 | — |
-| SC-G-02 | 游客 |  | 微信授权登录 | auth.guest.wechatLogin | DONE | 未跑通(实现已闭环,待三类流证据) | 实现已推远端;三类流执行证据待补 |
+| SC-G-02 | 游客 |  | 微信授权登录 | auth.guest.wechatLogin | DONE | 已跑通(2026-11-06 O-3 收口) | 三类流证据已推远端(8051b64f) |
 | SC-G-03 | 游客 |  | 登录方式口径(小程序端 / Web 管理后台) | — | — | 未跑通 | — |
 | SC-G-04 | 游客 |  | 邀请码注册加入家庭 | — | — | 未跑通 | — |
 | SC-G-05 | 游客 |  | 浏览商城/文章(未登录受限) | — | — | 未跑通 | — |
-| SC-G-06 | 游客 |  | 越权接口拦截 | auth.guest.jwtGuard | DONE | 未跑通(实现已闭环,待三类流证据) | 实现已推远端;三类流执行证据待补 |
+| SC-G-06 | 游客 |  | 越权接口拦截 | auth.guest.jwtGuard | DONE | 已跑通(2026-11-06 O-3 收口) | 三类流证据已推远端(df2364ba3) |
 | SC-G-07 | 游客 |  | 微信测试模式跳过授权 | — | — | 未跑通 | — |
 | SC-G-08 | 游客 |  | 环境自适应切换 | — | — | 未跑通 | — |
 | SC-G-09 | 游客 |  | 退出登录 | — | — | 未跑通 | — |
@@ -117,15 +114,15 @@
 | SC-G-12 | 游客 |  | 非微信环境 H5 兜底 | — | — | 未跑通 | — |
 | SC-P-01 | 家长 | 业务域 A:家庭与成员管理 | 创建家庭 + 邀请二维码 | — | — | 未跑通 | — |
 | SC-P-02 | 家长 | 业务域 A:家庭与成员管理 | 邀请成员 + 关系编辑 | — | — | 未跑通 | — |
-| SC-P-03 | 家长 | 业务域 A:家庭与成员管理 | 双角色切换(家长↔孩子) | family.parent.switchRole | DONE | 未跑通(实现已闭环,待三类流证据) | 实现已推远端;三类流执行证据待补 |
+| SC-P-03 | 家长 | 业务域 A:家庭与成员管理 | 双角色切换(家长↔孩子) | family.parent.switchRole | DONE | 已跑通(2026-11-06 O-3 收口) | 三类流证据已推远端(f1b0e3ed5) |
 | SC-P-04 | 家长 | 业务域 A:家庭与成员管理 | 家庭成员列表查看 | — | — | 未跑通 | — |
 | SC-P-05 | 家长 | 业务域 A:家庭与成员管理 | 编辑成员资料 | — | — | 未跑通 | — |
 | SC-P-06 | 家长 | 业务域 A:家庭与成员管理 | 移除/删除成员 | — | — | 未跑通 | — |
 | SC-P-07 | 家长 | 业务域 A:家庭与成员管理 | 家庭关系图查看 | — | — | 未跑通 | — |
 | SC-P-08 | 家长 | 业务域 A:家庭与成员管理 | 成员权限设置 | — | — | 未跑通 | — |
 | SC-P-09 | 家长 | 业务域 A:家庭与成员管理 | 邀请码失效/重生成 | — | — | 未跑通 | — |
-| SC-P-10 | 家长 | 业务域 B:任务与激励 | 创建任务 + 下发 | task.parent.createTask | DONE | 未跑通(实现已闭环,待三类流证据) | 实现已推远端;三类流执行证据待补 |
-| SC-P-11 | 家长 | 业务域 B:任务与激励 | 任务审批完成(通过/驳回) | task.parent.review | DONE | 未跑通(实现已闭环,待三类流证据) | 实现已推远端;三类流执行证据待补 |
+| SC-P-10 | 家长 | 业务域 B:任务与激励 | 创建任务 + 下发 | task.parent.createTask | DONE | 已跑通(2026-11-06 O-3 收口) | 三类流证据已推远端(f41da2779) |
+| SC-P-11 | 家长 | 业务域 B:任务与激励 | 任务审批完成(通过/驳回) | task.parent.review | DONE | 已跑通(2026-11-06 O-3 收口) | 三类流证据已推远端(291955bce) |
 | SC-P-12 | 家长 | 业务域 B:任务与激励 | 任务频率/周期配置 | — | — | 未跑通 | — |
 | SC-P-13 | 家长 | 业务域 B:任务与激励 | 心愿创建-审批-兑换闭环 | — | — | 未跑通 | — |
 | SC-P-14 | 家长 | 业务域 B:任务与激励 | 心愿驳回/失效处理 | — | — | 未跑通 | — |
@@ -208,6 +205,9 @@
 | SC-P-91 | 家长 | 业务域 C-2(家长):五维能量变化规则 | 健康报告入库刷新五维评分 | — | — | 未跑通 | — |
 | SC-P-92 | 家长 | 业务域 C-2(家长):五维能量变化规则 | 五维权重/来源比例配置变更后重算 | — | — | 未跑通 | — |
 | SC-P-93 | 家长 | 业务域 C-2(家长):五维能量变化规则 | 文章互动与活动参与触发五维能量 | — | — | 未跑通 | — |
+| SC-P-94 | 家长 | 业务域(家长):成就与成长 | 我的成就「完成任务」→ 历史完成任务页面 | task.history.view | YELLOW | 未跑通 | 实现已在 origin/cfclub(ed8f1c347);三类流证据待补 |
+| SC-P-95 | 家长 | 业务域(家长):成就与成长 | 我的成就「成长记录」→ 成长历史记录页(含今日成长打卡记录) | growth.history.view | YELLOW | 未跑通 | 实现已在 origin/cfclub(da2727f53);三类流证据待补 |
+| SC-P-96 | 家长 | 业务域(家长):成就与成长 | 我的成就固定五列显示 | achievement.grid.fiveCol | YELLOW | 未跑通 | 实现已在 origin/cfclub(e205656ee);三类流证据待补 |
 | SC-T-01 | 成长规划师 | 业务域 L:交易延伸 / 内容 / 多端 | 规划师登录 + 切回家长 | — | — | 未跑通 | — |
 | SC-T-02 | 成长规划师 | 业务域 L:交易延伸 / 内容 / 多端 | 绑定测试家庭 | — | — | 未跑通 | — |
 | SC-T-03 | 成长规划师 | 业务域 L:交易延伸 / 内容 / 多端 | 代传报告 + 确认入库(上传报告)⭐ | — | — | 未跑通 | — |
@@ -274,12 +274,12 @@
 
 ## O-4 裁决追认(2026-11-06,主理人拍板)
 
-**本台账为唯一「SC 跑通」计数权威,正本登记 236 个 SC**(截至 2026-11-06 09:35 轮)。
+**本台账为唯一「SC 跑通」计数权威,正本登记 241 个 SC**(截至 2026-11-07 01:2x O-8 轮)。
 
 - **口径**:表格行(含 SC 编号的 `| SC-... |` 记录行)为计数依据;正文描述/演进记录/编号变体引用不单独计数。
-- **统计公式**:`grep -oE '\| *SC-[A-Z]+-[0-9]+ *\|' docs/tdd/orchestration/sc-key-map.md | sort -u | wc -l` = **236**。
-- **修正说明**:2026-11-06 09:35 轮以全文 grep 得 237,因含表外引用与变体引用(SC-T-6=SC-T-06 笔误);本次裁决更正为 **236**。
+- **统计公式**:`grep -oE '\| *SC-[A-Z]+-[0-9]+ *\|' docs/tdd/orchestration/sc-key-map.md | sort -u | wc -l` = **241**(O-8 归一后:O-3 转正 5 SC 双行制已归一为主表「已跑通」,消除 +5 歧义;5 新 SC 入册 236→241)。
+- **修正说明**:2026-11-06 09:35 轮以全文 grep 得 237,因含表外引用与变体引用(SC-T-6=SC-T-06 笔误);本次裁决更正为 **236**。2026-11-07 O-8 轮归一后为 **241**。
 - **SC-B-03 / SC-B-08**:AI 成长教练空号,原移出核心范畴、下沉运营/跨角色,台账已删;总览正文空号说明段落引用不计入。
 - **SC-T-6**:规划师编号无零变体,总览 SC-X-22 产出点清单引用此格式,实际对应台账 `SC-T-06`,不重复计数。
-- **历史演进**:218(2026-11-05 定稿)→ 230(08-butler 补 SC-B 10)→ 235(09-human-butler 补 SC-H 7 并删 SC-B-03/08)→ 236(SC-X-22 CF 预估入池)。
+- **历史演进**:218(2026-11-05 定稿)→ 230(08-butler 补 SC-B 10)→ 235(09-human-butler 补 SC-H 7 并删 SC-B-03/08)→ 236(SC-X-22 CF 预估入池)→ **241(O-8:SC-P-94~96/SC-C-26/SC-A-27 入册)**。
 

+ 54 - 0
docs/tdd/orchestration/shop-member-kickoff-20261107.md

@@ -0,0 +1,54 @@
+# 商城-会员批次 · 开工包(18 SC)
+> 归属:契约补建计划 P0「商城-会员」· 生成 2026-11-07 01:2x
+> 数据源:sc-key-map.md(origin/cfclub,O-8 归一后 241 全量登记)· 端点核对:cfc-backend controller 源码(origin/cfclub 工作树)
+
+## 批次定位
+商品 → 订单 → 支付/退款 → 优惠券 → 会员权益/续费,覆盖家长/商品服务商/平台运营/游客/跨角色五视角;本批 18 个 SC 均无合法能力键(台账「对应能力键」列全为 `—`),需先定契约才能 `--add-task` 入池。**按 O-7 裁决:契约核对 = 文档核对 + 端点比对(防假 RED),本批端点已全部核验存在(见下表),无真实现缺口 → 非研发实现型 RED,产出契约文档后转测试侧(TR-8)补契约 JUnit + 三类流执行证据。**
+
+## 端点核验(18/18 已实现,0 缺失)
+
+| SC | 角色 | 场景标题 | 对应端点(origin/cfclub 工作树) | 核验 |
+|----|------|----------|-------------------------------|------|
+| SC-A-12 | 平台运营 | 订单/退款人工处理 | `ProductOrderController` `/api/product/order/refund/apply`、`/activity/audit`;`PackagePaymentController` `/api/payment/orders/{orderId}/cancel` | ✅ |
+| SC-A-17 | 平台运营 | 优惠券/活动配置管理 | `CouponController` `/api/coupon/available-templates`、`/join-rules`;`CouponGiftController` | ✅ |
+| SC-G-05 | 游客 | 浏览商城/文章(未登录受限) | `ProductController` `/api/product/list`、`/detail`(游客可读,下单须登录由 JwtInterceptor 拦截) | ✅ |
+| SC-P-52 | 家长 | 商品浏览/搜索 | `ProductController` `/api/product/list`、`/detail`、`/spec/map` | ✅ |
+| SC-P-53 | 家长 | 商品详情 | `ProductController` `/api/product/detail`、`/related-products` | ✅ |
+| SC-P-55 | 家长 | 订单支付 | `ProductOrderController` `/api/product/order/create`、`/pay`;`PackagePaymentController` `/api/payment/create`、`/wechat/params` | ✅ |
+| SC-P-56 | 家长 | 订单查询/退款 | `ProductOrderController` `/api/product/order/my`、`/detail`、`/refund/apply` | ✅ |
+| SC-P-57 | 家长 | 优惠券使用 | `CouponController` `/api/coupon/claim`、`/apply`、`/exchange`、`/checkout-list` | ✅ |
+| SC-P-59 | 家长 | 会员权益查看 | `MembershipController` `/api/membership/levels`、`/my`、`/current`、`/can-use` | ✅ |
+| SC-P-60 | 家长 | 会员续费 | `MembershipController` `/api/membership/upgrade`、`/orders/continue`、`/plans` | ✅ |
+| SC-P-75 | 家长 | 优惠券领取(活动/分享) | `CouponController` `/api/coupon/claim`;`CouponGiftController` | ✅ |
+| SC-P-80 | 家长 | 订阅/会员退款与发票 | `MembershipController` `/api/membership/orders`、`/upgrade-records`;`PackagePaymentController` `/api/payment/apply` | ✅ |
+| SC-S-02 | 商品服务商 | 商品管理(上架/编辑) | `ProductController` `/api/product/create`、`/update`、`/shelve`、`/my` | ✅ |
+| SC-S-03 | 商品服务商 | 订单处理(发货) | `ProductOrderController` `/api/product/order/vendor`、`/ship`、`/confirm` | ✅ |
+| SC-S-04 | 商品服务商 | 订单核销(到店) | `ProductOrderController` `/api/product/order/vendor-confirm`、`/activity/sign-in` | ✅ |
+| SC-S-06 | 商品服务商 | 售后/退款处理 | `AfterSalesController` `/api/shop/after-sales/create`、`/list`、`/detail`;`ProductOrderController` `/refund/apply` | ✅ |
+| SC-X-07 | 跨角色 | 商城履约闭环 | `ProductOrderController` `/create`→`/pay`→`/ship`→`/confirm` 全链路 + `handlePaymentSuccess`/`notify` 回调 | ✅ |
+| SC-X-12 | 跨角色 | 会员权益闭环 | `MembershipController` `/levels`→`/upgrade`→`/orders`→`/can-use` 全链路 + `notify` 回调 | ✅ |
+
+**结论**:18/18 端点已实现(0 缺失)→ 无真实现缺口,不建伪实现任务(O-7 裁决「非研发实现型 RED」)。契约文档与映射入池后转测试侧 TR-8 补契约 JUnit + 三类流证据。
+
+## 建议能力键(契约定稿后按 O-2 方案 A 映射)
+
+- `product.browse`(SC-P-52 / SC-P-53 / SC-G-05)
+- `order.pay`(SC-P-55)
+- `order.refund`(SC-P-56 / SC-S-06 / SC-A-12)
+- `coupon.use`(SC-P-57 / SC-P-75)
+- `membership.view`(SC-P-59)
+- `membership.renew`(SC-P-60 / SC-P-80)
+- `product.manage`(SC-S-02)
+- `order.ship`(SC-S-03 / SC-S-04)
+- `order.fulfill`(SC-X-07)
+- `membership.fulfill`(SC-X-12)
+- `admin.order.manual`(SC-A-12)
+- `admin.coupon.config`(SC-A-17)
+
+> 注:以上为**建议映射**(防假 RED 端点核验用),非最终契约键;契约文档定稿时须逐条对齐 `docs/superpowers/api/API_REFERENCE.md` 与 `tests/test-cases/*.md` 派生用例,避免键名与既有契约冲突。
+
+## 待办(O-7 授权节奏)
+
+1. 契约文档定稿(API_REFERENCE 4.x 增补「商城-会员」接口范围 + 契约缺口映射)→ 合入 origin/cfclub
+2. 测试侧 TR-8 登记:补契约 JUnit + 三类流执行证据
+3. 下一批「家庭-成员 15 SC」照此节奏滚动

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio