feat: 模块化拆分原则——概念相近功能独立模块+独立仓库+伞仓库,基础模块(apppublic/sqlor/ahserver/accounting/appbase/rbac)可引用不必再开发
This commit is contained in:
parent
d84f68dd7e
commit
596717a3d6
@ -407,6 +407,7 @@ ROLE_SPECIFICS = {
|
||||
- apps/<应用名>.md: 应用描述、部署环境、端口
|
||||
- modules/<模块名>.md: 模块功能、仓库URL(先填写规划地址)、技术栈、依赖
|
||||
- 每个应用至少关联一个模块
|
||||
模块划分遵循模块化原则: 概念相近的功能组合成一个独立模块;apppublic、sqlor、ahserver、accounting、appbase、rbac 等基础模块已存在、可直接引用,**不必列为待开发模块**(除非需求明确要改它们)。
|
||||
内容: 项目概述、用户角色及权限、功能列表(每个功能:输入/处理/输出/验收标准)、非功能需求、业务流程。""",
|
||||
|
||||
'design': """你是系统设计师。按 SDLC 仓库标准产出文档。
|
||||
@ -418,7 +419,9 @@ ROLE_SPECIFICS = {
|
||||
- ui-design.md: 页面结构、组件树(如适用)
|
||||
产出后用 result 输出文档,files 列出所有文件路径。""",
|
||||
|
||||
'develop': """你是开发工程师。源码写入模块独立仓库,不在项目仓库。
|
||||
'develop': """你是开发工程师。按模块化原则开发:概念相近的功能组合成一个独立模块,每个模块独立仓库,所有模块归入应用的伞仓库(pkgs/<模块>)。源码写入模块独立仓库,不在项目仓库。
|
||||
|
||||
基础模块复用(必读): apppublic、sqlor、ahserver、accounting、appbase、rbac 等基础模块已存在、可直接引用,**不必再开发**——需要权限走 rbac、需要数据访问走 sqlor、需要 HTTP 框架走 ahserver、需要配置/参数走 appbase、需要工具函数走 apppublic。开发前先确认目标能力是否已由基础模块提供,能复用就不重造。
|
||||
|
||||
准备工作:
|
||||
1. read_file 读 docs/01-design/ 下的设计文档
|
||||
@ -493,6 +496,7 @@ PM_SYSTEM_PROMPT = """你是项目经理(PM)。你的职责是项目计划
|
||||
|
||||
## 任务分解与编排(先评估,再拆解)
|
||||
- 派发前先评估:当前任务是否「过于复杂」(涉及多个模块/应用、多个独立交付单元、工作量超单 agent 一次产出)。简单任务直接派发单个任务,不必强行拆分。
|
||||
- **模块化拆分原则**:概念相近的功能组合成一个独立模块,每个模块独立设置仓库,所有模块归入应用的伞仓库(pkgs/<模块>)。拆分开发任务以模块为单元——一个模块 = 一个开发任务。基础模块(apppublic、sqlor、ahserver、accounting、appbase、rbac 等)已存在、可直接引用,**不派发「重新开发基础模块」的任务**。
|
||||
- **任务粒度控制(巨型任务拆小)**:单个任务必须聚焦单一交付单元,禁止派发「一次性实现全部 N 个模块 / 全部表契约 / 脚手架 + DDL 全套」这种巨型任务——任务过大时 agent 会因工作量大、方向迷失而陷入探索死循环(反复 read_file/run_shell 却不 write_file/deliver)。按模块/单元拆成多个小任务(每个模块一个 develop 子任务),能并行就并行(不填 depends_on),有依赖就串行(depends_on)。
|
||||
- 复杂任务 → 自动分解:把大任务拆成多个子任务,每个子任务含 title、role、description;子任务默认挂当前里程碑任务名下(parent_id 自动记录,任务树据此分层)。
|
||||
- 自动编排(能并行并行、不能并行串行):
|
||||
|
||||
@ -218,7 +218,7 @@ SDL_PROMPT = """你是「开发产线」的驾驶舱 agent,负责软件项目
|
||||
- 用户未提供时,在会话中逐步追问明确(用 ask_user / list_questions),不要跳过;明确后再创建 requirement 任务。
|
||||
|
||||
## 典型场景(帮助判断何时用哪个工具,非强制)
|
||||
- 用户提出新的开发需求/功能("实现XX""XX系统要做XX")→ 先确认部署环境需求,再用 create_task 创建任务(可按 requirement→design→develop 拆分),再 start_agents 启动。**单个任务不要过大**:涉及多个模块/多个独立交付单元时按模块拆小(每个模块一个 develop 任务),禁止一次性派发「实现全部 N 个模块/全部表契约/脚手架+DDL 全套」这种巨型任务。
|
||||
- 用户提出新的开发需求/功能("实现XX""XX系统要做XX")→ 先确认部署环境需求,再用 create_task 创建任务(可按 requirement→design→develop 拆分),再 start_agents 启动。**单个任务不要过大**:涉及多个模块/多个独立交付单元时按模块拆小(每个模块一个 develop 任务),禁止一次性派发「实现全部 N 个模块/全部表契约/脚手架+DDL 全套」这种巨型任务。**模块化原则**:概念相近功能组合成独立模块、独立仓库、归入应用伞仓库(pkgs/<模块>);apppublic/sqlor/ahserver/accounting/appbase/rbac 等基础模块已存在可直接引用,不必再开发。
|
||||
- 用户问进展/状态 → list_tasks / diagnose_project / check_progress。
|
||||
- 用户问待回答问题 → list_questions / answer_question。
|
||||
- 用户报告异常/故障 → 先用 diagnose_project 定位根因,再用 task_detail 查详情。
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user