Files
Agent-System/internal/squad/workspace_default_steps.go
WeiCHEN dca33c705d refactor(boundaries): split five oversized packages by use-case
Move bizdev/freedoc/intent/projectworkflow/squad giant files into
≤800-line use-case siblings without behavior change; short tests green.
2026-09-23 09:52:16 +08:00

335 lines
10 KiB
Go

package squad
import (
"strings"
"chat-agent-system/internal/workflowdef"
)
// DefaultWorkflowSteps 根据任务类型返回最佳实践编排步骤
func DefaultWorkflowSteps(taskKey string) []StepSpec {
if strings.HasPrefix(taskKey, "rd_") {
return rdevWorkflowSteps(taskKey, "")
}
taskKey = workflowdef.ImplementationTaskKey(taskKey)
switch taskKey {
case "intake":
return []StepSpec{
{
ID: "step_01_organize",
Role: "organizer",
Title: "抽取材料事实并回填字段",
SubWorkspace: "tasks/01_organize",
Mode: "execute",
Accept: []string{
"抽取材料中的客户身份与产品定义",
"回填 fields.json 结构化数据",
"向 blackboard 写入 facts 与 gaps",
},
},
{
ID: "step_02_draft",
Role: "writer",
Title: "撰写用户初始需求收集表初稿",
SubWorkspace: "tasks/02_draft",
Mode: "execute",
Needs: []string{"tasks/01_organize/output.md"},
Accept: []string{
"按 template.md 各章节严格四段式展开",
"正文翔实,各节须实质展开",
"文末集中附录字段快照与待确认清单",
},
},
{
ID: "step_03_review",
Role: "leader",
Title: "审核并定稿交付",
SubWorkspace: "tasks/03_review",
Mode: "execute",
Needs: []string{"tasks/02_draft/output.md"},
Accept: []string{
"核验全文逻辑一致性与出处标注",
"汇编待确认清单并给出下一步建议",
"交付终稿 output.md",
},
},
}
case "research":
return []StepSpec{
{
ID: "step_01_search",
Role: "searcher",
Title: "公开资料与标准检索",
SubWorkspace: "tasks/01_search",
Mode: "execute",
Parallel: true,
Accept: []string{
"检索纪要附带明确出处或未检索到说明",
"对本项目含义逐条阐述",
},
},
{
ID: "step_02_market",
Role: "market",
Title: "市场格局与竞品同维度对比",
SubWorkspace: "tasks/02_market",
Mode: "execute",
Parallel: true,
Accept: []string{
"多维度竞品对比表",
"机会与风险对称分析",
},
},
{
ID: "step_03_regulatory",
Role: "regulatory",
Title: "医疗器械法规与指导原则初筛",
SubWorkspace: "tasks/03_regulatory",
Mode: "execute",
Parallel: true,
Accept: []string{
"分类依据条目与建议类别",
"明确标注需向审评窗口确认",
},
},
{
ID: "step_04_plan",
Role: "writer",
Title: "撰写调研报告段落计划",
SubWorkspace: "tasks/04_plan",
Mode: "plan",
Needs: []string{
"tasks/01_search/output.md",
"tasks/02_market/output.md",
"tasks/03_regulatory/output.md",
},
Accept: []string{"各章节论点与引用规划"},
},
{
ID: "step_05_review_plan",
Role: "leader",
Title: "审核调研报告撰写计划",
SubWorkspace: "tasks/05_review_plan",
Mode: "review_plan",
Needs: []string{"tasks/04_plan/output_plan.md"},
Accept: []string{"出具审核意见 review_notes.md"},
},
{
ID: "step_06_draft",
Role: "writer",
Title: "按计划合成调研报告正文",
SubWorkspace: "tasks/06_draft",
Mode: "execute",
Needs: []string{
"tasks/04_plan/output_plan.md",
"tasks/05_review_plan/review_notes.md",
},
Accept: []string{"四段式完整正文,无省略套话"},
},
{
ID: "step_07_review",
Role: "leader",
Title: "终审并定稿",
SubWorkspace: "tasks/07_review",
Mode: "execute",
Needs: []string{"tasks/06_draft/output.md"},
Accept: []string{"质量把关并通过交付"},
},
}
case "feasibility_reg":
return []StepSpec{
{
ID: "step_01_regulatory",
Role: "regulatory",
Title: "分析法规分类与标准条款",
SubWorkspace: "tasks/01_regulatory",
Mode: "execute",
Accept: []string{
"研判医疗器械管理类别与分类依据",
"结合知识库 hits.md 梳理适用的强制与推荐标准",
"给出型式检验与主要检测项目清单",
},
},
{
ID: "step_02_draft",
Role: "writer",
Title: "撰写注册可行性评估报告初稿",
SubWorkspace: "tasks/02_draft",
Mode: "execute",
Needs: []string{"tasks/01_regulatory/output.md"},
Accept: []string{
"严格按 template.md 结构展开",
"必须显式标注引用标准与条款 CiteKey",
"文末附待确认清单与风险警示",
},
},
{
ID: "step_03_review",
Role: "leader",
Title: "审核定稿交付",
SubWorkspace: "tasks/03_review",
Mode: "execute",
Needs: []string{"tasks/02_draft/output.md"},
Accept: []string{
"核验法规条款引用的准确性与完整性",
"质量门禁达标交付",
},
},
}
case "system_reqs":
return []StepSpec{
{
ID: "step_01_organize",
Role: "organizer",
Title: "解析用户需求并抽取产品功能点",
SubWorkspace: "tasks/01_organize",
Mode: "execute",
Accept: []string{
"抽取用户需求或项目事实黑板中的关键需求条目",
"提取系统功能、非功能指标及环境约束",
"向 blackboard 写入 facts 与 gaps",
},
},
{
ID: "step_02_engineer",
Role: "engineer",
Title: "系统技术规格与性能指标分解",
SubWorkspace: "tasks/02_engineer",
Mode: "execute",
Needs: []string{"tasks/01_organize/output.md"},
Accept: []string{
"定义子系统性能、电气/软件/机械指标与参数",
"规范接口协议与环境要求",
},
},
{
ID: "step_03_regulatory",
Role: "regulatory",
Title: "医疗器械强标比对与合规性论证",
SubWorkspace: "tasks/03_regulatory",
Mode: "execute",
Needs: []string{"tasks/01_organize/output.md"},
Accept: []string{
"审查适用医疗器械强制性标准及条款要求",
"输出安全、可靠性与合规性约束条目",
},
},
{
ID: "step_04_draft",
Role: "writer",
Title: "编制系统需求规格书全文",
SubWorkspace: "tasks/04_draft",
Mode: "execute",
Needs: []string{
"tasks/01_organize/output.md",
"tasks/02_engineer/output.md",
"tasks/03_regulatory/output.md",
},
Accept: []string{
"按 template.md 结构展开,包含系统需求清单与接口要求",
"每条系统需求必须具备明确唯一的 REQ- 编号与验证方式",
"禁止敷衍套话与未替换占位符",
},
},
{
ID: "step_05_review",
Role: "leader",
Title: "终审需求可测性与可追溯性定稿",
SubWorkspace: "tasks/05_review",
Mode: "execute",
Needs: []string{"tasks/04_draft/output.md"},
Accept: []string{
"全面核查需求条目可验证性与无歧义性",
"核查追溯关系完整性并交付终稿",
},
},
}
case "test_manager":
return []StepSpec{
{
ID: "step_01_trace",
Role: "organizer",
Title: "解析上游系统需求并锁定全量追溯矩阵",
SubWorkspace: "tasks/01_trace",
Mode: "execute",
Accept: []string{
"全量读取上游系统需求规格书的所有 REQ- 编号条目",
"建立 100% 覆盖的测试需求追溯矩阵底表",
},
},
{
ID: "step_02_cases",
Role: "engineer",
Title: "设计系统测试用例与判定准则",
SubWorkspace: "tasks/02_cases",
Mode: "execute",
Needs: []string{"tasks/01_trace/output.md"},
Accept: []string{
"为每条需求设计至少一个具备明确合格判定准则的测试用例 TC-",
"导出 test_cases.json 结构化用例清单至 artifacts/",
},
},
{
ID: "step_03_regulatory",
Role: "regulatory",
Title: "检验规程与检测环境合规审查",
SubWorkspace: "tasks/03_regulatory",
Mode: "execute",
Needs: []string{"tasks/02_cases/output.md"},
Accept: []string{
"核验测试方法与引用的医疗器械检验标准条款一致性",
"审查仪器设备与测试环境要求",
},
},
{
ID: "step_04_draft",
Role: "writer",
Title: "编制系统验证方案及计划全文",
SubWorkspace: "tasks/04_draft",
Mode: "execute",
Needs: []string{
"tasks/01_trace/output.md",
"tasks/02_cases/output.md",
"tasks/03_regulatory/output.md",
},
Accept: []string{
"严格按 tm_system_verification.md 模板生成正式方案文本",
"嵌入测试用例清单与覆盖率统计,严禁遗漏上游需求",
},
},
{
ID: "step_05_review",
Role: "leader",
Title: "全覆盖门禁终审与定稿交付",
SubWorkspace: "tasks/05_review",
Mode: "execute",
Needs: []string{"tasks/04_draft/output.md"},
Accept: []string{
"验证需求覆盖率达到 100%",
"签署验证结论并交付",
},
},
}
default:
return []StepSpec{
{
ID: "step_01_draft",
Role: "writer",
Title: "撰写初稿",
SubWorkspace: "tasks/01_draft",
Mode: "execute",
Accept: []string{"按模板四段式展开"},
},
{
ID: "step_02_review",
Role: "leader",
Title: "审核定稿",
SubWorkspace: "tasks/02_review",
Mode: "execute",
Needs: []string{"tasks/01_draft/output.md"},
Accept: []string{"质量门禁通过"},
},
}
}
}