## 0. 排期门控 - [ ] 0.1 等 `standardize-client-service-layering` archive 入 specs/(R5 入规则) - [ ] 0.2 用户排期确认开始本 change ## 1. 批次 1:主流量入口(3 文件) - [ ] 1.1 R4 grep 跨仓引用扫描(mjava-ai + 光明独立仓 + 用户指定的其他客户仓): - `DDImplClient`(类名 / import / `@Qualifier` / `@Resource(name=)`) - `DDImplService` - `DDImplClient_Attendance` - [ ] 1.2 引用清单提交给用户,等 ACK - [ ] 1.3 改名:`DDImplClient.java` → `DDClientImpl.java`,class 声明同步 - [ ] 1.4 改名:`DDImplService.java` → `DDServiceImpl.java`,class 声明同步 - [ ] 1.5 改名:`DDImplClient_Attendance.java` → `DDClient_AttendanceImpl.java`,class 声明同步 - [ ] 1.6 全仓改 import + `@Qualifier` + `@Resource(name=)` 引用 - [ ] 1.7 `mvn -pl mjava -am clean compile` 通过 - [ ] 1.8 `mvn -pl mjava-mcli,mjava-pro,mjava-com -am clean compile` 通过 - [ ] 1.9 跨仓客户项目编译通过(用户指定) - [ ] 1.10 commit:`refactor(service/dingtalk): rename DDImpl* → DDImpl suffix [batch 1/4]` - [ ] 1.11 观察 1 周(或用户确认)→ 进入批次 2 ## 2. 批次 2:通讯通知(3 文件) - [ ] 2.1 R4 grep(Contacts / Group / Notice) - [ ] 2.2 ACK - [ ] 2.3 三个改名 + import 替换 - [ ] 2.4 编译 + 跨仓验证 - [ ] 2.5 commit `[batch 2/4]` ## 3. 批次 3:人事日历(3 文件) - [ ] 3.1 R4 grep(Personnel / Report / Schedule) - [ ] 3.2 ACK - [ ] 3.3 三个改名 + import 替换 - [ ] 3.4 编译 + 跨仓验证 - [ ] 3.5 commit `[batch 3/4]` ## 4. 批次 4:长尾(5 文件) - [ ] 4.1 R4 grep(Dedicated / Event / Extension / Storage / Workflow) - [ ] 4.2 ACK - [ ] 4.3 五个改名 + import 替换 - [ ] 4.4 编译 + 跨仓验证 - [ ] 4.5 commit `[batch 4/4]` ## 5. 验证 & archive - [ ] 5.1 `grep -rE "DDImpl(Client|Service)" --include=\"*.java\"` 全仓零命中 - [ ] 5.2 `/opsx:validate rename-dingtalk-impl-suffix --strict` 通过 - [ ] 5.3 archive 到 `openspec/changes/archive/2026-XX-XX-rename-dingtalk-impl-suffix/` - [ ] 5.4 R5 在 specs/client-service-layering/spec.md 演进为「全仓覆盖」(删除"钉钉存量待整改"备注)