diff --git a/skills_library/pipelines/sdlc_general/common/task/SKILL.md b/skills_library/pipelines/sdlc_general/common/task/SKILL.md index 9734015..df8cb3f 100644 --- a/skills_library/pipelines/sdlc_general/common/task/SKILL.md +++ b/skills_library/pipelines/sdlc_general/common/task/SKILL.md @@ -88,11 +88,12 @@ submitted ──claim──▶ running ──submit──▶ review ──approv PM 派发任务时先评估复杂度,复杂任务自动分解并编排执行顺序(能并行并行、不能并行串行),同时记录父子关系。 1. **先评估**:判断当前任务是否「过于复杂」(涉及多个模块/应用、多个独立交付单元、工作量超单 agent 一次产出)。简单任务直接派发单个任务,不强行拆分。 -2. **自动分解**:复杂任务 → 拆成多个子任务,每个子任务含 title、role、description;用 `create_tasks` 一次批量派发。子任务默认挂当前里程碑任务名下(`parent_id` 由系统自动记录),任务树(/task)据此分层显示。 -3. **自动编排**: +2. **任务粒度控制(巨型任务拆小)**:单个任务必须聚焦单一交付单元,禁止派发「一次性实现全部 N 个模块 / 全部表契约 / 脚手架 + DDL 全套」这种巨型任务——任务过大时 agent 会因工作量大、方向迷失而陷入探索死循环(反复 read_file/run_shell 却不 write_file/deliver,30 轮耗尽无产出)。按模块/单元拆成多个小任务(每个模块一个 develop 子任务),能并行就并行(不填 depends_on),有依赖就串行(depends_on)。 +3. **自动分解**:复杂任务 → 拆成多个子任务,每个子任务含 title、role、description;用 `create_tasks` 一次批量派发。子任务默认挂当前里程碑任务名下(`parent_id` 由系统自动记录),任务树(/task)据此分层显示。 +4. **自动编排**: - **并行**:无依赖的子任务不填 `depends_on`,系统同时认领执行(如多个模块的 develop 任务)。 - **串行**:有先后依赖的子任务,用 `key` 给子任务标记,`depends_on` 引用前序 `key`(或前序任务ID)。依赖完成(completed/approved)前子任务保持 submitted 不会被认领,自动串行。 -4. **父子关系**:`parent_id` 指向父任务(默认 = 本次审核的里程碑任务),任务树按 项目 → 迭代 → 阶段 → 父任务 → 子任务 分层。子任务完成不影响父任务状态;父任务(里程碑)走自身状态机,子任务是并行/串行的执行单元。 +5. **父子关系**:`parent_id` 指向父任务(默认 = 本次审核的里程碑任务),任务树按 项目 → 迭代 → 阶段 → 父任务 → 子任务 分层。子任务完成不影响父任务状态;父任务(里程碑)走自身状态机,子任务是并行/串行的执行单元。 > `create_tasks` 每项字段:`{title, role, description, key?, depends_on?, parent_id?}`。`key` 是同批任务间 `depends_on` 互引的短标识;`depends_on` 是前序 key 或任务ID 数组;`parent_id` 缺省 = 本次审核任务。