pipeline-sdlc/docs/sdlc-architecture.md

5.9 KiB
Raw Blame History

开发产线 (SDLC Pipeline) 架构概览

客户可以输入什么

开发产线的入口是「项目管理」,客户分多阶段输入:

项目创建阶段

  • 项目名称、描述、项目类型 (web_app / mobile / api_service)
  • 技术栈配置 (JSON: 框架、语言、数据库等)
  • 代码仓库 URL
  • 关联的 Pipeline 定义 ID选哪个产线模板

迭代创建阶段

  • 迭代名称、迭代类型 (new_feature / bugfix / refactor / upgrade)
  • 迭代范围 (JSON: 功能点、用户故事)
  • 优先级 (1-10)
  • 创建迭代时自动触发 Pipeline 任务project.pyauto-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 自动推送:分析结果、设计产出预览、测试结果
  • 用户在输入框中回复、审批、补充信息
  • 系统事件通知(步骤开始/完成)

步骤详情弹窗

  • 步骤描述和配置
  • 输入/输出 artifactJSON 树形查看)
  • 执行日志
  • human_task表单 + 提交按钮
  • approval_gateapprove / 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 推送结果到对话面板

开发规范遵循

模块架构

  • 产线专属 UIpipeline-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 代替 print
  • getID() 代替 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 ≠ 功能正常,必须浏览器验证