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

docs(tdd): 研发负责人第101轮闭环汇报 2026-11-10 2342——O-22 requeue误判27键级已实现任务归档done(防误派重复开发)+S-cfc-131真新RED(content.article.listByTag)入池核验+TR-26送测契约测试补写

Agnes Agent 2 дней назад
Родитель
Сommit
98f48895f3
2 измененных файлов с 173 добавлено и 0 удалено
  1. 31 0
      docs/tdd/dev/test-requests.md
  2. 142 0
      docs/tdd/orchestration/report-dev-2026-11-10-2342.md

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

@@ -259,3 +259,34 @@
 ### 4. 请测试侧
 
 ① 依 §2 契约补 `AdminReferral*ContractTest`(MockMvc 风格,同包既有惯例);② 管理端 Users.vue「团队」弹窗 e2e(Playwright:admin 登录 → 用户列表 → 团队按钮 → 概览/L1/L2/团队树可见);③ 完成后在本文件追加「回复」段并置状态(push 即送达);④ 如需纳入状态机键/组 TDD 池,按 O-7 契约补建流程办理(研发侧本轮不预建键,避免与用户直接实现语义冲突)。优先级 P2(管理端辅助查看,不阻塞 241 SC 主线)。
+
+---
+
+## TR-26:S-cfc-131 `content.article.listByTag` 知识中心文章标签筛选(实现已合入 6e9a511e2 但零契约测试)→ 请测试侧补契约级单测 + mark-red 登记(研发 → 测试,2026-11-10 23:4x 错峰轮 · 第101轮)
+
+### 1. 背景与缺口(同类先例 TR-25「实现先于测试登记」)
+
+- **设计规格**:`docs/superpowers/specs/2026-11-10-article-tag-filter-design.md`(9e39128c6 已合入 origin/cfclub,100 轮核验)。
+- **实现提交**:`6e9a511e2`(feat(article) tag 筛选,6 文件 84+/15-,Agnes Agent 产出)已合入 origin/cfclub,`git merge-base --is-ancestor 6e9a511e2 origin/cfclub` ✓ IN CHAIN(100 轮已核验)。
+- **缺口实证(研发侧本轮核验)**:① 状态机已建键 `content.article.listByTag`(stage=RED,S-cfc-131,23:33 `--add-task` 入池,溯源锚定设计规格);② 实现已在链但零契约测试(`cfc-backend/src/test` 无 Article* 契约测试,find 实证);③ 属「补测试」型 RED(实现先于测试登记,非测试先行缺口)。
+
+### 2. 待测端点契约(供测试侧建用例)
+
+| 端点 | 方法 | 请求体 | 响应 | 功能 |
+|------|------|--------|------|------|
+| `/api/articles/list` | POST | 含 tag 参数(原 dimensionCode 槽位) | `Result<Page>` | 按文章标签动态筛选(tag=null 回退全量),关键词搜索保留,卡片五维浮标保留(信息展示非分类) |
+| `/api/articles/tags` | POST | 空 | `Result<List>` | 返回 Top20 标签(articles.tags 聚合频次) |
+
+设计要点(§3):ArticleService 新增 10 参 `getPublicList`(位置4=tag,`parseCommaOrJsonTags` 内存过滤)+ `listTopTags` 聚合频次 TopN,旧 8/9 参代理传 tag=null;前端 `index.vue` tabList 动态化(全部+各标签)+ `loadArticles params.dimensionCode→tag` + `loadTags()`;`api.js` 新增 `getArticleTags`。
+
+### 3. 建议覆盖用例(测试侧自决,非研发指令)
+
+1. 两端点:匿名 401 / 有 token 正常;
+2. list:tag 过滤正确(多 tag 逗号/JSON 数组)、tag=null 全量、关键词搜索保留、卡片五维浮标不变;
+3. tags:Top20 聚合频次正确、空表返回空、超 20 截断;
+4. 旧参数兼容:8/9 参代理传 tag=null 行为不回归;
+5. HTTP 方法契约:GET 应 405(本仓接口统一 @PostMapping)。
+
+### 4. 请测试侧
+
+① 依 §2 契约补 `Article*ContractTest`(MockMvc 风格,同包既有惯例);② 写完 `python tdd_orchestrate.py --project E:/cfc --role 测试 --mark-red content.article.listByTag --commit <sha> --note "测试负责人(第101轮接力)" --from-session <SID>` 登记 RED;③ 研发侧据 red_sha 后续确认实现使绿(**实现已在链 6e9a511e2,GREEN 阶段仅需复跑契约测试核验,无需新实现**);④ 前端 Playwright 三类流属实现合入后测试侧补,非本 RED 前置。注意 pom.xml:28 `<skipTests>true</skipTests>`,`mvn test` 须显式 `-DskipTests=false`。优先级 P2(知识中心标签筛选,不阻塞 241 SC 主线)。

+ 142 - 0
docs/tdd/orchestration/report-dev-2026-11-10-2342.md

