# mjava-ai Java 后端基座 + 客户子项目仓库。Spring Boot 2.2.13 + MySQL,第一阶段不引入 Redis/Docker。 ## 开发前必读 - 仓库基线:`openspec/specs/project-baseline.md`(代码锚点 + 子项目清单) - 通用规范:`/Users/malk/Desktop/Tech/claude/后端/mjava-baseline.md`(11 章,权威) - 宜搭特化:`/Users/malk/Desktop/Tech/claude/后端/yida-serverside.md` ## OpenSpec 工作流(opsx) 任何规范变更或功能新增,走 change 流程: | 命令 | 用途 | |------|------| | `/opsx:explore` | 在改动前做需求/约束梳理 | | `/opsx:propose` | 新建 change(proposal+design+spec+tasks 四件套) | | `/opsx:apply` | 执行 tasks.md 的实现步骤 | | `/opsx:archive` | 完成后归档到 `openspec/changes/archive/` | 现有 change 状态(2026-04-19 更新): 已归档(`changes/archive/`): - `2026-04-18-extract-dingtalk-standard-api` → `specs/crypto-utils/` - `2026-04-19-init-project-baseline` → `specs/project-baseline.md` - `2026-04-19-extend-yida-api-coverage` → `specs/yida-form-atomic/` + `specs/yida-process-atomic/` - `2026-04-19-extend-dingtalk-contacts-api` → `specs/dingtalk-contacts-v2/` - `2026-04-19-add-request-auth-replay-guard` → `specs/request-auth/` + `specs/replay-guard/` 进行中(`changes/`): - `add-observability-foundation` 12/14 — 待生产冒烟 - `add-mjava-pro` 15/30 — 骨架完成,TenantTaskDecorator / DynamicDDService 延后 - `add-mjava-com` 19/30 — 骨架完成,DingtalkActionRegistry / AliworkActionRegistry 首批 action 待补 ## 快速操作 - 新客户接入:复制 `mjava-mcli` 模板,详见基线文档第 9 章 - 本地编译:`mvn -pl mjava-{module} -am clean compile` - 打包:`mvn -pl mjava-{module} -am clean package -Dmaven.test.skip=true` ## 严禁 - ❌ 引入三方 SDK(钉钉/宜搭/飞书 SDK 都禁)—— 统一用 `UtilHttp` - ❌ 每请求重新拉 token —— 统一走 `UtilToken` 缓存 - ❌ 硬编码 appKey/appSecret —— 读 `application-{profile}.yml` - ❌ 绕过 JPA 写原生 SQL 字符串拼接 ## 当前活跃目录位置 `/Users/malk/server/cur/mjava-ai/`(2026-04-18 从 `/Users/malk/server/mjava-ai` 迁入 cur 层)