---
name: etunel-role-collaboration
description: 在 Etunel 多 Agent 项目中识别项目Hub、业务、产品、技术负责人、嵌入式应用层、嵌入式底层、硬件、测试或已登记的自定义角色，并按 Hub 唯一跨角色中介、依赖就绪任务波次、中文正式成果、真人负责人确认、阶段留档和 Etunel 实际消息工具推进项目。用于派发或完成任务、处理阻塞返工变更、阶段交接、项目文件归档以及 Hub 钉钉进度汇报；不用于设计 Etunel 队列、投递、重试或去重机制。
---

# Etunel 多角色项目协作

一个项目使用一个持续的项目Hub会话贯穿生命周期。默认角色为项目Hub、业务、产品、技术负责人、嵌入式应用层、嵌入式底层、硬件和测试；已完成职责契约并由 Hub 真人负责人在 Etunel 中手动添加的自定义角色也可参与。

## 先确认当前任务

从当前 Hook、Etunel 角色契约和入站任务确认：

- 当前角色、项目名称、项目模式、流程基线和所处阶段；
- 任务目标、唯一主责角色、协作角色、上游依赖和完成时间；
- 已有资料、本阶段完成约定、要求产出的文件或成果包、最低内容、证据、完成条件和下游用途。

Etunel 负责当前角色和会话绑定。不要向负责人询问或复述 role ID、member ID、session ID、消息 ID 等运行时字段，也不要在任务正文中制造不存在的 ID。Hub 需要识别角色时调用 `mcp__etunel__etunel_list_roles`，用 `role` 路由、用 `display_name` 面向人显示。

## 共享硬约束

1. 项目Hub是成员 Agent 之间唯一的跨角色中介。成员只把任务结果、问题或阻塞交 Hub，由 Hub 定向路由；成员之间不直接通信。
2. 正常阶段顺序为：业务需求、产品定义、方案设计、项目规划、软硬件实现、测试验证、业务验收、发布结项。阶段按有效流程基线和依赖推进。
3. 每个阶段开始时，Hub 在该阶段记录中简要区分“本阶段必须完成、后续阶段处理、当前不需要”。只有直接影响本阶段成果或决定的问题可以阻塞；门禁满足并留档后立即启动下一阶段，由新阶段按需取得自己的输入。
4. 依赖已满足的任务可以组成任务波次。一个 Etunel 调用只面向一个接收角色；同一角色的紧密相关工作可以组成一个任务包。
5. 每项任务只有一个主责角色和一个可独立判断的结果。Etunel 的角色绑定决定实际接收会话，不另造“主责成员 ID”。
6. Hub 必须给足执行所需的背景、有效输入、边界、产出和完成条件，但不默认广播完整计划、全部资料或私有对话。
7. 正式执行任务必须形成指定文件或连贯成果包，任务要求与实际产出一致。纯信息查询、确认或决定不虚构空文件。
8. 成员收到任务后先用简明中文与当前负责人对齐；形成成果后完成专业自审并取得负责人确认，再通过 Etunel 正式返回。
9. 面向负责人、角色或钉钉的内容使用自然、简洁的中文。机器字段和枚举只留在工具参数或机器记录中，不把内部术语和 ID 倾倒给人。
10. Hub 只校验角色、结构、版本、证据、确认状态、跨角色冲突、依赖和门禁，不替专业角色补写内容或作出专业结论。
11. Hub 按阶段保存角色提交的文件，维护项目进度、阶段记录和成果索引。必要成果未保存且不可访问时，不宣布正式阶段交接完成。
12. 流程可按 Hub 负责人明确决定跳转、回退或暂缓；Hub 必须记录缺失成果、原因、影响、风险和补齐安排，且不得把未满足门禁写成已通过。正式交付仍需补齐适用成果与必要确认；模拟流程不能冒充真实交付。
13. Etunel 运行时负责队列、投递、重试、去重、会话授权和文件传输；本 Skill 不重复设计这些软件机制。
14. 当前 Hook、工具 schema、角色契约、`etunel_list_roles` 返回和已确认流程基线高于本 Skill 的通用说明；不存在的工具、角色、字段或文件不得伪造。

## 渐进式路由

只读取当前工作需要的引用：

- Hub：先读 [Hub 工作流](references/hub-workflow.md)。
- 创建项目、读取角色、添加或替换角色、维护项目状态：读 [角色与项目状态](references/project-status-and-membership.md)。
- 选择阶段、正式成果、任务波次或交接：读 [项目生命周期](references/project-lifecycle.md)。
- 成员：先读 [成员通用工作流](references/member-workflow.md)，再只读当前角色文件：
  - [业务](references/roles/business.md)
  - [产品](references/roles/product.md)
  - [技术负责人](references/roles/technical-lead.md)
  - [嵌入式应用层](references/roles/embedded-application.md)
  - [嵌入式底层](references/roles/embedded-lowlevel.md)
  - [硬件](references/roles/hardware.md)
  - [测试](references/roles/testing.md)
- 准备派发、回复、跨角色中继、完成或报告阻塞：读 [Etunel 任务消息流程](references/etunel-message-lifecycle.md)。
- 定义或校验成果、状态、版本、证据、额外产出或豁免：读 [成果与完成判定](references/artifacts-and-evidence.md)。
- 缺信息、错投、阻塞、会议决定、返工、变更、流程跳转或模拟：读 [异常与协调](references/exceptions-and-coordination.md)。
- 编写给负责人、角色或群组的任务、提问、结果和状态消息：读 [人类可读沟通](references/human-readable-communication.md)。
- 创建项目资料目录、保存成员清单、归档成果、更新进度或阶段记录：读 [项目文件与进度留档](references/project-files-and-progress.md)。
- 仅当当前会话是 Hub 且发生钉钉汇报事件：读 [钉钉项目进度汇报](references/dingtalk-progress-reporting.md)。
- 测试角色仅在任务类型匹配时，按 [测试职责](references/roles/testing.md) 中的二级链接读取更深细则。

不要为“全面了解”一次加载全部引用或全部角色文件。Etunel Hook 源文件独立配置，不属于本 Skill 的渐进式发现树。

## 每项任务的控制循环

1. 从运行时确认当前角色、项目、阶段、本阶段完成约定、目标、输入、产出和负责人，不向人核对内部 ID。
2. 用简明中文一次说明要做什么、已有资料、还缺什么、会产出什么以及需要负责人确认什么。
3. 信息足够后执行本角色工作；缺少跨角色输入时先问当前负责人，再向 Hub 提交一组聚合问题。
4. 形成指定文件或成果包，完成专业自审并取得负责人确认。
5. 使用当前 Etunel schema 对应的工具返回成果、补充请求或具体阻塞。
6. Hub 校验并按阶段留档；合格则更新成果索引、项目进度、依赖和下一波次，不合格则只说明具体缺口。

## 提交前检查

- 是否只确认了人需要知道的任务信息，没有要求负责人核对运行时 ID？
- 是否只有一个主责角色，且未越过其他角色的专业或批准边界？
- 输入是否足够，产出文件、证据、期限和完成条件是否与任务一致？
- 自审、版本、负责人确认、开放项和风险是否明确？
- 人类可读内容是否使用简洁中文，机器字段是否留在工具或机器记录中？
- 必要成果是否已由 Hub 放入正确阶段目录并更新进度和成果索引？
- 是否把任务波次误当成无依赖广播，或把排队、通知接受误当成业务完成？
- 是否只使用当前 schema 中与本次意图匹配的 Etunel 工具？
