Files
DevFlow/docs/02-架构设计/业务系统设计.md
绝尘 98393b4908 新增: 初始化 DevFlow 项目仓库
Tauri 2 + Vue 3 + Vite 6 桌面应用,Rust workspace 含 13 个 crate
(df-ai / df-storage / df-workflow / df-core / df-execute 等)。
核心能力:AI 聊天 agentic 循环(工具调用+人工审批)、工作流引擎、
任务/想法/项目/阶段管理、可追溯性,及配套前端组件。
2026-06-12 01:31:05 +08:00

13 KiB
Raw Blame History

DevFlow 业务系统设计

创建: 2026-06-10 | 状态: 设计中 | 基于: 功能审查结论


一、产品定位

维度 定义
一句话 AI 原生的产研操作系统,从想法到上线的全流程编排
目标用户 个人开发者优先,后续扩展到小团队
核心价值 全流程编排 — 想法池 → 项目 → 任务 → 工作流 → 发布AI 贯穿每个环节
差异化 想法第一公民 + AI 全程参与 + 本地优先(零运维)

二、用户旅程设计

2.1 核心旅程

💡 想法池                    📂 项目                    🔀 任务                  🚀 发布
─────────────────────────────────────────────────────────────────────────────────────
捕捉想法 ──→ AI评估评分 ──→ 晋升立项 ──→ 创建任务 ──→ 绑定分支 ──→ 执行工作流 ──→ 合并发布
               │                              │            │            │           │
               └── 淘汰/归档                   └── 多任务   └── DAG     └── AI辅助  └── 自动化
                                               并行推进     自动执行    冲突解决     发布流程

2.2 五个阶段详细设计

阶段一:💡 想法池 (Idea Pool)

用户场景:开发者日常产生大量想法(看到新技术、遇到痛点、产生产品灵感),需要一个地方快速捕捉、评估、筛选。

操作 描述 AI 参与
捕捉 文本输入、快捷键快速记录、剪贴板导入
评估 AI 分析可行性、市场潜力、技术难度 核心场景LLM 评估报告
评分 多维打分 (可行性/影响力/紧迫性) AI 给出建议分
关联 相似想法自动发现,可合并 AI 语义相似度
晋升 高分想法晋升为项目 AI 生成项目初始化建议
淘汰 低分想法归档或删除

状态机

Draft → Evaluating → Scored → Approved → Promoted
                                → Rejected → Archived

关键问题

  • 想法是独立于项目的第一公民,不需要先有项目
  • AI 评估是核心差异化功能
  • ⚠️ 评分维度需要与实际对齐当前有3套不同的维度定义

阶段二:📂 项目 (Project)

用户场景:从想法晋升或手动创建项目,管理项目全生命周期。

操作 描述 AI 参与
创建 从想法晋升 或 手动创建 AI 生成项目描述/技术栈建议
阶段管理 5阶段管线想法→需求→编码→测试→发布 阶段推进时 AI 检查前置条件
上下文 项目代码结构、依赖、规范 AI 自动分析项目结构
暂停/恢复 项目可暂停后恢复

状态机

Planning → InProgress → Testing → Releasing → Completed
         → Paused → InProgress (恢复)
         → Cancelled

阶段管线current_stage独立于 status

Idea → Requirement → Coding → Testing → Release

关键问题

  • ⚠️ 当前 status(项目生命周期)和 current_stage(当前阶段)是两个维度,前端混用了
  • ⚠️ 数据库 projects 表缺少 current_stagerepo_pathprioritytags 字段

阶段三:🔀 任务 (Task)

用户场景:项目内创建多个并行任务,每个任务绑定一个 Git 分支,独立工作流。

操作 描述 AI 参与
创建任务 标题+描述,自动创建分支 AI 从需求拆解任务
绑定分支 每个任务一个独立分支 自动生成分支名
执行工作流 触发 DAG 工作流(编码→测试→审查) AI 参与每个节点
审查 代码审查、质量检查 AI 自动审查
合并 合并到主分支,冲突解决 AI 辅助冲突解决

状态机

Todo → InProgress → InReview → Testing → Done
                    → Blocked → InProgress (解除阻塞)
                    → Cancelled

