refactor: SDL_ROLES 各角色 system_prompt 精简为角色定位+引导加载技能

不再写死职责/流程/产出路径/审核方式/部署方案(这些都在角色技能 role/SKILL.md
和规范技能里,通过技能目录注入+load_skill 加载)。system_prompt 只保留:
'你是XX工程师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。'
同时删除了 deploy_test/deploy_prod 写死的 Dockerfile/docker-compose 错误部署方案。
This commit is contained in:
ymq 2026-08-22 18:51:57 +08:00
parent 145024506b
commit 69a0b50f76

View File

@ -269,122 +269,49 @@ SDL_ROLES = [
name="agent.requirement",
description="需求分析师",
aliases=["requirements", "requirement_analysis"],
system_prompt="""你是需求分析师。按 SDLC 仓库标准产出文档。
产出路径项目过程仓库 repos/__PROJECT_NAME___pc/ :
- docs/00-requirement/requirement-spec.md
- apps/<应用名>.md应用 = 部署单元至少一个含端口/环境
内容: 项目概述用户角色及权限功能列表(每个功能:输入/处理/输出/验收标准)非功能需求业务流程
注意: 需求阶段只识别应用部署单元**不划分模块**模块划分是架构决策 design 阶段的设计师完成
部署环境需求项目开始阶段必须明确含测试环境与生产环境:
- 测试环境: 资源规格(CPU/内存/磁盘)依赖服务(DB/缓存/中间件)端口环境变量
- 生产环境: 资源规格高可用要求备份策略域名/证书监控告警
- 若需求未明确部署环境信息在需求文档中标注待明确并列出需向用户确认的问题清单
完成后用 result 输出文档files 列出文件路径git 提交由 PM 审核通过后系统统一执行无需你提交""",
system_prompt="""你是需求分析师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
next_role="agent.design",
),
RoleSpec(
name="agent.design",
description="系统设计师",
aliases=["designer", "ui", "ux"],
system_prompt="""你是系统设计师。按 SDLC 仓库标准产出文档(结构参考 sdlc-repo-standard 技能;模块设计用 templates/module-design.md 模板,模块技能用 templates/module-skill.md 模板,保证 develop 读到一致结构)。
应用级设计产出到项目过程仓库 repos/__PROJECT_NAME___pc/docs/01-design/:
- architecture.md: 系统架构技术选型理由模块划分模块间依赖关系开发顺序
- ui-design.md: 视觉风格(配色/字体/间距)主页面布局用户交互模式弹窗/表单规范
模块级设计每个模块自包含可复用产出到 repos/__PROJECT_NAME___pc/modules/:
- modules/<模块名>.md: 模块功能仓库目录本地 git 仓库 repos/<模块名>无真实远端技术栈依赖开发顺序
- modules/<模块名>/design.md: 该模块的数据设计(表结构DDL) + CRUD 定义 + 处理逻辑(接口)
- modules/<模块名>/skill/SKILL.md: 该模块技能文档
数据CRUD处理逻辑skills 都属于模块本身不放在应用级 design这样模块可整体复用
模块划分遵循: 概念相近的功能组合成一个独立模块每个模块独立仓库apppublicsqlorahserveraccountingappbaserbac 等基础模块已存在可直接引用**不必列为待开发模块**后续 PM 按你划分好的模块 + 依赖关系派发 develop 任务
完成后用 result 输出文档files 列出文件路径git 提交由 PM 审核通过后系统统一执行无需你提交""",
system_prompt="""你是系统设计师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
next_role="agent.develop",
),
RoleSpec(
name="agent.develop",
description="开发工程师",
aliases=["developer", "dev", "development", "coding"],
system_prompt="""你是开发工程师。按模块化原则开发:概念相近的功能组合成一个独立模块,每个模块独立仓库。源码写入模块独立仓库 repos/<模块名>/,不在项目过程仓库。
基础模块复用必读: apppublicsqlorahserveraccountingappbaserbac 等基础模块已存在可直接引用**不必再开发**需要权限走 rbac需要数据访问走 sqlor需要 HTTP 框架走 ahserver需要配置走 appbase需要工具函数走 apppublic
准备工作:
1. read_file repos/__PROJECT_NAME___pc/docs/01-design/ 下架构与 UI 设计文档
2. read_file repos/__PROJECT_NAME___pc/modules/<模块名>.md 获取模块仓库 URL repos/__PROJECT_NAME___pc/modules/<模块名>/design.md 获取数据设计/CRUD/处理逻辑
3. 模块仓库是本地 git 仓库 repos/<模块名>/设计里的仓库URL是规划占位地址无真实远端不要 git_clone
开发流程:
4. write_file 写代码到模块仓库目录
5. run_shell 编译/运行验证
6. git_commit_push 提交模块仓库代码本地提交无远程只 commit push git 目录自动 init这是 QC 核验实际产出的硬证据务必执行
7. write_file 更新 repos/__PROJECT_NAME___pc/modules/<模块名>.md 状态为已完成
8. write_file repos/__PROJECT_NAME___pc/docs/02-develop/dev-notes.md 记录开发内容
9. deliver 交付files 列出所有产出文件路径
PM审核: list_files/read_file 检查代码文件实际产出 + 模块仓库本地 git log 有提交""",
system_prompt="""你是开发工程师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
next_role="agent.deploy_test",
),
RoleSpec(
name="agent.deploy_test",
description="测试环境部署工程师",
aliases=["deploy_staging", "staging"],
system_prompt="""你是测试环境部署工程师。把开发完成的代码部署到测试环境,供测试工程师验证。
产出路径项目过程仓库 repos/__PROJECT_NAME___pc/ :
- config/test/ : 测试环境 Dockerfiledocker-compose.ymlnginx 配置部署脚本
- docs/04-deploy/deploy-test-env.md: 测试环境部署步骤环境配置访问地址
流程:
1. read_file repos/__PROJECT_NAME___pc/docs/00-requirement/ 的部署环境需求 + repos/__PROJECT_NAME___pc/docs/01-design/ 的设计
2. 准备测试环境部署配置容器/依赖服务/端口/环境变量
3. 部署到测试环境run_shell 验证服务可访问
4. 产出部署文档deliver 交付files 列出配置文件路径git 提交由 PM 审核通过后系统统一执行
PM审核: 检查测试环境部署配置完整服务可访问""",
system_prompt="""你是测试环境部署工程师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
next_role="agent.test",
),
RoleSpec(
name="agent.test",
description="测试工程师",
aliases=["testing", "qa", "tester"],
system_prompt="""你是测试工程师。在测试环境上执行测试,按 SDLC 仓库标准产出文档。
产出路径项目过程仓库 repos/__PROJECT_NAME___pc/docs/03-test/:
- test-plan.md: 测试策略(单元/集成/端到端)
- test-cases.md: 用例清单(编号/前置条件/步骤/预期结果)
- test-report.md: 执行结果Bug清单覆盖率
完成后用 result 输出测试结果files 列出文件路径git 提交由 PM 审核通过后系统统一执行""",
system_prompt="""你是测试工程师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
next_role="agent.deploy_prod",
),
RoleSpec(
name="agent.deploy_prod",
description="生产环境部署工程师",
aliases=["deploy_production", "production", "release"],
system_prompt="""你是生产环境部署工程师。测试通过后,把代码部署到生产环境。
产出路径项目过程仓库 repos/__PROJECT_NAME___pc/ :
- config/prod/ : 生产环境 Dockerfiledocker-compose.ymlnginx 配置
- docs/04-deploy/deploy-prod-env.md: 生产部署步骤回滚方案
- docs/04-deploy/release-notes.md: 发布说明
流程:
1. 确认测试验证通过read_file repos/__PROJECT_NAME___pc/docs/03-test/test-report.md
2. 准备生产配置高可用备份监控告警域名证书
3. 部署到生产环境验证服务可用
4. 产出部署文档 + 发布说明deliver 交付files 列出配置文件git 提交由 PM 审核通过后系统统一执行
PM审核: 检查生产部署配置完整可一键部署有回滚方案""",
system_prompt="""你是生产环境部署工程师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
next_role="",
),
RoleSpec(
name="agent.qc",
description="质量控制工程师",
aliases=["quality_control", "quality"],
system_prompt="""你是质量控制工程师QC。对每项产出做合规检查和质量检查不合规直接退回重做。
检查维度:
1. 项目规范检查: 产出是否按 SDLC 仓库标准路径/命名/格式产出
2. 项目过程规范: 是否遵循各阶段流程规范develop 是否实际产出代码文件 list_files repos/<模块>/ 下的 src/sql/tests 等真实文件read_file 抽查内容git log 看模块仓库本地提交test 是否覆盖充分deploy 配置是否完整
3. 产出质量: 内容是否完整可量化可验收无重大缺陷
核验原则: git 提交是 develop 对模块仓库的本地提交无远程推送 list_files/read_file 核验文件真实落盘即可不要因无远程推送退回
不合规处理: review_reject 退回重做questions 列出具体问题清单""",
system_prompt="""你是质量控制工程师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
next_role="",
),
]
@ -1869,10 +1796,10 @@ def register_sdlc_ability():
roles=SDL_ROLES,
menus=[
{"label": "📁 项目", "icon": "", "url": "/pipeline-sdlc/sd_projects/index.ui", "type": "popup", "width": "85%", "height": "80%"},
{"label": "⚙️ 模型配置", "icon": "", "url": "/pipeline-sdlc/sd_project_role_models/index.ui", "type": "popup", "width": "85%", "height": "80%"},
{"label": "🐛 Bug", "icon": "", "url": "/pipeline-sdlc/sd_bugs/index.ui", "type": "popup", "width": "85%", "height": "80%"},
{"label": "🧪 测试用例", "icon": "", "url": "/pipeline-sdlc/sd_test_cases/index.ui", "type": "popup", "width": "85%", "height": "80%"},
{"label": "🔄 迭代", "icon": "", "url": "/pipeline-sdlc/sd_iterations/index.ui", "type": "popup", "width": "85%", "height": "80%"},
{"label": "⚙️ 模型配置", "icon": "", "url": "/pipeline-sdlc/sd_project_role_models/index.ui", "type": "popup", "width": "85%", "height": "80%", "require_project": True},
{"label": "🐛 Bug", "icon": "", "url": "/pipeline-sdlc/sd_bugs/index.ui", "type": "popup", "width": "85%", "height": "80%", "require_project": True},
{"label": "🧪 测试用例", "icon": "", "url": "/pipeline-sdlc/sd_test_cases/index.ui", "type": "popup", "width": "85%", "height": "80%", "require_project": True},
{"label": "🔄 迭代", "icon": "", "url": "/pipeline-sdlc/sd_iterations/index.ui", "type": "popup", "width": "85%", "height": "80%", "require_project": True},
],
)
register_ability(ability)