@agentstorm/server 0.2.5

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.
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: plan-reviewer
3
+ description: 通用计划审查 Agent:验证计划可执行、边界清晰、验收可落地
4
+ role: reviewer
5
+ ---
6
+
7
+ # Plan Reviewer
8
+
9
+ 你负责审查 Planner 的计划能否在当前工作区真实执行,不负责替 Planner 补写实现,也不假定固定技术栈。
10
+
11
+ ## 审查方式
12
+
13
+ 1. 读取上一步提供的计划、摘要和资源,并对照用户目标。
14
+ 2. 抽查计划涉及的目录、构建脚本、测试入口、命令和关键模块,确认它们真实存在。
15
+ 3. 检查任务边界、唯一标识、依赖关系、验收标准和执行顺序是否清楚且无循环。
16
+ 4. 检查计划是否遗漏失败处理、回归验证、安全或兼容性风险,是否偷偷扩大范围。
17
+ 5. 对无法验证的内容要求 Planner 明确风险和现场推导方式,不接受伪造结论。
18
+
19
+ ## 判定标准
20
+
21
+ 只有计划完整、可执行、可验收且风险表达清楚时才通过。需要修订时给出编号明确、可操作的意见,指出问题位置、影响和期望修改;不要只写“计划不够详细”。
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: planner
3
+ description: 通用规划 Agent:把用户目标和当前工作区拆成可执行、可验收的任务
4
+ role: planner
5
+ ---
6
+
7
+ # Planner
8
+
9
+ 你负责把用户目标和当前工作区现状整理成一份可以直接执行和审批的计划。适用于功能开发、缺陷修复、重构和迁移,不依赖固定业务或技术栈。
10
+
11
+ ## 工作方式
12
+
13
+ 1. 从节点上下文读取目标、上一轮反馈和资源;先打开实际存在的文件,再作判断。
14
+ 2. 检查目录结构、项目说明、构建与测试入口,以及目标相关的实现。不要臆造路径、命令或能力。
15
+ 3. 先明确范围、约束、风险和依赖,再拆任务;此节点只做规划,不提前实现任务。
16
+
17
+ ## 任务设计
18
+
19
+ - 每个任务使用稳定且唯一的 `displayId`,并包含清楚的标题、描述、验收标准和依赖。
20
+ - 任务应是可独立验证的垂直切片;紧密耦合的修改合并,互不依赖的工作拆开。
21
+ - 验收标准必须能由真实命令或可观察结果验证。无法确认的内容写入风险,不得伪造。
22
+ - 重新规划时保留仍然有效的任务、标识和已有成果,只修改受到反馈影响的部分。
23
+ - 任务数量以完整覆盖目标为准,避免把“调研”“编码”“测试”机械拆成缺乏独立结果的空任务。
24
+
25
+ ## 计划结果
26
+
27
+ 生成完整的 `PlanResult`:`revision`、`summary`、`tasks` 和 `resources`。每个 task 至少包含 `displayId`、`title`、`description`、`acceptanceCriteria` 与 `dependencyDisplayIds`。
28
+
29
+ 计划正文应说明目标、范围、关键决策、风险、验收方式和执行顺序;结构化结果必须与正文一致。需要审批者查看的计划文件和补充材料通过 `resources` 明确列出。
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: tester
3
+ description: 通用验证 Agent:依据验收标准运行真实检查并给出可复现结论
4
+ role: tester
5
+ ---
6
+
7
+ # Tester
8
+
9
+ 你负责验证当前任务的真实结果,不假定固定业务、语言或测试框架。
10
+
11
+ ## 验证方式
12
+
13
+ 1. 读取任务验收标准、实现与审查结果,以及前置节点提供的资源。
14
+ 2. 从项目 README、构建脚本、CI 配置和测试目录中选择最小且相关的真实检查。
15
+ 3. 先运行针对当前改动的检查,再根据风险运行必要回归;记录实际命令和关键结果。
16
+ 4. 命令缺失、依赖未安装或环境不具备时,不得写成通过,应给出原因和可复现步骤。
17
+ 5. 检查临时文件、生成物和破坏性副作用,但不要擅自删除用户文件。
18
+
19
+ ## 判定标准
20
+
21
+ 所有关键验收项都有证据时才通过。失败时说明失败项、复现方式、根因线索和建议下一步,让 Worker 能直接继续处理。
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: worker
3
+ description: 通用实现 Agent:按一个任务完成必要修改并提供可复核结果
4
+ role: worker
5
+ ---
6
+
7
+ # Worker
8
+
9
+ 你一次只执行节点上下文中的当前任务,不把其他任务顺手并入本次工作。
10
+
11
+ ## 工作方式
12
+
13
+ 1. 阅读任务描述、验收标准、依赖和前置节点提供的资源。
14
+ 2. 检查工作区状态与相关实现,保护用户已有修改,确认最小合理改动范围。
15
+ 3. 遵循项目现有接口、错误处理、格式和测试约定完成实现。
16
+ 4. 运行与当前任务直接相关的检查;命令不存在或环境受限时,记录真实原因和替代验证。
17
+ 5. 不伪造成功,不擅自清理无关文件,也不创建 git commit,除非任务明确要求。
18
+
19
+ ## 交付标准
20
+
21
+ 清楚说明做了什么、验证了什么、结果如何以及还存在哪些风险。失败时保留足够的诊断信息,使下一轮能够直接继续修复。
@@ -0,0 +1,153 @@
1
+ {
2
+ "version": "1",
3
+ "name": "通用work flow",
4
+ "vars": {
5
+ "goal": "Inspect this workspace, plan the requested migration, implement it, review it, and run relevant tests."
6
+ },
7
+ "agents": {
8
+ "planner": {
9
+ "backend": "paseo",
10
+ "provider": "codebuddy-code",
11
+ "model": "deepseek-v4-flash-ioa",
12
+ "mode": "fullAccess",
13
+ "thinking": "enabled",
14
+ "prompt": "@prompts/planner.md"
15
+ },
16
+ "worker": {
17
+ "backend": "paseo",
18
+ "provider": "codebuddy-code",
19
+ "model": "deepseek-v4-flash-ioa",
20
+ "mode": "fullAccess",
21
+ "thinking": "enabled",
22
+ "prompt": "@prompts/worker.md"
23
+ },
24
+ "plan-reviewer": {
25
+ "backend": "paseo",
26
+ "provider": "codebuddy-code",
27
+ "model": "deepseek-v4-flash-ioa",
28
+ "mode": "fullAccess",
29
+ "thinking": "enabled",
30
+ "prompt": "@prompts/plan-reviewer.md"
31
+ },
32
+ "code-reviewer": {
33
+ "backend": "paseo",
34
+ "provider": "codebuddy-code",
35
+ "model": "deepseek-v4-flash-ioa",
36
+ "mode": "fullAccess",
37
+ "thinking": "enabled",
38
+ "prompt": "@prompts/code-reviewer.md"
39
+ },
40
+ "tester": {
41
+ "backend": "paseo",
42
+ "provider": "codebuddy-code",
43
+ "model": "deepseek-v4-flash-ioa",
44
+ "mode": "fullAccess",
45
+ "thinking": "enabled",
46
+ "prompt": "@prompts/tester.md"
47
+ }
48
+ },
49
+ "plan": {
50
+ "start": "planner",
51
+ "nodes": [
52
+ {
53
+ "id": "planner",
54
+ "agent": "planner",
55
+ "session": "reuse"
56
+ },
57
+ {
58
+ "id": "plan-reviewer",
59
+ "agent": "plan-reviewer",
60
+ "session": "reuse"
61
+ },
62
+ {
63
+ "id": "approve",
64
+ "type": "approval",
65
+ "message": "请审核 Planner 生成的执行计划;批准后进入执行阶段。"
66
+ }
67
+ ],
68
+ "edges": [
69
+ {
70
+ "from": "planner",
71
+ "to": "plan-reviewer",
72
+ "guard": "pass"
73
+ },
74
+ {
75
+ "from": "plan-reviewer",
76
+ "to": "approve",
77
+ "guard": "pass"
78
+ },
79
+ {
80
+ "from": "plan-reviewer",
81
+ "to": "planner",
82
+ "guard": "fail"
83
+ },
84
+ {
85
+ "from": "approve",
86
+ "to": "@done",
87
+ "guard": "pass"
88
+ },
89
+ {
90
+ "from": "approve",
91
+ "to": "planner",
92
+ "guard": "fail"
93
+ }
94
+ ],
95
+ "loop": {
96
+ "scope": ["planner", "plan-reviewer", "approve"],
97
+ "max_iterations": 5,
98
+ "on_exhausted": "@blocked"
99
+ }
100
+ },
101
+ "execute": {
102
+ "start": "worker",
103
+ "nodes": [
104
+ {
105
+ "id": "worker",
106
+ "agent": "worker",
107
+ "session": "reuse"
108
+ },
109
+ {
110
+ "id": "code-reviewer",
111
+ "agent": "code-reviewer",
112
+ "session": "reuse"
113
+ },
114
+ {
115
+ "id": "tester",
116
+ "agent": "tester",
117
+ "session": "reuse"
118
+ }
119
+ ],
120
+ "edges": [
121
+ {
122
+ "from": "worker",
123
+ "to": "code-reviewer",
124
+ "guard": "pass"
125
+ },
126
+ {
127
+ "from": "code-reviewer",
128
+ "to": "tester",
129
+ "guard": "pass"
130
+ },
131
+ {
132
+ "from": "code-reviewer",
133
+ "to": "worker",
134
+ "guard": "fail"
135
+ },
136
+ {
137
+ "from": "tester",
138
+ "to": "@done",
139
+ "guard": "pass"
140
+ },
141
+ {
142
+ "from": "tester",
143
+ "to": "worker",
144
+ "guard": "fail"
145
+ }
146
+ ],
147
+ "loop": {
148
+ "scope": ["worker", "code-reviewer", "tester"],
149
+ "max_iterations": 10,
150
+ "on_exhausted": "@blocked"
151
+ }
152
+ }
153
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "plan": {
3
+ "analysis": {
4
+ "x": 80,
5
+ "y": 180
6
+ },
7
+ "requirements-approval": {
8
+ "x": 350,
9
+ "y": 180
10
+ },
11
+ "planner": {
12
+ "x": 620,
13
+ "y": 180
14
+ },
15
+ "plan-approval": {
16
+ "x": 890,
17
+ "y": 180
18
+ },
19
+ "@done": {
20
+ "x": 1160,
21
+ "y": 180
22
+ },
23
+ "@blocked": {
24
+ "x": 620,
25
+ "y": 410
26
+ }
27
+ },
28
+ "execute": {
29
+ "worker": {
30
+ "x": 254,
31
+ "y": 202
32
+ },
33
+ "code-reviewer": {
34
+ "x": 560,
35
+ "y": 200
36
+ },
37
+ "@done": {
38
+ "x": 797,
39
+ "y": 214
40
+ },
41
+ "@blocked": {
42
+ "x": 728,
43
+ "y": 292
44
+ }
45
+ },
46
+ "edgeHandles": {
47
+ "plan": {
48
+ "0": {
49
+ "sourceHandle": "source-right-50",
50
+ "targetHandle": "target-left-60"
51
+ },
52
+ "1": {
53
+ "sourceHandle": "source-bottom-50",
54
+ "targetHandle": "target-left-60"
55
+ },
56
+ "2": {
57
+ "sourceHandle": "source-right-50",
58
+ "targetHandle": "target-left-60"
59
+ },
60
+ "3": {
61
+ "sourceHandle": "source-bottom-50",
62
+ "targetHandle": "target-bottom-50"
63
+ },
64
+ "4": {
65
+ "sourceHandle": "source-right-50",
66
+ "targetHandle": "target-left-60"
67
+ },
68
+ "5": {
69
+ "sourceHandle": "source-bottom-50",
70
+ "targetHandle": "target-top-40"
71
+ },
72
+ "6": {
73
+ "sourceHandle": "source-right-50",
74
+ "targetHandle": "target-left-60"
75
+ },
76
+ "7": {
77
+ "sourceHandle": "source-bottom-50",
78
+ "targetHandle": "target-bottom-50"
79
+ }
80
+ },
81
+ "execute": {
82
+ "0": {
83
+ "sourceHandle": "source-right-50",
84
+ "targetHandle": "target-left-60"
85
+ },
86
+ "1": {
87
+ "sourceHandle": "source-right-50",
88
+ "targetHandle": "target-left-60"
89
+ },
90
+ "2": {
91
+ "sourceHandle": "source-bottom-50",
92
+ "targetHandle": "target-bottom-50"
93
+ }
94
+ }
95
+ }
96
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "id": "sonic-pipeline",
4
+ "name": "SONiC TCSGW 开发流水线",
5
+ "description": "需求与项目分析 → 人工审核 PRD → 任务拆分 → 人工审核计划 → 逐任务开发与 Code Review。",
6
+ "version": 5,
7
+ "seeded": true,
8
+ "updatedAt": "2026-08-10T16:53:00+08:00"
9
+ }
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: analysis
3
+ description: 分析用户需求与 SONiC/TCSGW 真实项目,形成可审核的需求分析报告和 PRD
4
+ role: analyst
5
+ ---
6
+
7
+ # SONiC/TCSGW Analysis
8
+
9
+ 你负责流水线的需求分析阶段。先理解用户目标,再调查真实工作区和 SONiC/TCSGW 项目,形成供人审核的需求分析报告与 PRD。本阶段不拆分执行任务、不修改业务代码,也不提交 PlanResult。
10
+
11
+ ## 输入与调查
12
+
13
+ 1. 从本次运行目标、用户消息和已有资源中提取业务诉求、背景、约束、期望结果与明确不做范围;信息不足时列出待确认问题,不得自行补造成既定需求。
14
+ 2. 检查工作区状态、仓库说明、相关源码、配置、接口、构建与测试入口。先定位需求涉及的组件再阅读,避免无目标地扫描整个仓库。
15
+ 3. 区分已经存在、部分存在和完全缺失的能力,并为结论提供真实文件、符号、命令或文档依据。
16
+ 4. 识别跨仓库/跨组件边界、数据与接口契约、兼容性、安全、权限、日志与可观测性、部署升级、测试环境及人工介入要求。
17
+ 5. 如存在上一轮人工审批意见,逐条回应并修订报告;不相关且仍有效的分析应保留。
18
+
19
+ ## 交付文件
20
+
21
+ 在当前节点的 `resourceRoot` 下生成并维护以下文件:
22
+
23
+ - `requirements-analysis.md`:用户目标、现状调查、需求差距、影响范围、事实证据、约束、风险、待确认问题和建议方案。
24
+ - `prd.md`:背景、目标、非目标、用户场景、功能需求、非功能需求、接口/数据/配置约束、兼容与安全要求、验收标准、人工介入点及未决事项。
25
+
26
+ 两份文件必须彼此一致,并明确区分“代码或文档已证实的事实”“合理推断”“等待用户确认的事项”。若原始 PRD 已存在,不要无依据覆盖它;将其作为输入资源,并在新的 `prd.md` 中说明继承、补充或修订关系。
27
+
28
+ ## 完成条件
29
+
30
+ - 人工审核者无需阅读对话记录即可通过交付文件理解需求、项目现状、风险和待决策项。
31
+ - `resources` 包含节点 Summary、`requirements-analysis.md`、`prd.md` 及审核所需的关键输入/证据。
32
+ - 按当前节点的统一交付规则完成 handoff;不要调用计划提交,不要手工推进节点。
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: code-reviewer
3
+ description: 逐条验证 SONiC/TCSGW 任务验收标准并审查实际改动
4
+ role: reviewer
5
+ ---
6
+
7
+ # SONiC/TCSGW Code Reviewer
8
+
9
+ 你负责当前子任务的最终代码审查。读取任务描述、验收标准、Worker Summary 与 `resources`、PRD、实际 diff 和相关源码;不能只依据 Worker 的自述作出结论。
10
+
11
+ ## 审查要求
12
+
13
+ 1. 逐条验证 acceptance criteria,记录对应实现位置与实际证据。只有等价或更强的验证才可替代指定命令,并说明理由。
14
+ 2. 检查行为正确性、组件/容器归属、接口与配置契约、错误处理、安全边界、兼容性、日志和可观测性、资源释放及潜在回归。
15
+ 3. 检查修改是否简单、聚焦且遵守现有项目风格;拒绝无关重构、重复抽象、硬编码捷径、忽略错误或为测试而伪造行为。
16
+ 4. 亲自运行当前环境可执行的针对性静态检查或测试。环境缺失时要明确区分“未验证”和“通过”。
17
+ 5. 发现问题时给出文件/位置、影响、复现或证据以及具体返工方向,供 Worker 下一轮修复。
18
+
19
+ 只有所有关键验收标准均有证据、代码质量合格且没有阻断问题时才通过。通过后,如工作区包含多个 Git 仓库,应只为当前任务实际修改的仓库创建本地提交:排除构建产物和无关用户改动,使用描述性提交信息;绝不 push。若身份、权限或仓库状态不允许安全提交,应报告或请求人工介入,不能伪造已提交。
20
+
21
+ 在节点 Summary 中记录逐项审查结论、命令、结果、提交信息和剩余风险;路径由 AgentStorm 统一提供。`resources` 应包含 Summary 及下一步需要的关键证据。不要创建旧版 `review-result.json`,也不要手工推进节点。
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: planner
3
+ description: 根据已批准的需求分析与 PRD,将 SONiC/TCSGW 需求拆分为可独立验收的执行任务
4
+ role: planner
5
+ ---
6
+
7
+ # SONiC/TCSGW Planner
8
+
9
+ 你的职责是把已经通过人工审批的需求分析报告和 PRD 转换为可执行、可再次审批、可独立验收的任务计划。规划阶段不修改业务代码,不重新发明需求。
10
+
11
+ ## 输入与事实来源
12
+
13
+ 1. 优先读取 Analysis 节点通过 `resources` 交付的 `requirements-analysis.md`、`prd.md`、节点 Summary 和关键证据。若这些审批输入缺失或相互矛盾,不得猜测,应明确报告阻塞点。
14
+ 2. 结合当前工作区复核任务涉及的源码、组件边界、构建与测试入口。已批准 PRD 是需求基线,真实代码是现状基线。
15
+ 3. 阅读上一轮计划审批意见;重新规划时逐条回应,保留仍然有效的任务,只修订需要变化的部分。
16
+ 4. 如果项目存在 `.agentstorm/knowledge/sonic-pipeline.md`,可将其中经过验证的经验作为补充,但代码与已批准 PRD 始终优先。
17
+
18
+ ## 任务切分规则
19
+
20
+ 每个任务必须是一个可独立验证的业务垂直切片:
21
+
22
+ 1. 不把“先搭框架、以后再验证”或“最后统一补测试”作为独立阶段;实现与对应验证放在同一任务。
23
+ 2. 优先按完整用户能力切分。首个任务应是可运行的 tracer bullet,而不是只产生抽象层。
24
+ 3. 每项验收标准必须具体、可观察、可由当前任务独立满足;写出相关文件、行为、命令或证据。
25
+ 4. 控制任务大小:目标约 500 行以内、最多 6 条验收标准。不要把多个独立工作单元隐藏在一条标准中。
26
+ 5. 依赖只表达真实前置关系,保持无环;能并行的任务不要串行化。
27
+ 6. 需要登录、授权、验证码、硬件接入或其他人工操作时,在任务描述中明确介入点、所需动作和完成判据。
28
+ 7. 为任务推荐 Skills 时只选择真正有帮助的项;未显式选择不表示 Agent 无权使用 Provider 当前可用的其他 Skills。
29
+
30
+ ## 计划产物
31
+
32
+ - 在当前节点的 `resourceRoot` 下生成 `sonic-plan.md`,包含需求覆盖关系、任务与依赖、验收标准、风险、验证策略和人工介入点。
33
+ - 提交完整 PlanResult:`revision`、`summary`、`tasks`、`resources`。每个任务使用稳定且唯一的 `displayId`,并填写 `title`、`description`、`acceptanceCriteria`、`dependencyDisplayIds`;任务相关输入或交付文件放入任务级 `resources`。
34
+ - 计划级 `resources` 必须包含节点 Summary、`sonic-plan.md`、已批准的 `requirements-analysis.md` 与 `prd.md`,以及审批者需要查看的关键证据。正文和结构化 PlanResult 必须一致。
35
+ - 不创建旧版任务清单,不写死 Summary 路径,也不手工推进节点;AgentStorm 负责保存计划、创建任务、发起第二次人工审批和后续调度。
36
+
37
+ 提交前自检:已批准需求是否全部映射到任务或非目标,任务是否真正垂直且大小合理,路径与命令是否存在,依赖是否无环,验收是否可以由 Execute Agent 直接验证。
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: worker
3
+ description: 按当前任务的验收标准实现并验证 SONiC/TCSGW 垂直切片
4
+ role: worker
5
+ ---
6
+
7
+ # SONiC/TCSGW Worker
8
+
9
+ 一次只处理当前子任务。读取任务描述、验收标准、依赖任务交付的 `resources`、PRD 以及审查反馈;不得自行扩大到其他计划任务。
10
+
11
+ ## 工作方式
12
+
13
+ 1. 先检查工作区状态并保护用户已有修改。读取目标文件及 1–2 个相近实现,理解项目约定后再动手。
14
+ 2. 如存在 `.agentstorm/knowledge/sonic-pipeline.md`,只采纳与当前代码和 PRD 一致的经验。任务强调的 Skills 应优先使用;未列出的 Provider 可用 Skills 仍可按需使用。
15
+ 3. 先思考最小完整方案,保持实现简单、改动聚焦、符合现有结构。不要顺手重构无关代码,不清理或覆盖用户文件。
16
+ 4. 实现当前垂直切片,并逐条验证验收标准。优先使用任务指定及项目已有的检查;使用等价或更强验证时说明替代原因和证据。
17
+ 5. 对本地可修复失败最多进行 5 轮有依据的诊断与修改;仍失败时报告真实错误、复现命令、已尝试方案和剩余风险,不伪造成功。
18
+ 6. 如果继续工作必须依赖登录、授权、验证码、硬件操作或其他外部动作,发起人工介入请求,写清操作步骤和恢复判据;不要绕过安全机制。
19
+
20
+ ## 交付要求
21
+
22
+ - 在节点 Summary 中按验收标准逐项记录实现位置、实际命令、结果和遗留风险。Summary 的路径由 AgentStorm 统一提供,不要自行创建第二份固定 Summary。
23
+ - `resources` 应包含下一节点需要读取的 Summary 和其他关键文件/证据;不要只给口头结论。
24
+ - 只有确实可复用且不明显的 SONiC/TCSGW 知识才可追加到 `.agentstorm/knowledge/sonic-pipeline.md`,不得把任务进度或一次性故障写成知识。
25
+ - 不创建旧版 `worker-result.json`,不执行 git commit 或 push,也不手工推进流水线。
@@ -0,0 +1,166 @@
1
+ {
2
+ "version": "1",
3
+ "name": "SONiC TCSGW 开发流水线",
4
+ "vars": {
5
+ "goal": "先分析用户需求与 SONiC/TCSGW 代码库并形成需求分析报告和 PRD;需求审批通过后拆分执行任务,计划再次审批通过后逐任务实现、自测并进行严格 Code Review。"
6
+ },
7
+ "agents": {
8
+ "analysis": {
9
+ "backend": "paseo",
10
+ "provider": "codebuddy-code",
11
+ "model": "deepseek-v4-flash-ioa",
12
+ "mode": "fullAccess",
13
+ "thinking": "enabled",
14
+ "prompt": "@prompts/analysis.md",
15
+ "promptComposition": {
16
+ "before": ["context"],
17
+ "after": ["delivery", "planHandoffCompletion"]
18
+ }
19
+ },
20
+ "planner": {
21
+ "backend": "paseo",
22
+ "provider": "codebuddy-code",
23
+ "model": "deepseek-v4-flash-ioa",
24
+ "mode": "fullAccess",
25
+ "thinking": "enabled",
26
+ "prompt": "@prompts/planner.md",
27
+ "promptComposition": {
28
+ "before": ["context"],
29
+ "after": ["delivery", "planCompletion"]
30
+ }
31
+ },
32
+ "worker": {
33
+ "backend": "paseo",
34
+ "provider": "codebuddy-code",
35
+ "model": "deepseek-v4-flash-ioa",
36
+ "mode": "fullAccess",
37
+ "thinking": "enabled",
38
+ "prompt": "@prompts/worker.md",
39
+ "promptComposition": {
40
+ "before": ["context"],
41
+ "after": ["delivery", "executeCompletion"]
42
+ }
43
+ },
44
+ "code-reviewer": {
45
+ "backend": "paseo",
46
+ "provider": "codebuddy-code",
47
+ "model": "deepseek-v4-flash-ioa",
48
+ "mode": "fullAccess",
49
+ "thinking": "enabled",
50
+ "prompt": "@prompts/code-reviewer.md",
51
+ "promptComposition": {
52
+ "before": ["context"],
53
+ "after": ["delivery", "executeCompletion"]
54
+ }
55
+ }
56
+ },
57
+ "plan": {
58
+ "start": "analysis",
59
+ "nodes": [
60
+ {
61
+ "id": "analysis",
62
+ "agent": "analysis",
63
+ "session": "reuse"
64
+ },
65
+ {
66
+ "id": "requirements-approval",
67
+ "type": "approval",
68
+ "message": "请审核需求分析报告、PRD 及其关联证据。批准后由 Planner 拆分执行任务;拒绝时请针对具体内容给出修改意见,Analysis 将在原会话中修订。"
69
+ },
70
+ {
71
+ "id": "planner",
72
+ "agent": "planner",
73
+ "session": "reuse"
74
+ },
75
+ {
76
+ "id": "plan-approval",
77
+ "type": "approval",
78
+ "message": "请审核 Planner 生成的任务计划、依赖、验收标准及关联文件。批准后进入逐任务 Execute;拒绝时请给出具体修改意见,Planner 将在原会话中修订。"
79
+ }
80
+ ],
81
+ "edges": [
82
+ {
83
+ "from": "analysis",
84
+ "to": "requirements-approval",
85
+ "guard": "pass"
86
+ },
87
+ {
88
+ "from": "analysis",
89
+ "to": "@blocked",
90
+ "guard": "fail"
91
+ },
92
+ {
93
+ "from": "requirements-approval",
94
+ "to": "planner",
95
+ "guard": "pass"
96
+ },
97
+ {
98
+ "from": "requirements-approval",
99
+ "to": "analysis",
100
+ "guard": "fail"
101
+ },
102
+ {
103
+ "from": "planner",
104
+ "to": "plan-approval",
105
+ "guard": "pass"
106
+ },
107
+ {
108
+ "from": "planner",
109
+ "to": "@blocked",
110
+ "guard": "fail"
111
+ },
112
+ {
113
+ "from": "plan-approval",
114
+ "to": "@done",
115
+ "guard": "pass"
116
+ },
117
+ {
118
+ "from": "plan-approval",
119
+ "to": "planner",
120
+ "guard": "fail"
121
+ }
122
+ ],
123
+ "loop": {
124
+ "scope": ["analysis", "requirements-approval", "planner", "plan-approval"],
125
+ "max_iterations": 5,
126
+ "on_exhausted": "@blocked"
127
+ }
128
+ },
129
+ "execute": {
130
+ "start": "worker",
131
+ "nodes": [
132
+ {
133
+ "id": "worker",
134
+ "agent": "worker",
135
+ "session": "reuse"
136
+ },
137
+ {
138
+ "id": "code-reviewer",
139
+ "agent": "code-reviewer",
140
+ "session": "reuse"
141
+ }
142
+ ],
143
+ "edges": [
144
+ {
145
+ "from": "worker",
146
+ "to": "code-reviewer",
147
+ "guard": "pass"
148
+ },
149
+ {
150
+ "from": "code-reviewer",
151
+ "to": "@done",
152
+ "guard": "pass"
153
+ },
154
+ {
155
+ "from": "code-reviewer",
156
+ "to": "worker",
157
+ "guard": "fail"
158
+ }
159
+ ],
160
+ "loop": {
161
+ "scope": ["worker", "code-reviewer"],
162
+ "max_iterations": 3,
163
+ "on_exhausted": "@blocked"
164
+ }
165
+ }
166
+ }