Explorar o código

docs(tdd): 错峰03 第69轮 - GAP-A 契约§6四项拍板生效(①DEVICE/②tier2/③A/④不加索引) + O-17追加 + 研发汇报

Agnes Agent hai 4 días
pai
achega
ffe8bf76d9

+ 11 - 11
docs/superpowers/specs/2026-11-08-dx-health-bridge.md

@@ -48,17 +48,17 @@ D/X 同步引擎(`HealthSyncServiceImpl` / `XiaomiHealthServiceImpl`)已实
 | `dimension` | `dimension_codes`(逗号分隔) | 切分后逐码 `body.X` → `X`;须 ∈ {growth,sleep,vision,immunity,nutrition,gut,exercise},未知码丢弃 | 一条 source 记录可产出多行(如 body_weight → nutrition+growth 两行) |
 | `score` | `parsed_result.normalized.score` | 直取(0-100 带归一化分,BAND_SCORE 已产出) | 多源同日冲突:**读最新覆盖**(与原 §3c 语义一致:`getLatest` created_at DESC LIMIT 1) |
 | `percentile` | `parsed_result.normalized.percentile` | 直取(可空) | |
-| `data_source` | `parsed_result.sourceType` | `huawei_health` / `xiaomi_health` 映射为 `REPORT` 语义(设备采集 Auto)→ 建议新增 `DEVICE`;未拍板前暂用 `REPORT` | **待拍板项 ①** |
-| `tier` | — | D/X 设备自动采集 = 可信度 2(AI 分析级),随 data_source 裁决 | **待拍板项 ②** |
+| `data_source` | `parsed_result.sourceType` | `huawei_health` / `xiaomi_health` 映射为 `DEVICE`(设备采集 Auto;已拍板 §6 ①) | 已拍板:DEVICE |
+| `tier` | — | D/X 设备自动采集 = 可信度 2(AI 分析级;已拍板 §6 ②) | 已拍板:tier=2 |
 | `raw_data` | `parsed_result`(整条 JSON) | 直存,含 dataType/单位/原始指标 | |
 | `assess_date` | `created_at` 对应采集日 | 取指标采集点日期(HuaweiHealthDataPoint 携带时间戳) | 过期语义沿用 `expire_date` 规则 |
 
-**写入语义**:幂等 upsert(member_id+dimension+assess_date 冲突 → 覆盖),**不得**与报告/手动填分产生的 `health_dimension_scores` 行互相覆盖消灭——按 `tier`/`data_source` 分层保留(报告 tier=1 最高优先级)。**防负向回归**:桥接不得降低既有 REPORT/MANUAL 得分行的有效性(非覆盖语义待拍板)。
+**写入语义**:幂等 upsert(member_id+dimension+assess_date 冲突 → 覆盖),**不得**与报告/手动填分产生的 `health_dimension_scores` 行互相覆盖消灭——按 `tier`/`data_source` 分层保留(报告 tier=1 最高优先级)。**防负向回归**:桥接不得降低既有 REPORT/MANUAL 得分行的有效性(非覆盖语义已拍板:按 tier/data_source 分层保留,报告 tier=1 最高优先级)。
 
 ### 3.2 消费侧接线契约
 
 1. **`DimensionScoreServiceImpl` 死注入解除**:注入的 `dataSourceRecordService` 必须产生真实调用——新增桥接步骤(建议独立 `HealthDataSourceBridgeService`):同步成功后把本批 `health_data_sources` 行按 §3.1 写入/更新 `health_dimension_scores`;`/api/dimension/overview`、`/api/dimension-registry/*` 由此自然读到 D/X 得分。
-2. **写入触发点(二选一,待拍板项 ③)**:
+2. **写入触发点(已拍板:A 同步内事务桥接,见 §6 ③)**:
    - A:同步链路内(`saveRecord` 后同事务桥接)——实现简单、实时;
    - B:`health_data_sources` 新行侧车(读时桥接)——无写扩散但多一跳。
 3. **档案展示**:`POST /api/health/indicators/current`(读 `member_indicator_current`)与 `POST /api/health/body/detail`(读 `health_indicator`)**提供 D/X 来源展示**——新增读取源或合并视图,字段口径:`body.*` 得分可溯源 `source=huawei_health/xiaomi_health` + 采集时间 + 原始值(步数/心率/睡眠 h/体重 kg)。