关键问题

  • ⚠️ 缺少 branches 表,分支信息无法持久化
  • ⚠️ 任务到工作流的关联 (workflow_def_id) 缺失
  • ⚠️ 前端 TaskStatus 有 4 套不同的值

阶段四:⚙️ 工作流 (Workflow)

用户场景DAG 驱动的工作流自动执行,支持条件分支、并行、人工审批。

组件 描述
DAG 定义 可序列化的节点+边定义,持久化到 SQLite
节点类型 Script / AI / Docker / Git / HTTP / Human / Notify / Subflow
执行器 按拓扑层并行执行,支持暂停/恢复
事件总线 实时推送节点状态到前端
NodeRegistry 根据类型字符串动态创建节点实例

工作流执行生命周期

Pending → Running → Completed
                → Paused → Running (恢复)
                → Failed → Running (重试)
                → Cancelled

关键问题

  • DAG 拓扑排序算法正确
  • DagDef/NodeRegistry 已实现
  • ⚠️ Executor 同层节点尚未并行化
  • ⚠️ 条件分支引擎未实现
  • ⚠️ HumanNode人工审批暂停/恢复未连通

阶段五:🚀 发布 (Release)

用户场景:选择多个已完成任务,编排发布流程。

操作 描述 AI 参与
选择任务 选择要发布的 Done 状态任务
创建发布 合并分支到 release 分支 AI 生成 changelog
集成测试 运行完整测试工作流 自动
发布 部署 + 健康检查 自动
回滚 发布失败回滚 AI 分析失败原因

状态机

Planning → Integrating → Testing → Ready → Published
                                         → RolledBack
                     → Cancelled

关键问题

  • ⚠️ 前端完全缺少发布入口
  • ⚠️ releases 表缺少 branch_nameworkflow_def_id

三、跨领域功能设计

3.1 标注系统 (Annotation)

设计理念:任何内容(代码/文档/需求/测试报告)都可插入标注,统一收集后交给 AI 批量处理。

标记 含义 AI 处理方式
FIXME 需要修复 AI 定位问题并生成修复建议
TODO 待办 AI 拆解为任务
QUESTION 疑问 AI 尝试回答
RISK 风险 AI 评估风险等级
DECISION 决策 自动记录到决策日志
OPTIMIZE 优化 AI 给出优化方案

批量处理流程

收集所有 Open 标注 → 按类型分组 → AI 逐条处理 → 标记为 Resolved

3.2 决策留痕 (Decision Journal)

设计理念:所有关键决策自动或半自动记录,全程可追溯。

自动记录的决策场景

  • 想法评估结果(为什么批准/拒绝)
  • 功能标记为"不做"时(为什么不做)
  • AI 选择了方案 A 而非方案 B 时
  • 代码审查中发现风险时的处理决策
  • 发布前的检查点决策

3.3 经验进化 (Evolution)

设计理念:开发过程自动沉淀知识,越用越聪明。

知识类型 来源 复用场景
审查规则 代码审查结论 后续审查自动应用
Prompt 模板 成功的 AI 对话 类似场景复用
踩坑经验 错误修复过程 遇到类似问题时提醒
架构模式 项目结构分析 新项目初始化建议

3.4 AI 编排

多模型策略

任务类型 → ModelRouter → 最优模型
  代码生成     → Claude/GPT-4
  代码审查     → Claude (长上下文)
  文档生成     → GLM/DeepSeek (性价比)
  快速问答     → DeepSeek (低成本)

Agent 协作模式Phase 2+

Planner Agent → 拆解任务
Coder Agent   → 编码实现
Reviewer Agent → 代码审查
Fixer Agent   → 修复问题

四、数据模型设计(按阶段)

Phase 1 最小表集(当前 + 补全)

用途 状态
ideas 想法池 已有,需补字段
projects 项目管理 已有,需补字段
tasks 任务管理 已有,需补字段
releases 发布管理 已有,需补字段
workflow_defs 工作流定义 缺失
workflow_executions 工作流执行 已有,需补字段
node_executions 节点执行记录 已有
branches 分支管理 缺失

Phase 2 扩展表