@@ -0,0 +1,142 @@
+# 研发负责人工作汇报 · 第 101 轮(2026-11-10 23:42 错峰轮 · 本自动化 856ff81f)
+
+## 基本信息
+
+| 项目 | 内容 |
+|------|------|
+| 汇报人 | 研发负责人(本自动化 856ff81f · 第 101 轮) |
+| 汇报周期 | 2026-11-10 23:42(第 101 轮,错峰巡检) |
+| 负责模块/单元范围 | 全量(CFC 研发闭环,仓库 E:/cfc,主分支 origin/cfclub) |
+
+---
+
+## 一、本轮工作数据汇总
+
+### 1.1 问题接收与处置
+
+| 指标 | 数量 | 填写说明 |
+|------|------|----------|
+| **收到的测试反馈问题数*** | 0 个 | `docs/tdd/test/blockers.md` + `--mark-blocked` 回执 + 会话反馈均无新增 |
+| **已解决问题数*** | 0 个 | 无 RED→YELLOW→GREEN 全链路推进(状态机无流转) |
+| **待解决研发问题数** | 0 个 | 非能力键挂账:B-65(P0 langgraph thread_id)O-21 已裁决走 bugfix 直连通道跟进;B-60(P2 测试时效)属测试侧资产 |
+
+### 1.2 任务分发与会话管理
+
+| 指标 | 数量 | 填写说明 |
+|------|------|----------|
+| **分派任务数*** | 0 个 | 本轮 0 派发:27 个 O-22 requeue 误判任务按「键级已实现」归档 done(不派发防重复开发);S-cfc-131 属 RED 测试侧职责(写契约单测),研发不代写 |
+| **恢复智能体会话数*** | 0 个 | `--resume --dry-run` 恢复候选 0(prod-etotem 生产默认 skip) |
+| **当前在用会话数** | 0 个 | CFC 无在途/空闲可派会话(详见 1.2b) |
+| **会话平均利用率** | 0 % | 稳态无新实现任务可派 |
+
+### 1.2b 各会话当前工作状态列表
+
+> 本轮 `--resume --dry-run` 全节点枚举 0 候选;`--inspect` 为测试角色专属入口(研发侧不可用,技能缺口延续记录)。CFC 任务池归档后 130 done + 1 failed + 1 pending,无在途会话。
+
+| 会话标签 | 会话 ID | 当前状态 | 当前任务 | 静默/空闲时长 | 工作目录 | 备注 |
+|----------|---------|----------|----------|---------------|----------|------|
+| pub-iwintrue | — | `unknown` | 无 CFC 任务 | — | — | 枚举失败(连接超时);部署会话 O-20 修复后可用(93 轮实证,B-69 15:38 confirmed) |
+| local-lan-4090 | — | `unknown` | 无 CFC 任务 | — | — | 枚举失败(连接超时) |
+| lan-189 | — | `unknown` | 无 CFC 任务 | — | — | 枚举失败(失联 >24h 延续) |
+| lan-204 | — | `unknown` | 无 CFC 任务 | — | — | 枚举失败(连接被重置) |
+| prod-etotem | — | `idle` | 无 CFC 任务 | — | — | 生产实例默认 skip(--allow-prod 仅恢复通道) |
+| local-45278 / local | — | `idle` | 无 CFC 任务 | — | — | 无待派任务,未枚举 |
+
+### 1.3 变更感知与新任务建立
+
+| 指标 | 数量 | 填写说明 |
+|------|------|----------|
+| **感知需求/设计变更数*** | 0 个 | `--changes --days 7`:近 200 提交 / 259 文件,无新增能力键(变化集中在既有键) |
+| **新增入池任务数*** | 0 个 | S-cfc-131(content.article.listByTag)系 23:33 另一错峰轮 `--add-task` 入池(溯源完整,见附录 C),非本轮建立 |
+| **既有键状态流转数** | 0 次 | 状态机 70 键稳态无流转(RED 1 / YELLOW 47 / GREEN 8 / DONE 15) |
+
+### 1.4 本轮 git 提交与推送证据(真理证据)
+
+| 提交 sha | 关联任务/能力键 | 阶段 | 触及文件类型 | 目标分支 | 已推送远端 | 备注 |
+|----------|-----------------|------|--------------|----------|------------|------|
+| (本轮入库) | TR-26 / 汇报 | 送测 | docs/tdd/dev/test-requests.md M + docs/tdd/orchestration/report-dev-2026-11-10-2342.md A | origin/cfclub | 是(入库后核验) | 单文件入库(临时索引 read-tree origin/cfclub^{tree}) |
+
+> 本轮归档 27 个 O-22 误判任务为**本地账本操作**(.workbuddy/tasks.json,不入库,备份 .bak-r101),无 git 提交;S-cfc-131 键级实现 6e9a511e2 已在 origin/cfclub(100 轮已核验 IN CHAIN,本轮再次 `merge-base --is-ancestor` 核验 ✓)。
+
+### 1.5 状态机阶段分布与部署状态
+
+| 阶段 | 键数 | 备注 |
+|------|------|------|
+| UNTRACKED | 0 | 已发现未入池 |
+| RED | 1 | content.article.listByTag(S-cfc-131,待测试侧契约测试) |
+| YELLOW | 47 | 47/47 已送测 TR-20/21/22(滚动 mark-green 中) |
+| GREEN | 8 | 待测试侧部署验证确认 |
+| DONE | 15 | 闭环归档 |
+
+| 部署项 | 值 | 说明 |
+|--------|-----|------|
+| 本轮部署次数 | 0 次 | 无新 YELLOW 需要部署 |
+| 最新 `last_deployed` | 63cf7455a | B-69 fix(99 轮收口) |
+| GREEN 部署链验证 | 通过 | deploy_state pending 0 / confirmed 76 |
+
+### 1.6 数据源健康度
+
+| 数据源 | 读取键数 | 是否正常 | 备注 |
+|--------|----------|----------|------|
+| 需求侧(⏳ wish) | 0 | 正常 | 目标池 0 键(结构性无 ⏳ 缺口,O-7 口径持续) |
+| 契约常量(contract) | 0 | 正常 | 无新增契约化未实现键 |
+| 测试用例引用(test_case_map) | 0 | 正常 | 用例引用∩⏳ 为空 |
+| 执行结果回填(case_results) | 0 | 正常 | 无新 E1 报告回填 |
+
+---
+
+## 二、下一步需要研发处理的事项
+
+| 序号 | 事项描述 | 依赖/前置条件 | 预估完成时间 | 优先级 | 状态 |
+|------|----------|---------------|--------------|--------|------|
+| 1 | S-cfc-131(content.article.listByTag)据测试侧 red_sha 确认实现使绿 | 测试侧补契约单测 + `--mark-red`(TR-26 已送测) | 测试侧产出后下轮 | P2 | 待启动 |
+| 2 | O-22 归档 27 误判任务补记键级证据 sha(state.json 层) | 主理人最终确认 O-22 裁决生效 | 主理人确认后 | P1 | 进行中(归档已执行,证据待补记) |
+| 3 | lan-189 失联探活确认 | 节点网络可达 | 下一巡检轮 | P2 | 待启动 |
+
+## 三、阻塞与风险
+
+| 阻塞项 | 影响范围 | 阻塞类型 | 处置进展 | 需要协调 |
+|--------|----------|----------|----------|----------|
+| 结构性任务池真空(无 ⏳ 缺口) | 全链 | 需求 | 延续;解锁依赖测试侧 SC 滚动补证据产生新 RED | 测试侧推进三类流证据 |
+| O-22 requeue 误判(27 键级已实现任务) | 任务池 | 研发 | 已按 O-22 ③ 归档 done + 备份,待主理人最终确认 | 主理人确认 O-22 裁决 |
+| lan-189 失联 >24h | 节点资源 | 测试 | 延续 | 网络运维(B-113 通道) |
+
+## 四、下轮工作规划
+
+| 计划项 | 预计完成时间 | 前置依赖 | 涉及会话标签 | 备注 |
+|--------|--------------|----------|--------------|------|
+| S-cfc-131 契约测试产出核验 + mark-red 接力 | 下轮 | 测试侧 output | — | TR-26 已送测 |
+| TR-20/21/22 剩余键 mark-green 追踪 | 持续 | 测试侧复跑 | — | 47 YELLOW 待收口 |
+| O-22 主理人确认后补记键级证据 | 主理人确认后 | pending.md 状态更新 | — | — |
+
+---
+
+## 附录
+
+### 附录 A:收到的测试反馈问题明细
+
+| 问题 ID | 能力键/任务号 | 问题类型 | 来源 | 接收时间 | 处置状态 | 关联 sha |
+|---------|---------------|----------|------|----------|----------|----------|
+| — | — | — | — | — | — | 本轮无新增 |
+
+### 附录 B:任务分派与会话恢复明细
+
+| 任务号 | 目标会话标签 | 任务类型 | 分派时间 | 当前状态 | 恢复会话标签 | 恢复原因 | 恢复时间 |
+|--------|--------------|----------|----------|----------|--------------|----------|----------|
+| — | — | — | — | — | — | — | 本轮 0 派发、0 恢复 |
+
+### 附录 C:新增入池任务明细
+
+| 任务号 | 能力键 | 需求溯源 | 设计溯源 | 创建时间 | 状态 |
+|--------|--------|----------|----------|----------|------|
+| S-cfc-131 | content.article.listByTag | specs/2026-11-10-article-tag-filter-design.md §1(知识中心标签动态筛选) | specs/2026-11-10-article-tag-filter-design.md §3(实现已合入 6e9a511e2,标签过滤 + Top20 `/tags`) | 23:33(错峰轮 --add-task) | RED(待测试侧 mark-red) |
+
+### 附录 D:变更感知明细(来自 `--changes`)
+
+| 变更文档 | 文档类型 | 变更日期 | 新增能力键 | 是否已入池 |
+|----------|----------|----------|------------|------------|
+| (近 7 天 200 提交) | 需求/设计/用例 | 2026-11-04 ~ 11-10 | 0 | — |
+
+---
+
+**模板版本**:v1.1(2026-11-03) · 填写:研发负责人第 101 轮