cisd/docs/plans/2026-03-06-cisd-standard-init-support-mode-plan.md
2026-03-11 14:23:11 +08:00

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 初始化中 ENTERPRISEINDIRECT 的支持方式建模、步骤编排和执行条件。

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_APPLYMQ_USER_APPLYMQ_QUEUE_APPLYAPP_MQ_CREDENTIALS_APPLY 同时存在。

Step 3: 写非法组合测试 覆盖 INDIRECT + TLQENTERPRISE + 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 区分 ENTERPRISEINDIRECT

Step 2: 调整标准版 license 校验 ENTERPRISE + TLQINDIRECT + 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: 仅 RABBITMQ
  • INDIRECT: RABBITMQRABBITMQ_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_APPLYINDIRECT 的双通道模式。

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 + TLQINDIRECT + RABBITMQ_TLQ 的任务步骤和命令模板。