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{"质量门禁通过"}, }, } } }