BACKLOG.md 5.7 KB

mjava-ai 待办看板

更新:2026-04-18 范围:跨 change 的待办池 + 每 change 内部进度汇总 用途:按优先级顺序执行;完成一项立即更新对应 tasks.md 和本文件

执行阶段

阶段 内容 当前状态
A 开发规范 + 待办清单(文档层) 进行中
B.1 代码优化:补全 mjava 模块 API 能力 待启动
B.2 代码优化:待办功能添加(非 pro/com 的基座增强) 待启动
C mjava-pro / mjava-com 两个专项子模块开发 待 B 完成后启动

阶段 A 待办

ID 任务 状态
A1 开发规范 11 章(mjava-baseline.md)写到 §3.5 审计、§3.4 Client/Service 分层 ✅ 完成
A2 yida-serverside.md 从原 CLAUDE.md 拆出 ✅ 完成
A3 后端/CLAUDE.md 改为总索引 ✅ 完成
A4 上层 claude/CLAUDE.md 同步索引 ✅ 完成
A5 server 目录分层 cur/pre ✅ 完成
A6 mjava-ai 仓库 git init + 首次 commit + push ✅ 完成
A7 敏感文件 .gitignore 防护 + .example 模板 ✅ 完成
A8 mjava-pro / mjava-com 专项提案四件套 ✅ 完成
A9 init-project-baseline tasks 5.1-5.3 验证 ✅ 完成
A10 归档 extract-dingtalk-standard-api ✅ 完成,changes/archive/2026-04-18-extract-dingtalk-standard-api/
A11 brew install maven 后补做 init-baseline 任务 5.4(编译冒烟) ⏳ 阻塞在本机未装 Maven
A12 /Users/malk/Desktop/Tech/claude/ git init(规范文档版本化) ✅ 完成(白名单策略,只收规范 md)
A13 扩展 mjava-baseline.md §3.4 — Client API 对齐详细规则(§3.4.1-§3.4.5) ✅ 完成

阶段 B.1 — 补全 mjava 模块 API 能力

按用户优先级指令(2026-04-18):先宜搭,后钉钉通讯录,其余 vendor 暂不做。改造行为由 /opsx:apply 触发,本阶段先完成规则定义

ID 任务 归属 change 状态
B1.1 宜搭表单 + 流程 API 对齐规则与覆盖度矩阵 changes/extend-yida-api-coverage/ ✅ 规则就绪(proposal/design/spec/tasks 四件套 valid)
B1.2 钉钉通讯录 API 对齐规则与覆盖度矩阵 changes/extend-dingtalk-contacts-api/ ✅ 规则就绪
B1.3 钉钉其余模块(考勤/审批/消息/群聊/...) 未立项 ⏸ 暂缓,待用户指令
B1.4 其他 vendor(北森/teambition/fxiaoke/h3yun/vika/xbongbong/feishu/ekuaibao) 未立项 ⏸ 低优先级,按需补
B1.5 实施:宜搭原子 Client 落地(/opsx:apply extend-yida-api-coverage ⏳ 待用户触发
B1.6 实施:钉钉通讯录原子 Client 落地(/opsx:apply extend-dingtalk-contacts-api ⏳ 待用户触发

阶段 B.2 — 待办功能添加(基座增强)

不依赖 pro/com 专项的基座功能增强,都先做在 mjava/ 基座里,让三个现存客户模块可立刻受益。

ID 任务 归属 change 备注
B2.1 UtilHttp 内部落实 §3.5 审计日志(请求/响应脱敏 + latency + success) 待立项 脱敏规则:token/appSecret/password/aesKey/privateKey → ***
B2.2 UtilToken 支持 namespace 参数(为 mjava-pro 租户隔离铺路) 待立项 API:put(namespace, key, value, ttl)
B2.3 CallerRateLimiter 抽象(通用限流组件) 待立项 Guava RateLimiter 封装
B2.4 完成 add-observability-foundation tasks 4.2 / 5.2(生产冒烟) observability 需 Maven
B2.5 把 Client 方法兼容全参数的代码审查清单(checklist)沉淀进 /opsx:propose 的模板 未定,文档侧 避免将来 PR 漏传字段
B2.6 请求监听的 trace 输出示例 文档 baseline §3.5 / §8
B2.7 基座请求鉴权 + 防重放(HMAC-SHA256 + 时间窗 + Nonce) changes/add-request-auth-replay-guard/ ✅ 规则就绪,0/33 任务;mjava-com 的前置依赖

阶段 C — 专项子模块开发(最后启动)

专项 tasks.md 进度
add-mjava-pro/ 0 / 30
add-mjava-com/ 0 / 30

按 tasks.md 依序走 /opsx:apply

进度总览(累计)

✅ 已完成:~20 项(初始化 + 规范 + 归档准备 + 验证)
⏳ 阻塞:Maven 未装(4 处冒烟)
🔨 实施中:extend-yida-api-coverage 代码已落(26 方法),未编译验证
📋 代办:~60 项

实施中风险记录

extend-yida-api-coverage(2026-04-18 实施)

  1. 官方文档 fetch 失败:WebFetch 拿到的是索引页,URL 路径基于训练知识 + 旧 YDClientImpl 已验证 endpoint 推断。以下路径未经人工官方文档对照,冒烟前需复核:
    • /processes/tasks/{agree|disagree|redirect|cc|comment}
    • /processes/instances/{terminate|revoke|redirect}
    • /processes/operationRecords(listApprovalRecords 推断)
  2. 编译未验证:本机无 Maven,Java 代码未 mvn compile。潜在风险:
    • x-acs-dingtalk-access-token header key 是否与 ddClient.initTokenHeader() 返回一致未验证
    • DDR_New.getResult() 返回 Object,各处 cast 未实地测试
    • UtilHttp.doPut/doDelete 的 4 参重载确认
  3. Boolean 返回判定:宜搭多数写操作返回 true/false,实现用 Boolean.TRUE.equals(r.getResult()) 判定,但部分 endpoint 实际返回 Map 或数字时可能错判;实施冒烟时需抽样确认。
  4. listFormIds URL + body 都传 appType/formUuid,沿用旧实现逻辑,可能冗余但不影响正确性。
  5. YDService 迁移:本阶段不切换 YDService 内部调用到新原子方法(tasks 5.x 标为"可选不做"),等编译通过后再决定。