ai-dev-flow 3.10.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. ai_dev_flow/__init__.py +5 -0
  2. ai_dev_flow/__main__.py +6 -0
  3. ai_dev_flow/checkpoint.py +65 -0
  4. ai_dev_flow/cli.py +598 -0
  5. ai_dev_flow/config.py +404 -0
  6. ai_dev_flow/data/pipeline.yaml +193 -0
  7. ai_dev_flow/data/profiles/java-spring.yml +140 -0
  8. ai_dev_flow/data/recipes/steps/00-init-project.yaml +168 -0
  9. ai_dev_flow/data/recipes/steps/01-refine-requirement.yaml +117 -0
  10. ai_dev_flow/data/recipes/steps/02-analysis.yaml +97 -0
  11. ai_dev_flow/data/recipes/steps/03-design.yaml +91 -0
  12. ai_dev_flow/data/recipes/steps/03.5-decompose.yaml +120 -0
  13. ai_dev_flow/data/recipes/steps/05-build.yaml +72 -0
  14. ai_dev_flow/data/recipes/steps/06-review.yaml +115 -0
  15. ai_dev_flow/data/recipes/steps/07-delivery.yaml +76 -0
  16. ai_dev_flow/data/recipes/steps/task-template.yaml +74 -0
  17. ai_dev_flow/error_handler.py +122 -0
  18. ai_dev_flow/executor.py +406 -0
  19. ai_dev_flow/git_ops.py +187 -0
  20. ai_dev_flow/knowledge_accumulator.py +121 -0
  21. ai_dev_flow/logger.py +84 -0
  22. ai_dev_flow/sandbox.py +291 -0
  23. ai_dev_flow/semantic_summarizer.py +351 -0
  24. ai_dev_flow/snapshot.py +210 -0
  25. ai_dev_flow/state.py +87 -0
  26. ai_dev_flow/task_context.py +134 -0
  27. ai_dev_flow/task_graph.py +841 -0
  28. ai_dev_flow/task_state.py +151 -0
  29. ai_dev_flow/watchdog.py +120 -0
  30. ai_dev_flow-3.10.0.dist-info/METADATA +171 -0
  31. ai_dev_flow-3.10.0.dist-info/RECORD +35 -0
  32. ai_dev_flow-3.10.0.dist-info/WHEEL +5 -0
  33. ai_dev_flow-3.10.0.dist-info/entry_points.txt +2 -0
  34. ai_dev_flow-3.10.0.dist-info/licenses/LICENSE +21 -0
  35. ai_dev_flow-3.10.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,140 @@
