feat(skills): 新增 task skill(SDLC 状态机规范) + team-communication skill 角色规范化

- task skill: 任务状态/合法流转/角色→操作权限(业务级RBAC)/门禁/人拍板点,配套 task 能力工具
- team-communication: 角色统一规范名 agent.{role}(agent角色) + {orgtype}.{role}(人角色),
  SDLC 默认人角色=owner.superuser,新增 approval 问题类型(human gate)
This commit is contained in:
yumoqing 2026-08-16 23:46:35 +08:00
parent d30fa89b51
commit 5f754a8f61
2 changed files with 105 additions and 32 deletions

View File

@ -0,0 +1,79 @@
---
name: task
description: 任务状态机规范——定义任务状态、合法流转、角色→操作权限、门禁、人拍板点。agent 处理任务时据此操作LLM 读本 skill 判断流转合法性。产线默认 SDLC 状态机,项目可同名覆盖。触发:认领/提交/审核/退回/完成/重试任务。
---
# 任务状态机规范
本 skill 是**规范**(任务状态 + 流转规则 + 角色权限)。任务操作由系统固化的 **task 能力**(工具)执行,
本 skill 描述这些工具该怎么用、什么时候能用。
## 一、核心模型
- 任务 = 一个概念的实例,沿状态机流转。
- **状态存表**pipeline_tasks.state**流转规则在本 skill**LLM 读后判断合法性)。
- 工具只做 CAS 原子迁移(`WHERE state=from`**不校验合法性**——合法性由你读本 skill 判断。
- 每次迁移自动写审计audit_logappend-only
## 二、任务状态SDLC 默认)
| 状态 | 语义 |
|---|---|
| submitted | 待认领(新任务 / 被退回后重新认领) |
| running | 角色 agent 执行中 |
| review | 已提交产出,待审核 |
| approved | 审核通过 |
| completed | 全流程完成 |
| waiting | 挂起等回答(提问未答复) |
| failed | 失败 |
## 三、合法流转图
```
submitted ──claim──▶ running ──submit──▶ review ──approve──▶ approved ──complete──▶ completed
▲ │ │ (最后一角色)
│ │ suspend │ reject
│ ▼ ▼
│ waiting ──revive──▶ submitted
│ ▲
└──retry────────── failed ◀──(任意状态执行失败)── running
```
明确规则:
- `claim`submitted → running仅认领自己角色的任务claimed_by 原子,防并发)。
- `submit`running → review产出交付件后提交。
- `approve`review → approved仅审核角色
- `reject`review → submitted附退回意见被退角色重新认领响应。
- `complete`approved → completed最后一个角色完成后
- `suspend`/`revive`:提问挂起 / 回答后恢复认领。
- `fail`/`retry`:执行失败 / 重试。
## 四、角色 → 操作权限(业务级 RBAC
| 角色 | 可执行操作 |
|---|---|
| agent.requirement / agent.design / agent.develop / agent.test / agent.deploy | claim、submit |
| agent.pm | approve、reject、complete |
| agent.main_agent | 问题路由、答复(见 team-communication |
| owner.superuserRBAC orgtype.role | 最终确认、审批兜底 |
## 五、门禁
- review 通过:交付件满足需求规格。
- review 退回:附意见,任务回 submitted被退角色重新认领。
- 最后一角色agent.deployapprove 后 complete。
## 六、人拍板点human gate
需要人审批/确认时,**不直接改状态**,而是走问题冒泡到 `owner.superuser`(见 team-communication skill
problem_type 用 approval/confirm。人答复后由 agent 再执行状态迁移。
## 七、配套能力task 能力工具)
`claim_task` / `submit_task` / `approve_task` / `reject_task` / `complete_task` /
`mark_failed` / `retry_task` / `suspend_task` / `revive_task` / `set_task_state`(通用 CAS 兜底)。
## 八、分层覆盖
本 skill 是产线默认SDLC 状态机);项目可放**同名 task skill** 覆盖:简化/扩展状态机、改角色权限。
加载顺序:项目级 → 产线级 → 全局兜底。

View File

@ -1,6 +1,6 @@
---
name: team-communication
description: 团队沟通规范问题冒泡——定义团队角色、问题类型、冒泡路径agent 有问题时据此处理(提问题/找自己要处理的/回答/转交)。产线定义默认规范,项目可同名 skill 覆盖。触发agent 发现问题、角色缺信息、PM 退回、故障上报、客户提问、待处理问题>0。
description: 团队沟通规范问题冒泡——定义团队角色、问题类型、冒泡路径agent 有问题时据此处理(提问题/找自己要处理的/回答/转交)。角色用规范名agent 角色 agent.{role},人角色 {orgtype}.{role}。产线默认规范项目可同名覆盖。触发agent 发现问题、角色缺信息、PM 退回、故障上报、客户提问、待处理问题>0。
---
# 团队沟通(问题冒泡)规范
@ -8,34 +8,33 @@ description: 团队沟通规范(问题冒泡)——定义团队角色、问
本 skill 是**规范**(团队结构 + 问题类型 + 冒泡路径)。问题操作的工具由系统固化,
agent 读本 skill 理解规范后,用工具执行。
## 一、核心模型
## 一、角色命名规范(重要)
- **团队** = 一组不同角色的 agent + 人。多 agent 存在:同一角色可有多个 agent
处理方必须精确到 `角色 + agentid`agentid 空 = 该角色任意 agent
- **问题类型** = 一种问题 + 一条冒泡路径(处理方序列)。
- **冒泡规则**问题产生后从路径第一个处理方开始处理方解决了→停answered
没解决→沿路径转给下一个处理方;路径尽头通常是「人」兜底。
- **agent 角色**统一前缀 `agent.``agent.{role}`,如 `agent.main_agent``agent.pm``agent.develop`
- **人角色**用 RBAC 的 `{orgtype}.{role}` 模式:如 `owner.superuser``org.admin`
- 处理方 = 角色名 + agentid多 agent 同角色须精确到 agentidagentid 空 = 该角色任意 agent
## 二、团队角色(产线默认)
## 二、团队角色SDLC 默认)
| 角色 | 类型 | 职责 |
|---|---|---|
| main_agent | agent | 用户面对话 agent回答问题、路由到客户 |
| pm | agent | 项目经理,审核交付件、退回意见 |
| requirement | agent | 需求分析师 |
| design | agent | 系统设计师 |
| develop | agent | 开发工程师 |
| test | agent | 测试工程师 |
| deploy | agent | 部署运维 |
| customer | human | 人类客户,最终兜底 |
| agent.main_agent | agent | 用户面对话 agent回答问题、路由到 |
| agent.pm | agent | 项目经理,审核交付件、退回意见 |
| agent.requirement | agent | 需求分析师 |
| agent.design | agent | 系统设计师 |
| agent.develop | agent | 开发工程师 |
| agent.test | agent | 测试工程师 |
| agent.deploy | agent | 部署运维 |
| owner.superuser | 人 | 客户/业主,最终兜底审批 |
## 三、问题类型与冒泡路径(产线默认)
## 三、问题类型与冒泡路径(SDLC 默认)
| 问题类型 | 冒泡路径 | 说明 |
|---|---|---|
| need_info | main_agent → customer | 角色缺信息向上提问,主 agent 答 / 转客户 |
| review_reject | 被退角色 → pm | PM 退回,被退角色响应后复审 |
| fault_report | main_agent → customer | 任务失败报障,主 agent / 客户人工介入 |
| need_info | agent.main_agent → owner.superuser | 角色缺信息向上提问 |
| review_reject | 被退角色 → agent.pm | PM 退回,被退角色响应后复审 |
| fault_report | agent.main_agent → owner.superuser | 任务失败报障,人兜底 |
| approval | agent.main_agent → owner.superuser | 需人审批/确认human gate |
冒泡路径是**规范**,由 agent 读后决策「下一个转给谁」,系统不把路径存进数据。
@ -43,31 +42,26 @@ agent 读本 skill 理解规范后,用工具执行。
| 工具 | 作用 |
|---|---|
| raise_problem(problem_type, question, first_handler_role, first_handler_agentid) | 提问题,显式指定首处理方 |
| raise_problem(problem_type, question, from_role, first_handler_role, first_handler_agentid) | 提问题,显式指定首处理方 |
| list_problems_for(role, agentid) | 查「当前该我处理」的问题(确定性过滤) |
| resolve_problem(question_id, answer) | 解决 → 停止冒泡 |
| escalate_problem(question_id, next_handler_role, next_handler_agentid) | 没解决 → 显式转给下一个处理方 |
cockpit 侧包装:`list_questions`(查待我处理的)、`answer_question`(回答)、
`escalate_question`(转给客户)。
cockpit 侧包装:`list_questions`(查待我处理)、`answer_question`(回答)、`escalate_question`(转给人)。
## 五、处理流程agent 侧)
1. 我发现问题 → `raise_problem`,按问题类型 + 冒泡路径指定首处理方。
2. 我可能被指派处理问题 → `list_problems_for(我的角色, 我的 agentid)` 查待办,
不要只报统计数字,逐条读。
1. 我发现问题 → `raise_problem`,按问题类型 + 冒泡路径指定首处理方(规范名)。
2. 我可能被指派处理 → `list_problems_for(我的角色名, 我的 agentid)` 查待办,逐条读。
3. 我能解决 → `resolve_problem`(任务自动恢复,冒泡停止)。
4. 我答不了 → `escalate_problem`,沿冒泡路径转给下一个处理方。
4. 我答不了 → `escalate_problem`,沿冒泡路径转给下一个处理方(规范名)
## 六、分层与覆盖
- 本 skill 是**产线级默认规范**skills_library 模板)。
- 项目可用**同名 team-communication skill** 放在项目 skills 目录覆盖:
同名问题类型 → 项目覆盖;新增 → 追加;未定义 → 兜底到产线级。
- 本 skill 是**产线级默认规范**;项目可用**同名 team-communication skill** 覆盖。
- 加载顺序:项目级 → 产线级 → 全局兜底。
## 七、状态与归属
- 状态只有 `pending`(冒泡中)/ `answered`(已解决)。
- 归属 = `current_handler_role` + `current_handler_agentid` 两列,
由工具维护,查询走确定性 SQL不靠 LLM 扫全文。
- 归属 = `current_handler_role` + `current_handler_agentid` 两列,由工具维护,查询走确定性 SQL。