5.9 KiB
5.9 KiB
开发产线 (SDLC Pipeline) 架构概览
客户可以输入什么
开发产线的入口是「项目管理」,客户分多阶段输入:
项目创建阶段
- 项目名称、描述、项目类型 (web_app / mobile / api_service)
- 技术栈配置 (JSON: 框架、语言、数据库等)
- 代码仓库 URL
- 关联的 Pipeline 定义 ID(选哪个产线模板)
迭代创建阶段
- 迭代名称、迭代类型 (new_feature / bugfix / refactor / upgrade)
- 迭代范围 (JSON: 功能点、用户故事)
- 优先级 (1-10)
- 创建迭代时自动触发 Pipeline 任务(project.py:auto-submit)
各阶段人工交互输入
| 阶段 | 步骤 | 输入内容 |
|---|---|---|
| 需求 | requirement_gathering | 需求文档表单 |
| 需求 | requirement_review | 审批 (approve/reject) |
| 设计 | table_design | 确认 LLM 生成的表结构 |
| 设计 | crud_design | 确认 LLM 生成的 CRUD 定义 |
| 设计 | api_design | 确认 LLM 生成的 API 规范 |
| 设计 | design_review | 架构负责人审批 |
| 开发 | code_review | 高级开发审批代码 |
| 开发 | code_fix | 提交修复说明 |
| 测试 | test_plan_create | 编写测试方案 |
| 测试 | bug_fix | 修复说明 + commit SHA |
| 测试 | acceptance_test | 产品经理验收 |
| 部署 | deploy_env_collect | SSH 信息 + 数据库连接 |
| 部署 | deploy_test_approve | 发布经理确认 |
| 运维 | incident_response | 故障处理方案 |
| 升级 | upgrade_plan | 新版本规划 |
统一输入形式(驾驶舱模式)
- 正文输入:多行文本框,支持自然语言
- 文件附件:上传需求文档、设计稿、代码文件等
- 类似与大模型对话的交互体验
客户应该看到什么
仪表盘驾驶舱
- 项目总数 / 活跃数
- 活跃迭代数
- 待处理 Bug(按严重程度分布:critical/major/minor/trivial)
- 待审批数
- 最近 5 个迭代及进度条
时间线面板
- 产线步骤的线性时间线
- 实时状态更新(completed/running/pending/waiting/failed)
- 点击步骤展开详情(产物、日志、审批表单)
- 按阶段分组(需求/设计/开发/测试/部署/运维)
对话面板
- Agent ↔ 用户对话历史
- Agent 自动推送:分析结果、设计产出预览、测试结果
- 用户在输入框中回复、审批、补充信息
- 系统事件通知(步骤开始/完成)
步骤详情弹窗
- 步骤描述和配置
- 输入/输出 artifact(JSON 树形查看)
- 执行日志
- human_task:表单 + 提交按钮
- approval_gate:approve / reject 按钮
- failed:错误详情 + 重试
项目管理页面
- 项目列表:状态、类型、关联产线
- 迭代列表:状态流转 (planning → in_progress → testing → completed)
- Bug 管理:严重程度、状态、关联迭代、提交人类型
测试/部署页面
- 测试用例列表、结果统计
- 测试计划、部署环境配置
产线信息交互
当前开发产线定义了 7 个阶段、28 个步骤类型:
| 阶段 | 步骤数 | 自动 | 人工 | 审批 |
|---|---|---|---|---|
| Phase 1: 需求 | 2 | 0 | 1 | 1 |
| Phase 2: 设计 | 4 | 3 | 1 | 1 |
| Phase 3: 开发 | 5 | 3 | 1 | 1 |
| Phase 4: 测试 | 8 | 4 | 3 | 0 |
| Phase 5: 部署 | 6 | 3 | 1 | 1 |
| Phase 6: 运维 | 2 | 1 | 1 | 0 |
| Phase 7: 升级 | 1 | 0 | 1 | 0 |
DAG 依赖图
requirement_gathering → requirement_review
→ table_design ──┬──→ design_review
→ crud_design ──┤
→ api_design ──┘
design_review → code_generate → code_compliance_check
→ code_auto_fix → code_review
code_review → test_plan_create → test_case_generate
→ functional_test ──┬──→ bug_report
→ performance_test──┘
bug_report → bug_fix → bug_verify → acceptance_test
acceptance_test → deploy_env_collect → deploy_test
→ deploy_test_verify → deploy_test_approve
deploy_test_approve → deploy_production
→ deploy_production_verify → monitor
monitor → incident_response (if alerts)
步骤间信息传递
信息通过 artifact 传递 — handler 的 output_data 存入 pipeline_artifacts 表,
下游通过 input_data[dep_step_name] 获取上游产物。
对话层信息流
- 用户在驾驶舱输入框发送消息 → 存储到 sd_conversations → DSPY 处理
- Agent 分析后可能在对话中回复,同时触发产线步骤流转
- 关键步骤完成时 Agent 推送结果到对话面板
开发规范遵循
模块架构
- 产线专属 UI(pipeline-sdlc)与引擎层(pipeline_task)严格分离
- 跨模块调用:
entire_url('/pipeline_task/api/task_list.dspy')绝对路径 - pipeline_task 零数据表,纯薄交互层
UI 规范
- index.ui 统一三层布局:Title (cheight:6) → 卡片区 (cheight:18) → VScrollPanel (css:filler)
- 白底卡片 + SVG 图标(严禁暗色主题、emoji、backgroundColor)
- Tabular popup → Tree 步骤树弹窗
- toolbar 按钮 script 中用
this取选中行
DSPY 规范
- 零 import(预加载:json、DBPools、get_user、params_kw、getID)
return代替printgetID()代替uuid()await get_user()不是get_user()- 禁
ServerEnv(),用request._run_ns sor.U()只要 2 个参数 (table, data_dict)await sor.sqlExe(sql, {})第二参数必须是 dict
models/*.json 规范
- summary[0].primary 必须是数组
- float/double 字段必须有 len + dec
- indexes idxfields 必须是数组
- codes 引用 appcodes_kv 必须用 parentid= 不是 id=
CRUD json/*.json 规范
- 根键必须是
tblname+params - editable 必须有 new/update/delete_data_url
- 使用
{{entire_url('../api/xxx.dspy')}}格式
部署规范(铁律)
- 本地改 → git commit → git push → 服务器 git pull → pip install(如需) → 重启
- 禁直接在服务器改源文件
- curl 200 ≠ 功能正常,必须浏览器验证