@@ -82,8 +82,8 @@ D/X 同步引擎(`HealthSyncServiceImpl` / `XiaomiHealthServiceImpl`)已实
 
 - **无新表**(复用 `health_data_sources` 读 + `health_dimension_scores` 写)。
 - 唯一迁移变更(若拍板):
-  1. `health_dimension_scores.data_source` 注释与取值枚举扩展 `DEVICE`(可选,待拍板项 ①);
-  2. 如需幂等 upsert:`health_dimension_scores` 加唯一索引(member_id, dimension, assess_date)——**⚠ 影响存储**:该表已被报告/手动链路共用,加唯一索引需先查重清理,**列为待拍板项 ④,默认不加**(沿用读最新覆盖)。
+  1. `health_dimension_scores.data_source` 注释与取值枚举扩展 `DEVICE`(已拍板:扩展,见 §6 ①);
+  2. 如需幂等 upsert:`health_dimension_scores` 加唯一索引(member_id, dimension, assess_date)——**⚠ 影响存储**:该表已被报告/手动链路共用,加唯一索引需先查重清理,**已拍板:不加唯一索引(见 §6 ④)**(沿用读最新覆盖)。
 
 ## 5. 测试侧证据要求(契约合入后转 TR 补证,防伪证)
 
@@ -99,12 +99,12 @@ D/X 同步引擎(`HealthSyncServiceImpl` / `XiaomiHealthServiceImpl`)已实
 
 | 项 | 内容 | 建议 |
 |---|---|---|
-| ① | `data_source` 取值:新增 `DEVICE` 还是沿用 `REPORT` | 新增 `DEVICE`(语义清晰,成本=枚举+注释) |
-| ② | `tier` 可信度:D/X 设备采集 = 2 还是 3 | 2(设备自动采集 ≈ AI 分析级,非手动) |
-| ③ | 桥接触发点:同步内事务桥接(A)vs 读时桥接(B) | A(实时、简单) |
-| ④ | `health_dimension_scores` 是否加唯一索引做幂等 upsert | 不加(默认读最新覆盖,避免动共享表) |
+| ① | `data_source` 取值:新增 `DEVICE` 还是沿用 `REPORT` | **已拍板:新增 DEVICE(语义清晰,成本=枚举+注释)**(主理人裁决 2026-11-08) |
+| ② | `tier` 可信度:D/X 设备采集 = 2 还是 3 | **已拍板:tier=2(设备自动采集 ≈ AI 分析级,非手动)**(主理人裁决 2026-11-08) |
+| ③ | 桥接触发点:同步内事务桥接(A)vs 读时桥接(B) | **已拍板:A(同步内事务桥接,实时、简单)**(主理人裁决 2026-11-08) |
+| ④ | `health_dimension_scores` 是否加唯一索引做幂等 upsert | **已拍板:不加唯一索引(默认读最新覆盖,避免动共享表)**(主理人裁决 2026-11-08) |
 
-> 以上默认建议为研发负责人先行意见,随本契约提交主理人/产品侧拍板;未拍板项按「保守不改」原则执行。
+> 以上已由主理人裁决生效(2026-11-08):① DEVICE / ② tier=2 / ③ 触发点 A(同步内事务桥接)/ ④ 不加唯一索引。契约已登记至 O-17,桥接实现(P1)待入 TDD 池派发(O-14「不纳入 241 基线」口径不变)。
 
 ## 7. 状态与后续
 

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
docs/tdd/orchestration/pending.md


+ 130 - 0
docs/tdd/orchestration/report-dev-2026-11-08-2052.md

