4.0 KiB
CISD Standard Init Support Mode Implementation Plan
For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
Goal: 修正标准版 CISD 初始化中 ENTERPRISE 和 INDIRECT 的支持方式建模、步骤编排和执行条件。
Architecture: 保留 mqType 字段名,但将其解释为按产品区分的支持方式枚举;服务层负责校验和步骤编排,执行器负责按产品与模式判定脚本是否实际执行或跳过。
Tech Stack: Java 17, Spring Boot 3, JUnit 5, OpenAPI YAML/JSON
Task 1: 固化设计与枚举语义
Files:
- Create:
docs/plans/2026-03-06-cisd-standard-init-support-mode-design.md - Create:
docs/plans/2026-03-06-cisd-standard-init-support-mode-plan.md
Step 1: 保存设计文档 保存版本差异、步骤编排和脚本映射。
Step 2: 保存实施计划 记录测试先行的修改顺序。
Task 2: 先补服务层失败测试
Files:
- Modify:
src/test/java/com/cisd/tms/modules/init/service/InitServiceTest.java
Step 1: 写 ENTERPRISE TLQ 的预检和步骤测试
断言 TLQ_CONF_APPLY 存在,MQ_USER_APPLY/MQ_QUEUE_APPLY/APP_MQ_CREDENTIALS_APPLY 不存在。
Step 2: 写 INDIRECT RABBITMQ_TLQ 的预检和步骤测试
断言 TLQ_CONF_APPLY、MQ_USER_APPLY、MQ_QUEUE_APPLY、APP_MQ_CREDENTIALS_APPLY 同时存在。
Step 3: 写非法组合测试
覆盖 INDIRECT + TLQ、ENTERPRISE + RABBITMQ_TLQ 被拒绝。
Step 4: 运行定向测试,确认红灯
Run: mvn -q -Dtest=InitServiceTest test
Expected: 至少新增用例失败。
Task 3: 实现服务层校验和编排
Files:
- Modify:
src/main/java/com/cisd/tms/modules/init/service/InitService.java - Modify:
src/main/resources/initplan/step-command-profiles.json
Step 1: 调整标准版允许枚举
按 productType 区分 ENTERPRISE 与 INDIRECT。
Step 2: 调整标准版 license 校验
ENTERPRISE + TLQ 与 INDIRECT + RABBITMQ_TLQ 都要求 tlqLicenseFileId。
Step 3: 新增 TLQ_CONF_APPLY 编排
更新 defaultSteps 和命令模板。
Step 4: 运行服务层测试,确认绿灯
Run: mvn -q -Dtest=InitServiceTest test
Expected: PASS
Task 4: 先补执行器失败测试
Files:
- Modify:
src/test/java/com/cisd/tms/modules/init/executor/ConfigurableInitStepExecutorTest.java
Step 1: 写 ENTERPRISE TLQ 下 RabbitMQ 应用配置应跳过的测试
Step 2: 写 INDIRECT RABBITMQ_TLQ 下 RabbitMQ 用户步骤应执行的测试
Step 3: 写 TLQ_CONF_APPLY 命令解析或任务步骤断言测试
Step 4: 运行定向测试,确认红灯
Run: mvn -q -Dtest=ConfigurableInitStepExecutorTest test
Expected: 至少新增用例失败。
Task 5: 实现执行器条件修正
Files:
- Modify:
src/main/java/com/cisd/tms/modules/init/executor/ConfigurableInitStepExecutor.java - Modify:
src/main/java/com/cisd/tms/modules/init/config/InitCommandProfileService.java(如需补充注释/兼容逻辑)
Step 1: 抽取标准版 RabbitMQ 是否启用的判断
ENTERPRISE: 仅RABBITMQINDIRECT:RABBITMQ和RABBITMQ_TLQ
Step 2: 修正 MQ_USER_APPLY / MQ_QUEUE_APPLY 条件
Step 3: 修正 APP_MQ_CREDENTIALS_APPLY 条件
Step 4: 运行执行器测试,确认绿灯
Run: mvn -q -Dtest=ConfigurableInitStepExecutorTest test
Expected: PASS
Task 6: 同步 OpenAPI 文档
Files:
- Modify:
docs/openapi/cisd-init.openapi.yaml - Modify:
docs/openapi/cisd-init.openapi.json
Step 1: 更新 mqType 描述
明确不同产品的合法取值。
Step 2: 更新请求示例和步骤含义说明
体现 TLQ_CONF_APPLY 与 INDIRECT 的双通道模式。
Task 7: 完整验证
Files:
- Verify only
Step 1: 运行模块定向测试
Run: mvn -q -Dtest=InitServiceTest,ConfigurableInitStepExecutorTest test
Expected: PASS
Step 2: 运行编译验证
Run: mvn -q -DskipTests compile
Expected: PASS
Step 3: 人工检查关键路径
检查 ENTERPRISE + TLQ、INDIRECT + RABBITMQ_TLQ 的任务步骤和命令模板。