You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
7.2 KiB

2 days ago
# HANDOFF 2026-09-05 · customer-rework 返工图执行(换机续作)
> 前篇:`HANDOFF-2026-09-04.md`(图启动基线)。本篇只记其后的会话增量、唯一悬空点与换机注意事项,不重复票面/差异清单原文。
## 图状态与纪律
- 地图:`.scratch/customer-rework/map.md`(冻结图);执行模式 = wayfinder「Work through the map」,用户已覆写 plan-only:**执行含在图内,票直接改代码**。
- 用户最新指令(2026-09-04):「继续做,把整张map做完」——连续完成剩余全部票。
- 票况:01–08 resolved;**09 进行中**(悬空点见下);10、11 未开。
- 每张票纪律:claim(Status: claimed)→ 实施 → 票内追加 Answer + `Status: resolved``map.md` 的 Decisions so far 追加一行索引。
## 票 09 已完成部分(勿重做)
1. **S1 错误码撞号**:`crm-rule/.../constant/OpportunityRuleConstants.java` 的 `CODE_STAGE_TPL_SEED_PROTECTED` 64018→**64024**(audit-findings 写的「改 64022」已过时——64022 被 `CODE_SCHEME_TPL_FIELD_INVALID` 占用、64023 被客户规则占用;引用面核实:2 处主代码走常量名、0 测试硬编码)。类头段位注释已同步。
2. **F3 导入端点双 tag**:`crm-customer/.../controller/CustomerImportController.java` 6 端点(upload/confirm/result/failures/page/template)`@Operation` 全部加 `tags = {"A4 客户管理/我的客户/客户导入", "A4 客户管理/客户公海"}`(依据:62 页原型逐页 grep,仅 a4-1-1 公海列表有「导入」气泡;ADR-0024 多值挂实际调用页)。
3. **验证**:`mvn test -pl crm-rule,crm-customer -am` 全绿(Reactor 8 模块 SUCCESS,crm-customer 144 tests 0 fail);BOM 扫描全仓干净。
4. **F3 bruno 侧**:`.scratch/customer-rework/copy_import_to_pool.py` 已把 6 副本写进 `E:\code\crm-api-docs\A4 客户管理\客户公海\`(seq 94–99);`bruno_scan.py` 终验 **315 钥匙 = 315 文件,new=0 / delete=0 / unrecognized=0 / 冲突=0**
## 唯一悬空点:F4–F10 拍板(AskUserQuestion 被用户取消一次,需重发或改逐项问)
事实依据全在 `audit-findings.md` §二/§三。下轮可直接用的拍板材料(推荐已按差异清单立场预置):
| 项 | 事实 | 推荐 | 备选 |
|---|---|---|---|
| F5 战略协议 | 原型三页完整(a4-4-6/9/10)但零端点 | 本期补(单表 CRUD,最大单项) | 划出(翻案确认) |
| F4 关联项目 | 依赖未建的 A5 项目域 | 划出(随项目模块远期) | 本期补(超范围) |
| F9 导出日志 | 与已划出的 D2 导出家族同族 | 随家族划出 | 本期补(仅导出日志) |
| F10 联系人日志 | `CustomerContactServiceImpl` 零 oplog 写入 | 轻方案:客户 oplog 扩 CONTACT_ADD/EDIT/DELETE(本票机械修) | 独立表(单开票)/ 缓 |
| F7 内置检索视图参数 | `CustomerWorkspacePageParam` 缺 ownerOnly/coopOnly/待跟进/focusOnly/最近访问 | 本期补(参数族+过滤+测试,量级小) | 缓(记理由) |
| F8 导入重复策略 | import/upload 缺重复策略参数(覆盖导入/不导入) | 本期补(量级最小) | 缓(记理由) |
| F6 批量工商更新 | 仅单查 `company-lookup`,无批量写端点 | 本期补(批量任务,量级中等) | 缓(记理由) |
拍板后处置:
- 选「补」→ 本票或单开票实施(F5 建议单开 12 号票;F7/F8/F10 轻量可并入 09);实施完同步测试 + bruno 产出 + 文档。
- 选「划出/缓」→ `audit-findings.md` 对应条目标「明确不修(划出远期/缓)+理由」。
- **票 09 验收线**:差异清单全部条目状态为「已修 / 已单开票 / 明确不修(记理由)」,无悬空项。
## 后续票序列
1. **票 09 收尾**:Answer(含 S1 实改 64024 的更正说明)+ resolved + map 索引。
2. **票 10 回归**(`issues/10-regression-retest.md` 五条验收线逐项):三模块 `mvn test`(基线 521:146/122/242,绿为准);冒烟(票面写「复用 `tools/smoke-t12m.py` 范式」——该 tools 目录位置未在本机核实,找不到就按范式重写:登录 → 客户三 workspace 列表/看板(公海看板断言拒绝)→ 建改查客户 → 联系人 CRUD → 认领/分配/抛公海 → 交割 → 导入全链 → 偏好存取 → 商机偏好,断言 code=0;需先起 crm-app,启动流程见 memory「Windows本地Spring Boot应用启动与fat jar增量构建验证流程」);bruno A4 树对 v29 终验;BOM;`grep "PathVariable\|@PutMapping\|@DeleteMapping\|@RequestBody" crm-customer/` 零命中。产出 `.scratch/customer-rework/RETEST-REPORT.md`
3. **票 11 文档同步**(`issues/11-docs-sync.md` 清单):`map.md` 返工增补段、`API-SUMMARY.md` 重写+销账、新 HANDOFF、`crm-customer/CONTEXT.md`、URL-代码逐一对账脚本。验收 = 零差异、旧 HANDOFF 不改写。
## 环境事实(换机必读,本篇写于 MATT 机 / Windows 22H2)
- `JAVA_HOME=%USERPROFILE%\.jdks\corretto-17.0.13`;mvn=`D:\IntelliJ IDEA 2025.1.3\plugins\maven\lib\maven3\bin\mvn.cmd`(路径含空格,PowerShell 要 `& '...'` 调用)。**换机后路径可能不同**,另一台机器的事实查 memory「客户模块E2E验收地图与换机后环境事实」。
- python 用 `py -3 -X utf8`(python 不在 PATH)。
- 文档仓(Bruno collection)在 `E:\code\crm-api-docs\`——工作区外,harness 文件工具(Read/Write/DeleteFile)碰不到,一律走 python 脚本。
- 对账扫描器:`.scratch/customer-rework/bruno_scan.py`(无参全量,输出 JSON 对账报告)。
- PowerShell:不用 `&&``;`;反引号是转义符(内联 `python -c` 别带反引号,写脚本文件);`>` 重定向产出 UTF-16。
## 本段新增踩坑(AGENTS.md 之外)
- **meta 块 seq 带两格缩进**:解析/改写 .bru 的 seq 必须 `^\s*seq:` 容缩进——两个脚本栽过(max_seq 静默返 0 → 副本撞 seq)。
- **harness DeleteFile 只限工作区内**:文档仓删文件走 python,删除前 assert 内容守卫防误删。
- **批量 .bru 顺序纪律**:先写后删会误删刚生成的(前段已发生);顺序=先删后写,或副本脚本自带「目标存在即跳过」幂等。
## 建议调用 skills
- `wayfinder`:ARGUMENTS = `Work through the map 模式,地图路径 .scratch/customer-rework/`——续作主框架,从票 09 悬空点接续。
- `bruno-sync`:F5/F7/F8/F10 若拍板「补」,bruno 侧产出照 skill 镜像(tag 分组、同 key 多页同名同内容副本、幂等重建通道)。
- `grilling`:若用户偏好逐项慢拍 F4–F10(上轮集中四题问被取消,可能嫌一次问太多)。
## 工件索引(细节都在这些文件)
- 图与票:`.scratch/customer-rework/map.md`、`issues/01..11-*.md`(09 claimed、10/11 open)
- 差异清单:`.scratch/customer-rework/audit-findings.md`(拍板依据;S1 的 64022 建议已被 64024 取代)
- 票 08 产出:`issues/08-audit-prototype.md`(Answer 含双镜头方法论)
- 原型缓存:`.scratch/lanhu-latest/v29-customer-pages/`(62 页 .txt);权威树 `.scratch/api-docs-reorg/lanhu-tree-v29.md`
- 端点基准:`.scratch/customer-rework/audit-api-baseline.txt`(68 条客户相关端点)