## 1. 规则文档 - [x] 1.1 共享权威文档 `/Users/malk/Desktop/Tech/claude/后端/CLAUDE.md` 新增章节 "分层规则细则(R1~R7)"(line 53) - [x] 1.2 仓库内 `openspec/specs/project-baseline.md` 在"代码锚点"段后加锚点(line 12) - [x] 1.3 `README.md` 加分层规则锚点(line 127,"详细规范见文档中心"段后) ## 2. O3 补 ALYConf 并替换硬编码 URL - [x] 2.1 新建 `mjava/src/main/java/com/malk/server/aliyun/ALYConf.java`,4 个 URL 常量 - [x] 2.2 改 `ALYInvoiceImpl.java`:4 处 URL 字面量替换为 `ALYConf.URL_*` - [x] 2.3 grep 跨仓 `fapiao.market.alicloudapi.com` / `invoice.market.alicloudapi.com` — 基础建设期默认仅本仓 - [x] 2.4 `mvn -pl mjava -am compile` 通过(commit 79f06dd) ## 3. O4 INTP 范式约定(仅文档) - [x] 3.1 capability spec R1 Scenario 已含「集成平台 INTP 当前现状与演进」(spec.md line 28-34) - [x] 3.2 不动 `service/integration/` 任何代码(已守约) ## 4. O6 规则进 baseline - [x] 4.1 已由 1.1/1.2 覆盖 ## 5. O2 RSACrypt 迁移 - [x] 5.1 grep `import com\.malk\.util\.crypto\.RSACrypt` 全仓 — 仅 1 个调用方 - [x] 5.2 引用清单已报告用户 - [x] 5.3 用户 ACK 通过(上一轮"OK 迁") - [x] 5.4 复制到 `utils/crypto/RSACrypt.java`(git rename 自动识别) - [x] 5.5 import 路径已更新 - [x] 5.6 删 `util/crypto/RSACrypt.java` 与空目录 `util/` - [x] 5.7 `mvn -pl mjava -am compile` 通过 - [x] 5.8 commit 79f06dd `feat(mjava): 补 ALYConf 抽 URL 常量 + 迁 util→utils.crypto` ## 6. 验证 - [x] 6.1 `mvn -pl mjava -am compile` 通过 - [x] 6.2 子模块(mcli/pro/com)`mvn compile` 通过(2026-06-10) - [x] 6.3 `grep -rE '@(Service|Component|...)\b' mjava/src/main/java/com/malk/server/` —— 发现 1 例 `server/common/FilePath.java:13:@Component`(known debt,非 vendor 子目录,本 change 不治理;后续单独 change `cleanup-server-common-bean` 评估) - [x] 6.4 7 条规则在三处一致(mjava-ai CLAUDE.md / project-baseline.md / 后端 CLAUDE.md / spec.md) - [ ] 6.5 `/opsx:validate standardize-client-service-layering --strict` — opsx CLI 暂未集成,跳过;spec 格式人工校验通过(## ADDED Requirements + ### Requirement + #### Scenario 三层结构) ## 归档备注 - 7 条规则(R1~R7)已沉淀进 capability spec `client-service-layering` - 实质代码改动:commit 79f06dd(ALYConf + RSACrypt 迁移) - 文档改动:commit 79f06dd(CLAUDE.md + project-baseline.md 锚点) + 本 PR README.md 锚点 - Known debt 转后续 change:FilePath.java @Component(R6 例外)、Dingtalk 14 文件中缀命名(拆 `rename-dingtalk-impl-suffix` change)