first commit
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
# AGENTS.md
|
||||
|
||||
## Project Overview
|
||||
|
||||
本仓库维护 Etunel 多 Agent 项目的角色协作约束,核心交付是:
|
||||
|
||||
- `etunel-role-collaboration/`:供各角色按需读取的渐进式披露 Skill;
|
||||
- `etunel-role-hook-contexts/`:供 Etunel 独立配置的八角色精简 Hook 上下文;
|
||||
- `doc/`:流程设计基线和历史资料;
|
||||
- 钉钉参考集成:仅帮助 Hub 理解如何调用辅助通知,不属于 Etunel 任务通信主链路。
|
||||
|
||||
这是以 Markdown、HTML 和 Shell 为主的约束仓库,没有需要猜测的安装或构建步骤。
|
||||
|
||||
## Scope
|
||||
|
||||
本文件适用于整个仓库。若后续子目录新增更具体的 `AGENTS.md`,以距离目标文件最近的规则为准;当前任务中的明确用户要求始终优先。
|
||||
|
||||
## 开始工作前
|
||||
|
||||
1. 先读根 Skill:[etunel-role-collaboration/SKILL.md](etunel-role-collaboration/SKILL.md)。
|
||||
2. 只按其中的条件路由读取本次修改涉及的 reference,不要一次加载所有角色和测试细则。
|
||||
3. 涉及流程设计时,以 `doc/20260828/` 中 V0.13 总流程图和 Hub 系统提示词为当前设计基线;`doc/20260827/` 中 V0.4 仅用于历史对照。
|
||||
4. 运行时 Hook、Etunel 工具 schema、项目角色契约、成员登记及已确认的项目流程基线,高于 Skill 的通用说明。发现冲突时说明冲突,不要自行猜测或发明能力。
|
||||
5. 保留用户已有改动;修改前后检查 Git 状态与差异。
|
||||
|
||||
不要让运行时 Skill 依赖某个带版本号的流程图或提示词文件。应把已确认且仍有效的规则整理为稳定约束,并放入正确的渐进式 reference;版本文件只作为设计来源和追溯依据。
|
||||
|
||||
## 必须保持的协作边界
|
||||
|
||||
- 默认八个角色是项目Hub、业务、产品、技术负责人、嵌入式应用层、嵌入式底层、硬件和测试。
|
||||
- 项目Hub是成员 Agent 之间唯一的跨角色中介。现阶段不支持成员角色直接通信;所有跨角色信息必须交给 Hub 定向中继。
|
||||
- 一个 WORK_ID 使用一个持续的 Hub 会话贯穿项目生命周期;不同阶段与不同角色会话交接,不为每个阶段另建 Hub。
|
||||
- 每个 SUBTASK_ID 只有一个主责角色和一个主责成员。依赖已满足的多项任务可以形成任务波次;同一角色的内聚工作可以一次组成任务包。
|
||||
- Hub 派发内容必须足以执行,并与要求的成果文件或成果包一致。成员先与本角色真人负责人对齐、自审并确认,再向 Hub 返回正式结果。
|
||||
- Hub 校验身份、结构、版本、证据、确认、依赖和门禁,不代替专业角色完成内容或作出专业结论。
|
||||
- 新自定义角色必须先形成职责契约,再由 Hub 真人负责人在 Etunel 中手动添加并绑定;AI 不得宣称已自动创建角色。
|
||||
- Etunel 运行时拥有队列、投递、重试、去重、会话授权和文件传输机制。本仓库只约束角色流程,不重复设计这些软件逻辑。
|
||||
- 中文职责名称统一写“业务”;仅在运行时标识、文件名或技术映射中使用 `business`。
|
||||
|
||||
## Key Paths
|
||||
|
||||
| 路径 | 用途 | 修改要求 |
|
||||
| --- | --- | --- |
|
||||
| `etunel-role-collaboration/SKILL.md` | 入口、共享硬约束、条件路由 | 保持精简;只放高频、跨角色且必须立即知道的规则 |
|
||||
| `etunel-role-collaboration/references/` | Hub、成员、生命周期、消息、成果、异常等详细规则 | 按条件拆分;新增 reference 必须能从 `etunel-role-collaboration/SKILL.md` 或已路由文件发现 |
|
||||
| `etunel-role-collaboration/references/roles/` | 七个成员角色的职责契约 | 角色专属决定、输入、输出和边界写在对应文件 |
|
||||
| `etunel-role-collaboration/references/testing/` | 测试角色二级细则 | 只保留匹配任务时才需要的深层内容 |
|
||||
| `etunel-role-hook-contexts/` | 八角色 Hook 的完整精简职责与每轮提醒 | 独立于 Skill 发现树;简短、可直接注入、与正式职责一致 |
|
||||
| `doc/` | 已确认流程来源及历史版本 | 不把历史版本误写成当前规则;新增基线时明确其状态 |
|
||||
| `.agents/skills/dingtalk-*` | 钉钉官方能力的项目内参考副本 | 不是 Etunel 核心 Skill;除非任务明确要求更新参考包,否则不要批量改动 |
|
||||
| `.dingtalk/`、`scripts/dingtalk-progress` | Hub 通知接入说明、示例配置和当前演示封装 | 不把通知能力扩大为任务派发、审批、门禁或事实源 |
|
||||
|
||||
修改共享流程、角色边界、阶段、正式成果或跨角色信息流时,必须同步检查根 Skill、相关公共 reference、受影响角色 reference 和对应 Hook。角色细节优先下沉到角色文件;测试专项优先下沉到测试二级 reference。不要靠复制整段规则维持一致性。
|
||||
|
||||
## 钉钉参考集成边界
|
||||
|
||||
钉钉内容存在于本仓库,是为了给 Hub 提供“如何调用钉钉发送项目通知”的参考和演示能力,不是本项目的核心职责系统:
|
||||
|
||||
- 只有 Hub/主 Agent 可以调用通知;成员 Agent 只向 Hub 返回成果、状态或阻塞。
|
||||
- 通知是项目群的单向辅助可见性与异常提醒,不是角色间通信、任务派发、审批、人类确认、项目门禁或项目事实源。
|
||||
- Agent 只能使用 `scripts/dingtalk-progress`,事件类型限定为 `start`、`milestone`、`blocked`、`complete` 或 `failed`;不得绕过脚本直接调用 OpenAPI 或 `dws api`。例如:
|
||||
|
||||
```sh
|
||||
./scripts/dingtalk-progress milestone "阶段成果已确认,下一步由 Hub 安排后续任务"
|
||||
```
|
||||
- 事件语义与消息格式以 [dingtalk-progress-reporting.md](etunel-role-collaboration/references/dingtalk-progress-reporting.md) 为准;安装与本机配置参考 [.dingtalk/README.md](.dingtalk/README.md)。
|
||||
- `scripts/dingtalk-progress` 是当前用于跑通通知链路的演示封装,不得据此反推或改变 Etunel 主流程。
|
||||
- 仓库维护和测试期间不得把真实发送当作冒烟测试。只有任务明确要求发送且当前环境已经授权时,才允许触发真实通知。
|
||||
- 不读取、输出、修改或提交 `.dingtalk/config.env`、Client Secret、`DING_SEC`、App Token 或其他凭据和内部标识。
|
||||
|
||||
## 编辑约定
|
||||
|
||||
- 使用中文编写项目说明和职责约束;保留已定义的英文状态、成果名和运行时字段。
|
||||
- Markdown 使用相对链接;每个新增链接都应能从仓库中解析。
|
||||
- 保持渐进式披露:入口说明“何时读什么”,详细内容放在对应 reference,不在多个文件重复整套流程。
|
||||
- Hook 只保留角色定位、关键边界、工具提醒和每轮控制点,避免塞入大段流程正文。
|
||||
- 不伪造 Etunel 工具名、参数、角色、成员、会话、状态或尚不存在的文件。
|
||||
- 不把模拟流程结果描述为真实发布、客户验收或生产就绪;不适用项统一使用 `NA`。
|
||||
- 文本文件保持 LF;不要提交日志、缓存、临时文件、机器专属配置或凭据。
|
||||
|
||||
## Quick Commands
|
||||
|
||||
修改后按影响范围执行:
|
||||
|
||||
```powershell
|
||||
rtk python -X utf8 "$env:USERPROFILE\.codex\skills\.system\skill-creator\scripts\quick_validate.py" "etunel-role-collaboration"
|
||||
rtk "C:\Program Files\Git\bin\bash.exe" -n scripts/dingtalk-progress
|
||||
rtk proxy git diff --check
|
||||
rtk proxy git status --short
|
||||
```
|
||||
|
||||
Skill Creator 的验证脚本位置取决于协作者的 Codex 安装。若默认路径不同,应定位已安装的 quick_validate.py,不要把验证器复制进仓库。
|
||||
|
||||
## Definition of Done
|
||||
|
||||
- 修改 Skill 时已通过 Skill Creator 的结构校验。
|
||||
- 仅在修改 `scripts/dingtalk-progress` 时执行 Shell 语法检查。
|
||||
- 所有新增或改动的 Markdown 相对链接均能解析。
|
||||
- 文件中没有待办标记、占位内容、真实凭据、群标识或误导性的缺失文件引用。
|
||||
- 根 Skill、公共 reference、角色 reference 和对应 Hook 在受影响规则上保持一致。
|
||||
- 最终说明修改了哪些文件、依据什么、执行了哪些验证以及仍有哪些未知项;未验证的内容不得声称通过。
|
||||
|
||||
## Boundaries
|
||||
|
||||
始终执行:保护已有改动;只读必要资料;保持 Hub 中介、人类负责人确认、正式成果和渐进式披露规则一致。
|
||||
|
||||
先征得确认:改变当前流程基线、角色集合或职责边界;删除历史资料;批量替换钉钉参考包;进行真实钉钉发送;执行其他不可逆操作。
|
||||
|
||||
绝不执行:提交秘密配置;让成员绕过 Hub 直接通信;把钉钉当成 Etunel 任务通道;用 Skill 重造 Etunel 队列机制;为不存在的工具、角色、参数或成果制造虚假规则。
|
||||
Reference in New Issue
Block a user