1
+ # ============================================================
2
+ # Java Spring 项目画像 - 通用模板
3
+ # ============================================================
4
+ # 本文件是初始化时的默认模板。
5
+ # 执行 init-project.ps1 时,AI 会扫描目标项目并自动生成更准确的 profile。
6
+ # 如果目标项目为空,则直接使用本模板。
7
+ # ============================================================
8
+
9
+ profile: java-spring
10
+
11
+ description: Java Spring 后端工程通用规则
12
+
13
+ projectRules:
14
+ allowGlobalRefactor: false
15
+ allowDeleteExistingLogic: false
16
+ allowDbChangeByDefault: false
17
+ requirePlanBeforeCode: true
18
+ requireReviewAfterCode: true
19
+ preferSmallScopedChanges: true
20
+ protectUserChanges: true
21
+ commentLanguage: zh-CN
22
+ logLanguage: zh-CN
23
+
24
+ backend:
25
+ language: Java
26
+ jdk:
27
+ compileRelease: 17
28
+ buildTool: Maven
29
+ packaging: multi-module
30
+ commonFrameworks:
31
+ - Spring Boot 3
32
+ - Spring MVC
33
+ - Spring Cloud
34
+ - MyBatis
35
+ - Lombok
36
+ - Swagger / OpenAPI annotations
37
+
38
+ dataAccess:
39
+ mongodb:
40
+ enabled: false
41
+ style:
42
+ - MongoTemplate
43
+ - MongoRepository
44
+ redis:
45
+ enabled: false
46
+ mysqlOrJdbc:
47
+ enabled: true
48
+ style:
49
+ - MyBatis mapper
50
+ - Spring JDBC
51
+
52
+ # 框架特化信息(Phase 0 自动填充,初始为通用默认值)
53
+ framework:
54
+ name: "Spring Boot"
55
+ routing: "annotation-based"
56
+ security:
57
+ type: "none"
58
+ annotation: ""
59
+ menuManagement: "none"
60
+ orm:
61
+ type: "MyBatis"
62
+ mapperLocation: "**/mapper/**/*.xml"
63
+
64
+ # 数据库特化信息
65
+ database:
66
+ dictTables: []
67
+ menuTable: ""
68
+ migrationPath: ""
69
+
70
+ # 前端信息(如存在前端工程)
71
+ frontend:
72
+ enabled: false
73
+ framework: ""
74
+ uiLibrary: ""
75
+ buildTool: ""
76
+ routing: ""
77
+
78
+ layers:
79
+ - controller
80
+ - service
81
+ - dao
82
+ - mapper
83
+ - config
84
+ - dto
85
+ - vo
86
+ - po
87
+ - entity
88
+
89
+ # 模块分组(初始化时由 AI 扫描项目自动生成)
90
+ moduleGroups: {}
91
+
92
+ commands:
93
+ # 编译验证(跳过测试,用于快速检查阶段)
94
+ compileOnly:
95
+ - mvn -DskipTests compile
96
+ # 编译 + 测试(编码完成后必须执行,用于验证无编译错误和回归)
97
+ build:
98
+ - mvn clean package
99
+ # 单独执行测试
100
+ test:
101
+ - mvn test
102
+
103
+ codingRules:
104
+ scope:
105
+ - 默认只修改用户指定模块;跨模块修改前先说明原因。
106
+ - 不做无关格式化、包名调整、批量重命名或全局重构。
107
+ java:
108
+ - 保持现有包结构和命名习惯。
109
+ - 优先复用已有 DTO、PO、DAO、Service、工具类。
110
+ - 日志使用 slf4j,占位符写法,不拼接敏感信息。
111
+ - 新增关键逻辑时写中文注释。
112
+ - 控制台联调用日志优先中文。
113
+ spring:
114
+ - Controller 层只做入参出参和路由,业务逻辑放 Service。
115
+ - 配置项优先使用 application.properties 现有命名方式。
116
+
117
+ # 受保护路径(初始化时由 AI 扫描项目自动生成更完整列表)
118
+ protectedPaths:
119
+ - "**/src/main/resources/application-prod.yml"
120
+ - "**/src/main/resources/application-prod.yaml"
121
+ - "**/src/main/resources/application.yml"
122
+ - "**/src/main/resources/application.yaml"
123
+ - "**/src/main/resources/bootstrap.yml"
124
+ - "**/src/main/resources/bootstrap.yaml"
125
+ - "sql/prod/**"
126
+ - "deploy/**"
127
+ - "**/Dockerfile"
128
+
129
+ generatedOrIgnoredPaths:
130
+ - "**/target/**"
131
+ - ".idea/**"
132
+ - ".svn/**"
133
+ - ".git/**"
134
+
135
+ reviewRules:
136
+ afterCodeChange:
137
+ - 检查是否误改非目标模块。
138
+ - 检查是否改动 protectedPaths。
139
+ - 检查日志是否泄露密码、accessKey、token、连接串凭据。
140
+ - 检查 Mongo/Redis 查询是否有明显全表风险。
@@ -0,0 +1,168 @@
1
+ version: "1.0.0"
2
+ title: "阶段 0 - 项目初始化"
3
+ description: "扫描目标项目,自动生成项目画像和架构地图"
4
+ instructions: |
5
+ 你是一个项目分析专家。你的任务是扫描目标项目的完整代码库,
6
+ 提取所有关键架构信息,生成精准的项目画像文件。
7
+
8
+ 核心规则:
9
+ 1. 只读取文件,不修改任何代码。
10
+ 2. 用文件系统操作(glob/grep)尽可能多地发现信息。
11
+ 3. 所有发现写入输出文件,不要只记在脑中。
12
+
13
+ parameters:
14
+ - key: project_root
15
+ input_type: string
16
+ requirement: required
17
+ description: "项目根目录"
18
+ - key: output_profile
19
+ input_type: string
20
+ requirement: required
21
+ description: "增强版项目画像输出路径"
22
+ - key: output_project_map
23
+ input_type: string
24
+ requirement: required
25
+ description: "项目架构地图输出路径"
26
+
27
+ prompt: |
28
+ 你是一个项目分析专家。你需要扫描目标项目 {{ project_root }},
29
+ 生成两份关键文档。
30
+
31
+ ## 第一步:扫描后端
32
+
33
+ 1. 找到 pom.xml(可能在根目录或子目录):
34
+ - 提取 Spring Boot 版本、Java 版本
35
+ - 识别 ORM 框架(MyBatis/MyBatis-Plus/JPA)
36
+ - 识别权限框架(Sa-Token/Spring Security/Shiro)
37
+ - 识别工具库(Hutool/Lombok/MapStruct)
38
+ - 列出所有 Maven 子模块
39
+
40
+ 2. 找到 Controller 文件(搜索 @RestController 或 @Controller):
41
+ - 提取 URL 映射模式(@RequestMapping 路径)
42
+ - 提取权限注解(@SaCheckPermission / @PreAuthorize 等)
43
+ - 记录命名规范(CamelCase vs kebab-case vs lowerCamel)
44
+
45
+ 3. 找到 SQL 脚本目录(搜索 *.sql 文件):
46
+ - 检查 sys_menu 或 menu 相关表结构
47
+ - 检查 sys_dict_type/sys_dict_data 表
48
+ - 了解迁移脚本命名规范
49
+
50
+ 4. 找到 application.yml / application.properties:
51
+ - 确认数据库配置
52
+ - 确认 Redis 配置
53
+
54
+ ## 第二步:扫描前端
55
+
56
+ 1. 找到 package.json:
57
+ - 提取 Vue 版本、Element Plus 版本
58
+ - 提取构建工具(Vite/Webpack)
59
+ - 提取状态管理(Pinia/Vuex)
60
+
61
+ 2. 找到现有页面(views/ 目录):
62
+ - 确认目录结构模式
63
+ - 确认组件拆分模式(index.vue + useXxx.js + components/)
64
+
65
+ 3. 找到 API 层(api/ 目录):
66
+ - 确认 API 封装模式
67
+ - 确认 request 封装路径
68
+
69
+ 4. 找到路由配置(router/ 目录或搜索路由相关代码):
70
+ - 确认是静态路由还是动态路由(从服务端菜单树加载)
71
+ - 如果是动态路由,记录获取菜单的 API 路径
72
+
73
+ ## 第三步:生成输出
74
+
75
+ ### A. 写入增强版 profile.yml 到 {{ output_profile }}
76
+
77
+ 基于扫描结果,写入完整的 profile.yml,至少包含:
78
+ ```yaml
79
+ profile: java-spring
80
+ description: 自动生成的进销存 WMS 项目画像
81
+
82
+ projectRules:
83
+ allowGlobalRefactor: false
84
+ allowDeleteExistingLogic: false
85
+ allowDbChangeByDefault: false
86
+ requirePlanBeforeCode: true
87
+ requireReviewAfterCode: true
88
+
89
+ backend:
90
+ language: Java
91
+ jdk:
92
+ compileRelease: <检测到的Java版本>
93
+ buildTool: Maven
94
+ packaging: multi-module
95
+ commonFrameworks:
96
+ - <检测到的框架列表>
97
+ modules:
98
+ <模块名>: <模块路径>
99
+
100
+ frontend:
101
+ framework: Vue
102
+ version: <检测到的Vue版本>
103
+ uiLibrary: Element Plus
104
+ buildTool: Vite
105
+ routing: db-driven # 或 static,根据实际检测结果
106
+
107
+ framework:
108
+ name: RuoYi-Vue-Plus # 根据实际检测
109
+ version: <检测到的版本>
110
+ routing: db-driven
111
+ security:
112
+ type: Sa-Token
113
+ annotation: "@SaCheckPermission"
114
+ menuManagement: db-driven
115
+ orm:
116
+ type: MyBatis-Plus
117
+ mapperLocation: "**/mapper/**/*.xml"
118
+
119
+ database:
120
+ dictTables:
121
+ - sys_dict_type
122
+ - sys_dict_data
123
+ menuTable: sys_menu
124
+ migrationPath: <检测到的SQL脚本目录>
125
+
126
+ codingRules:
127
+ controller:
128
+ urlPattern: <检测到的URL模式>
129
+ permissionAnnotation: <检测到的权限注解>
130
+ frontend:
131
+ pageStructure: <检测到的页面结构模式>
132
+ apiPattern: <检测到的API封装模式>
133
+
134
+ commands:
135
+ compileOnly:
136
+ - mvn -DskipTests compile
137
+ build:
138
+ - mvn clean package
139
+ test:
140
+ - mvn test
141
+
142
+ protectedPaths:
143
+ - "**/src/main/resources/application-prod.yml"
144
+ - "**/src/main/resources/application.yml"
145
+ ```
146
+
147
+ ### B. 写入项目架构地图到 {{ output_project_map }}
148
+
149
+ 包含以下章节:
150
+ 1. 模块结构图
151
+ 2. 关键目录说明
152
+ 3. 数据库表清单(从SQL脚本提取)
153
+ 4. 菜单和权限体系说明(如适用)
154
+ 5. 页面和路由对应关系
155
+ 6. 开商约定(命名规范、代码模式)
156
+
157
+ 完成后输出:
158
+ ```
159
+ === 项目初始化完成 ===
160
+ 画像已写入:{{ output_profile }}
161
+ 地图已写入:{{ output_project_map }}
162
+ ```
163
+
164
+ extensions:
165
+ - type: builtin
166
+ name: developer
167
+ timeout: 600
168
+ bundled: true
@@ -0,0 +1,117 @@
1
+ version: "1.0.0"
2
+ title: "阶段 1 - 需求精炼"
3
+ description: "将用户的原始需求转化为结构化的、AI 可直接执行的需求文档"
4
+ instructions: |
5
+ 你是一个需求精炼专家。你的任务是把用户的原始想法转化为结构化的需求文档。
6
+
7
+ 核心规则:
8
+ 1. 仅输出需求文档到 {{ requirement }},禁止编写任何源代码文件(.java/.py/.ts/.js/.go/.rs/.kt/.swift 等)。
9
+ 2. 仅允许写入 {{ requirement }},禁止修改项目中的源代码、配置、SQL 迁移等文件。
10
+ 3. 直接从原始需求文件中提取信息进行分析。所有不明确的点,在需求文档中用 `[待确认]` 标注,不要追问用户。
11
+
12
+ parameters:
13
+ - key: project_root
14
+ input_type: string
15
+ requirement: required
16
+ description: "项目根目录"
17
+ - key: profile
18
+ input_type: string
19
+ requirement: required
20
+ description: "项目画像文件路径"
21
+ - key: project_map
22
+ input_type: string
23
+ requirement: required
24
+ description: "项目架构地图路径(Phase 0 产出)"
25
+ - key: requirement_raw
26
+ input_type: string
27
+ requirement: required
28
+ description: "原始需求文件路径(从阶段 0 输入)"
29
+ - key: requirement
30
+ input_type: string
31
+ requirement: required
32
+ description: "精炼后需求输出路径"
33
+
34
+ prompt: |
35
+ 你是一个需求精炼专家。你的任务是把用户的**原始想法**转化为结构化的、AI 可直接执行的需求文档。
36
+
37
+ ## 输入
38
+
39
+ 1. 用户的原始需求描述(从 {{ requirement_raw }} 读取)
40
+ 2. 项目画像:{{ profile }}(包含框架类型、路由模式、权限体系等关键约束)
41
+ 3. 项目架构地图:{{ project_map }}(包含模块结构、目录约定、数据库表清单)
42
+ 4. 项目代码仓库:{{ project_root }}
43
+
44
+ ## 执行规则
45
+
46
+ 1. **仅输出需求文档,禁止编写任何源代码(.java/.py/.ts/.js/.go/.rs/.kt/.swift 等)。**
47
+ 2. **仅允许写入 {{ requirement }},禁止修改项目源代码、配置、SQL 迁移等文件。**
48
+ 3. **先从 {{ profile }} 和 {{ project_map }} 了解项目框架约定**,特别是:
49
+ - 路由是注解驱动还是数据库驱动?
50
+ - 权限框架是什么?用什么注解?
51
+ - 菜单/页面的注册方式?(代码配置 vs 数据库INSERT)
52
+ - SQL 迁移脚本的存放路径和命名规范?
53
+ 4. **直接从 {{ requirement_raw }} 和 {{ project_root }} 中提取信息进行需求精炼。**
54
+ 5. **不要向用户提问。** 所有不确定的点,在需求文档中用 `[待确认: 具体问题]` 标注即可。
55
+ 6. **精炼完成后,立即将结果写入 {{ requirement }}。**
56
+
57
+ ## 输出格式
58
+
59
+ 精炼后的需求必须包含以下所有章节,不可省略:
60
+
61
+ ```
62
+ # 功能需求
63
+
64
+ ## 功能名称
65
+ (模块.子功能,一句话说清楚)
66
+
67
+ ## 业务背景
68
+ - 业务场景
69
+ - 解决什么问题
70
+ - 谁会使用
71
+ - 不做会怎样
72
+
73
+ ## 功能要求
74
+ ### 涉及的模块/表
75
+ (从代码仓库中确认的现有模块和表)
76
+
77
+ ### 接口定义(如有)
78
+ - 接口路径/方法
79
+ - 请求参数(字段表)
80
+ - 响应参数(字段表)
81
+
82
+ ### 业务流程
83
+ (文字描述或流程图)
84
+
85
+ ## 限制条件
86
+ 1. 不允许修改已有接口路径
87
+ 2. 不允许删除已有业务逻辑
88
+ 3. 不允许全局重构
89
+ 4. 涉及数据库变更时,必须先输出 SQL、回滚 SQL、影响范围
90
+ 5. 实现前必须先输出工程方案
91
+
92
+ ## 验收标准
93
+ (可量化、可测试,每条约 1 行)
94
+
95
+ ## 补充信息
96
+ ```
97
+
98
+ ## 完成后
99
+
100
+ 需求写入 {{ requirement }} 后,输出:
101
+
102
+ ```
103
+ === 需求精炼完成 ===
104
+
105
+ 需求已写入:{{ requirement }}
106
+
107
+ 已澄清的关键设计决策:
108
+ - xxx
109
+
110
+ 是否可以进入自动规划阶段:是/否
111
+ ```
112
+
113
+ extensions:
114
+ - type: builtin
115
+ name: developer
116
+ timeout: 300
117
+ bundled: true
@@ -0,0 +1,97 @@
1
+ version: "1.0.0"
2
+ title: "阶段 2 - 需求分析"
3
+ description: "拆解功能点、数据流、界面逻辑,列出所有不确定项"
4
+ instructions: |
5
+ 你是资深需求分析师。
6
+
7
+ 基于已确认的结构化需求文档,分析输出需求分析报告。
8
+ 核心产出:功能拆分、数据流、界面逻辑、以及所有**不确定项**。
9
+
10
+ 仅输出分析报告到 {{ output_analysis }},禁止编写任何源代码文件(.java/.py/.ts/.js/.go 等)。
11
+
12
+ parameters:
13
+ - key: project_root
14
+ input_type: string
15
+ requirement: required
16
+ description: "项目根目录"
17
+ - key: requirement
18
+ input_type: string
19
+ requirement: required
20
+ description: "精炼后的需求文件路径"
21
+ - key: profile
22
+ input_type: string
23
+ requirement: required
24
+ description: "项目画像文件路径"
25
+ - key: project_map
26
+ input_type: string
27
+ requirement: required
28
+ description: "项目架构地图路径"
29
+ - key: output_analysis
30
+ input_type: string
31
+ requirement: required
32
+ description: "需求分析报告输出路径"
33
+
34
+ prompt: |
35
+ 基于以下文件进行需求分析:
36
+
37
+ 1. 精炼需求:{{ requirement }}
38
+ 2. 项目画像:{{ profile }}(包含框架类型、路由模式、权限体系)
39
+ 3. 项目架构地图:{{ project_map }}(包含模块结构、目录约定、数据库表清单)
40
+ 4. 项目代码仓库:{{ project_root }}
41
+
42
+ ## 执行规则
43
+
44
+ 1. 仅输出分析报告,禁止编写任何源代码(.java/.py/.ts/.js/.go 等)。
45
+ 2. 禁止修改项目中的源代码文件、配置文件、SQL 迁移脚本。
46
+ 3. 分析必须基于项目代码仓库中的现有代码。如果找不到对应模块,记录为问题。
47
+ 4. 根据 {{ profile }} 中的 framework 信息,特别关注:
48
+ - 如果 routing=db-driven,新增页面必须确认菜单SQL的存放路径和格式
49
+ - 如果 menuManagement=db-driven,分析 sys_menu 表结构和现有菜单SQL的模式
50
+ - 确认权限注解类型,分析现有权限标识的命名规范
51
+
52
+ ## 分析内容
53
+
54
+ 将分析结果写入 {{ output_analysis }},包含以下章节:
55
+
56
+ ### 1. 功能拆分
57
+ 将需求拆分为可独立实现的功能点,每个功能点标注:
58
+ - 功能名称
59
+ - 涉及模块(从代码仓库确认)
60
+ - 关联数据表
61
+ - 优先级 P0/P1/P2
62
+
63
+ ### 2. 数据流
64
+ - 数据从哪来(用户输入/外部系统/数据库)
65
+ - 数据怎么流转
66
+ - 数据最终存哪里
67
+
68
+ ### 3. 界面逻辑(如果涉及前端)
69
+ - 页面有哪些
70
+ - 交互流程
71
+ - 输入验证
72
+
73
+ ### 4. 不确定项(**最关键的部分**)
74
+ 列出所有在当前信息下无法确定的问题,例如:
75
+ - 某个字段取值规则
76
+ - 异常情况的处理方式
77
+ - 性能要求
78
+ - 兼容性要求
79
+ - 依赖的第三方服务/API
80
+ - 某些功能点是否在现有代码中有对应实现
81
+
82
+ 每条不确定项格式:
83
+ ```
84
+ - [ ] 问题描述 | 建议默认方案 | 需要确认人
85
+ ```
86
+
87
+ ### 5. 影响范围
88
+ - 需要修改的模块/文件列表
89
+ - 是否有数据库变更
90
+ - 是否有配置变更
91
+ - 是否有接口兼容性影响
92
+
93
+ extensions:
94
+ - type: builtin
95
+ name: developer
96
+ timeout: 300
97
+ bundled: true
@@ -0,0 +1,91 @@
1
+ version: "1.0.0"
2
+ title: "阶段 3 - 工程方案"
3
+ description: "基于已确认的需求和需求分析,做架构设计、接口定义、数据模型"
4
+ instructions: |
5
+ 你是资深架构师。
6
+
7
+ 基于已确认的需求文档和需求分析报告,输出工程方案。
8
+ 所有不确定项已在检查点中闭环,不要在方案中引入新的不确定项。
9
+
10
+ 不要修改项目的源代码文件(.java、.vue、.xml、.yml、.properties 等)。
11
+
12
+ **必须执行**:将工程方案完整写入 {{ output_plan }} 文件。
13
+ 这是不可跳过的强制步骤。即使项目中已有部分代码,
14
+ 仍需输出剩余工作的工程方案。
15
+
16
+ parameters:
17
+ - key: project_root
18
+ input_type: string
19
+ requirement: required
20
+ description: "项目根目录"
21
+ - key: requirement
22
+ input_type: string
23
+ requirement: required
24
+ description: "精炼后的需求文件路径"
25
+ - key: input_analysis
26
+ input_type: string
27
+ requirement: required
28
+ description: "需求分析报告路径"
29
+ - key: profile
30
+ input_type: string
31
+ requirement: required
32
+ description: "项目画像文件路径"
33
+ - key: output_plan
34
+ input_type: string
35
+ requirement: required
36
+ description: "工程方案输出路径"
37
+
38
+ prompt: |
39
+ **重要:你必须将工程方案完整写入 {{ output_plan }} 文件。这是本任务的唯一交付物,不可跳过。**
40
+
41
+ 基于以下文件输出工程方案:
42
+
43
+ 1. 精炼需求:{{ requirement }}
44
+ 2. 需求分析:{{ input_analysis }}
45
+ 3. 项目画像:{{ profile }}
46
+ 4. 项目代码仓库:{{ project_root }}
47
+
48
+ ## 执行规则
49
+
50
+ 1. 不要修改项目的源代码文件(.java、.vue、.xml、.yml、.properties 等)。
51
+ 2. 所有方案必须基于现有代码的实际情况。如果现有代码的结构与需求分析描述不符,以代码实际情况为准并记录差异。
52
+ 3. 不要在方案中引入新的不确定项。
53
+
54
+ ## 输出内容
55
+
56
+ 将工程方案写入 {{ output_plan }},包含以下章节:
57
+
58
+ ### 1. 架构设计
59
+ - 涉及的模块
60
+ - 模块间调用关系
61
+ - 数据流向
62
+ - 是否引入新依赖
63
+
64
+ ### 2. 接口定义(如有)
65
+ 每个接口:
66
+ - 路径 / 方法
67
+ - 请求参数(字段名、类型、必填、说明)
68
+ - 响应参数(字段名、类型、说明)
69
+ - 错误码
70
+
71
+ ### 3. 数据模型
72
+ - 新增/修改的表结构(字段名、类型、约束、索引)
73
+ - SQL 语句(建表/加字段/修改字段)
74
+ - 回滚 SQL
75
+
76
+ ### 4. 代码变更
77
+ - 需要修改的文件列表(路径 + 修改内容摘要)
78
+ - 需要新增的文件列表
79
+ - 需要删除的文件列表
80
+ - 配置变更
81
+
82
+ ### 5. 测试方案
83
+ - 单元测试范围
84
+ - 集成测试范围
85
+ - 手动测试步骤
86
+
87
+ extensions:
88
+ - type: builtin
89
+ name: developer
90
+ timeout: 300
91
+ bundled: true