用途
ai_providers AI 模型配置
connections 连接配置
artifacts 产出物

Phase 3+ 完整表

用途
annotations 标注系统
decisions 决策留痕
features 需求功能清单
test_cases 测试用例
test_runs 测试执行记录
knowledge 经验知识库
merge_requests 合并请求

五、关键设计决策

D1: 想法是第一公民

  • 想法池独立于项目,可以独立运转
  • 想法不需要关联项目即可被评估和打分
  • 晋升是单向操作(想法→项目),但保留追溯

D2: 多任务/分支并行

  • 同一项目内多个任务同时开发
  • 每个任务绑定独立 Git 分支
  • 任务间互不干扰,完成后合并

D3: 引擎不绑定业务

  • DAG 引擎纯粹做编排,不知道"想法"/"项目"等概念
  • 阶段是 DAG 模板,可自定义
  • 节点通过 Node trait 扩展

D4: 本地优先

  • SQLite 嵌入,不依赖云服务
  • 所有数据存储在本地
  • 零运维,安装即用

D5: AI 贯穿全程

  • 不是"加了 AI 功能",而是"AI 是系统的一部分"
  • 每个阶段都有 AI 参与
  • AI 输出作为决策依据,最终决策权在人

D6: 决策必留痕

  • 所有关键决策自动记录
  • 决策可追溯到具体上下文(哪个想法、哪个功能、哪次审查)
  • 未来可回溯"为什么这么做"

六、审查发现的设计问题与决策

# 问题 设计决策 优先级
1 状态枚举三套不一致 以 types.rs 为准ARCHITECTURE.md 和 SQL 同步 Phase 1
2 projects 缺 status vs stage status 和 current_stage 分开status 管生命周期stage 管进度 Phase 1
3 ideas.promoted_to 缺失 V2 补字段,晋升时回写 Phase 1
4 branches 表不存在 V2 新增表,分支管理需要持久化 Phase 1
5 workflow_executions 缺 project_id V2 补字段,执行记录必须关联业务 Phase 1
6 DAG 不可序列化 DagDef/Dag 分离(已完成) Phase 1
7 Executor 串行 同层并行化(待实现) Phase 1
8 前端 id 类型不对 统一为 string (UUID) Phase 1
9 Store 未接入 View 先建 API 层再接 Store Phase 1
10 标注/决策表缺失 Phase 3 再建表,当前 UI 标注 "Coming Soon" Phase 3
11 需求-测试追溯 Phase 4 再建表 Phase 4
12 经验进化 Phase 5 实现 Phase 5

七、MVP 验证场景

Phase 1 目标:跑通"创建想法 → 晋升项目 → 创建任务 → 执行 3 节点工作流 → 查看结果"

1. 用户在想法池输入"做一个 Markdown 编辑器"
2. AI 评估可行性,给出评分和建议
3. 用户点击"晋升为项目"
4. 系统创建项目,进入编码阶段
5. 用户创建任务"实现基础编辑功能"
6. 系统创建分支 task/abc123
7. 用户点击"运行工作流"
8. DAG 执行: [Shell: 环境检查] → [Shell: 运行测试] → [Shell: 构建产物]
9. 前端实时展示执行日志
10. 执行完成,结果持久化到 SQLite
11. 用户刷新页面,数据仍在

八、已确认的设计决策

Q1: 想法评分维度 已确认

决策:采用 C 方案 — 可行性/影响力/紧迫性 + 综合分 (3+1 维)

  • evaluator.rs 已实现的 EvalDimension 对齐
  • IdeaScores { feasibility, impact, urgency, overall } 保留

Q2: 发布模块 Phase 1 范围 已确认

决策Phase 1 简化 — 只做 Release 记录 + 手动标记任务

  • releases 表保留,支持 CRUD
  • 不做自动化发布流程(合并→测试→部署)
  • 前端在 ProjectDetail 中添加简单 Release 面板

Q3: AI 评估 Phase 1 范围 已确认

决策Phase 1 用固定算法评分,延后接入 AI

  • ScoringEngine 当前返回固定 5.0,改为基于启发式规则的简单算法
  • Phase 2 接入 LLM 后替换为 AI 评分