@@ -0,0 +1,130 @@
+# 研发负责人工作汇报(错峰03 · 2026-11-08 20:5x 轮)
+
+> 汇报人:研发负责人(错峰03 自动化)|汇报周期:2026-11-08(第 69 轮)|负责模块:TDD 编排全域
+
+---
+
+## 一、本轮工作数据汇总
+
+### 1.1 问题接收与处置
+
+| 指标 | 数量 | 说明 |
+|------|------|------|
+| 收到的测试反馈问题数* | 0 个 | blockers 台账空(无已登记阻塞),无新 B-* 需研发处理 |
+| 已解决问题数* | 0 个 | 本轮无研发侧闭环动作(RED 任务均属测试侧契约单测职责,研发不派) |
+| 待解决研发问题数 | 3 项 | ① GAP-A 桥接实现(P1)待 §6 拍板后入 TDD 池派发;② 27 YELLOW 键待测试侧 mark-green 复验;③ B-61 部署(ba6c0ebe6→testing)待部署侧放行 |
+
+### 1.2 任务分发与会话管理
+
+| 指标 | 数量 | 说明 |
+|------|------|------|
+| 分派任务数* | 0 个 | 目标池 0 键,无新派发;S-cfc-79(RED 契约单测,dispatched)属测试侧职责不重派 |
+| 恢复智能体会话数* | 0 个 | 5 节点全部 idle(busy=0/interrupted=0),无中断需恢复 |
+| 当前在用会话数 | 0 个 | 5 节点各 50 会话全 idle,配额占用 0,剩余 3 |
+| 会话平均利用率 | 0 % | 本轮无在途会话 |
+
+### 1.2b 各会话当前工作状态列表
+
+| 会话标签 | 会话 ID | 当前状态 | 当前任务 | 静默/空闲时长 | 工作目录 | 备注 |
+|----------|---------|----------|----------|---------------|----------|------|
+| lan-189 | (50 会话) | idle | — | — | 不干净(主工作树 293+ 处他人 WIP) | 配额剩余 3 |
+| lan-204 | (50 会话) | idle | — | — | 不干净(同上) | 配额剩余 3 |
+| local-lan-4090 | (50 会话) | idle | — | — | 不干净(同上) | 配额剩余 3 |
+| mes-local-45278 | (50 会话) | idle | — | — | 不干净(同上) | 配额剩余 3 |
+| pub-iwintrue | (50 会话) | idle | — | — | 不干净(同上) | 配额剩余 3 |
+
+> 注:5 节点 idle(busy=0 interrupted=0),无 wedged/thrash/swallowed/stalled;主工作树 WIP 属产生会话(纪律④只读列示,研发不代提交)。
+
+### 1.3 变更感知与新任务建立
+
+| 指标 | 数量 | 说明 |
+|------|------|------|
+| 感知需求/设计变更数* | 200 提交 / 236 文件 | `--changes --days 7` 检出(设计 70 / 用例 20 / 其他 146),全部为既有键内容变化 |
+| 新增入池任务数* | 0 个 | **0 新增能力键**(变化集中在既有键)→ 无 `--add-task` |
+| 既有键状态流转数 | 0 次 | 本轮无既有键阶段流转(全部为他人并发链路推进) |
+
+### 1.4 本轮 git 提交与推送证据
+
+| 提交 sha | 关联任务/能力键 | 阶段 | 触及文件类型 | 目标分支 | 已推送远端 | 备注 |
+|----------|-----------------|------|--------------|----------|------------|------|
+| (本轮 commit,见下) | GAP-A(O-17 §6 拍板) | 契约登记 | 契约/文档 | cfclub | 是 | 契约 §6 四项已拍板 + pending O-17 追加 |
+
+### 1.5 状态机阶段分布与部署状态
+
+| 阶段 | 键数 | 备注 |
+|------|------|------|
+| UNTRACKED | 0 | — |
+| RED | 17 | diet.recommendation.* ×2 + guhe.*(契约单测待测试侧执行,研发不派) |
+| YELLOW | 27 | 实现已落地(yellow_sha 已回填),待测试侧 mark-green 复验 |
+| GREEN | 8 | health.report.createReport / dan.assessment.getActiveMaterial / admin.auth.login / health.report.upload / task.history.view / growth.history.view / sleep.config.tags / achievement.grid.fiveCol |
+| DONE | 14 | 含 auth.guest.*、dimension.registry.*、family.familyMembers.*、task.parent.*、reward.cfEstimate.expectedCf 等 |
+
+| 部署项 | 值 | 说明 |
+|--------|-----|------|
+| 本轮部署次数 | 0 次 | 本轮无部署动作 |
+| 最新 `last_deployed` | 20309e50e(并发链路 09:56 收口) | deploy_state last_deployed=None(未再更新),state.json 部署在途 pending 1(testing@c22382b3) |
+| GREEN 部署链验证 | 不通过(本轮未触发) | 待部署侧对 pending 收口 + 27 YELLOW 测试侧复验 |
+
+### 1.6 数据源健康度
+
+| 数据源 | 读取键数 | 是否正常 | 备注 |
+|--------|----------|----------|------|
+| 需求侧(⏳ wish) | 0 | 正常 | 目标池无新 ⏳ 键 |
+| 契约常量(contract) | 0 | 正常 | — |
+| 测试用例引用(test_case_map) | 0 | 正常 | 用例引用∩⏳ = 0 |
+| 执行结果回填(case_results) | 0 | 正常 | — |
+
+---
+
+## 二、下一步需要研发处理的事项
+
+| 序号 | 事项描述 | 依赖/前置条件 | 预估完成时间 | 优先级 | 状态 |
+|------|----------|---------------|--------------|--------|------|
+| 1 | GAP-A 桥接实现(D/X 域同步→五维消费桥接)入 TDD 池派发 | 契约 §6 四项已拍板(本轮生效);测试侧 TR 补证据(E-1~E-5)后 | 契约+证据齐备后 | P1 | 待启动(本轮已拍板,待测试侧 TR) |
+| 2 | 27 YELLOW 键待测试侧 mark-green 复验收口 | 测试侧复验(证据已齐:yellow_sha 全部 IN origin/cfclub) | 测试侧排期 | P0 | 待测试侧(非研发职责) |
+| 3 | B-61 部署(ba6c0ebe6→testing) | 部署侧放行(源码已修) | 部署侧排期 | P1 | 待部署侧 |
+| 4 | 部署 pending 收口 + 10 条 done 清理 | 部署侧 | 部署侧排期 | P2 | 归部署侧 |
+
+---
+
+## 三、阻塞与风险
+
+| 阻塞项 | 影响范围 | 阻塞类型 | 处置进展 | 需要协调 |
+|--------|----------|----------|----------|----------|
+| 27 YELLOW 键待测试侧复验 | YELLOW→GREEN 收口延迟 | 测试 | 证据已齐(yellow_sha 全部 IN CHAIN),只差测试侧 mark-green | 测试侧排期复验 |
+| GAP-A 桥接实现未派发 | D/X 域消费链路空窗 | 研发 | 契约已登记 + §6 拍板生效,待测试侧 TR 补证后入池 | 测试侧 TR(E-1~E-5) |
+| 主工作树 293+ 处他人 WIP | 工作目录门禁(--clean-check) | 研发 | 纪律④只读列示,归产生会话收口 | 产生会话/主理人协调 |
+
+---
+
+## 四、下轮工作规划
+
+| 计划项 | 预计完成时间 | 前置依赖 | 涉及会话标签 | 备注 |
+|--------|--------------|----------|--------------|------|
+| 检查 S-cfc-79 RED 契约单测会话产出并回填 | 下轮 | S-cfc-79 会话产出已推远端 | cfc-test | 若产出已验证则 backfill |
+| GAP-A 桥接实现入池 | 测试侧 TR 补证后 | TR-* 登记 + E-1~E-5 | TDD 池 | P1 |
+| 监控 27 YELLOW 键测试侧 mark-green 进度 | 滚动 | 测试侧复验 | — | 只读跟踪 |
+
+---
+
+## 附录
+
+### 附录 A:收到的测试反馈问题明细
+
+本轮 0 个(blockers 台账空)。
+
+### 附录 B:任务分派与会话恢复明细
+
+本轮 0 派发 / 0 恢复。S-cfc-79(RED 契约单测,dispatched,session=ses_e453bf36affeQDPylYE7MRe029,resumes=2)在途待产出核验。
+
+### 附录 C:新增入池任务明细
+
+本轮 0 个(0 新增能力键)。
+
+### 附录 D:变更感知明细(来自 `--changes`)
+
+200 提交 / 236 文件,0 新增能力键;变化集中在既有键(设计 70 / 用例 20 / 其他 146)。
+
+---
+
+**模板版本**:v1.1 | **适用对象**:研发负责人 | **记录轮次**:错峰03 第 69 轮

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio