|
| 1 | +# Team First Development |
| 2 | + |
| 3 | +[](https://github.com/Howe829/team-first-development/actions/workflows/ci.yml) |
| 4 | + |
| 5 | +[English README](README.md) |
| 6 | + |
| 7 | +Team First Development(TFD)是一个 Codex Skill:在开始实现之前,先组建面向具体任务的开发团队,再通过明确授权、渐进式交付门禁、候选版本绑定评审和基于证据的收尾机制协调团队。 |
| 8 | + |
| 9 | +TFD 会搜索本地 [Agency Agents](https://github.com/msitarzewski/agency-agents) 角色文件和可选的私有自定义角色。它将角色提示视为专业工作方法,而不是项目事实、编排运行时或第二套控制平面。 |
| 10 | + |
| 11 | +## 为什么需要 TFD |
| 12 | + |
| 13 | +多 Agent 协作经常以相似的方式失败:团队规模过大、角色流于形式、授权含糊、评审者检查的候选版本不一致、陈旧构建被误判为通过,或者把自动化证据误当作真人验收。 |
| 14 | + |
| 15 | +TFD 为交付过程增加了一套小而严格的契约: |
| 16 | + |
| 17 | +- 动态选择“最小充分团队”,不固定成员数量; |
| 18 | +- 开始执行前先建立授权边界和团队章程; |
| 19 | +- 委派必须指名、限定范围、设置有效期且不可转授; |
| 20 | +- 设置契约门禁、代表性垂直切片门禁和冻结候选门禁; |
| 21 | +- 使用一份候选清单绑定源码、依赖、构建产物、运行环境和验证证据; |
| 22 | +- 评审状态统一为 `PASS`、`BLOCKER` 和 `UNVERIFIED`; |
| 23 | +- 自动化、团队评审、真人/真机、用户验收和部署状态分别记账; |
| 24 | +- 阻塞后只允许一次有边界的修复循环,随后重新冻结、重新评审并执行回归验证。 |
| 25 | + |
| 26 | +## 仓库结构 |
| 27 | + |
| 28 | +```text |
| 29 | +SKILL.md TFD 操作契约 |
| 30 | +agents/openai.yaml Codex 界面元数据与默认提示词 |
| 31 | +scripts/agent_catalog.py 只读的本地角色目录 |
| 32 | +scripts/test_agent_catalog.py 角色目录回归测试 |
| 33 | +scripts/test_skill_contract.py TFD 契约回归测试 |
| 34 | +references/custom-agent-format.md |
| 35 | +``` |
| 36 | + |
| 37 | +## 环境要求 |
| 38 | + |
| 39 | +- 支持本地 Skills 的 Codex |
| 40 | +- Python 3.10 或更高版本 |
| 41 | +- 位于 `~/.agency-agents` 的本地 Agency Agents 仓库 |
| 42 | +- 可选的私有自定义角色目录 `~/.agency-agents-custom` |
| 43 | + |
| 44 | +在正常使用和测试期间,角色目录工具不会写入上游 Agency Agents 仓库。 |
| 45 | + |
| 46 | +## 安装 |
| 47 | + |
| 48 | +如果本地尚未安装 Agency Agents,请先克隆: |
| 49 | + |
| 50 | +```bash |
| 51 | +git clone https://github.com/msitarzewski/agency-agents.git ~/.agency-agents |
| 52 | +``` |
| 53 | + |
| 54 | +将本仓库克隆到 Codex Skills 目录: |
| 55 | + |
| 56 | +```bash |
| 57 | +git clone https://github.com/Howe829/team-first-development.git ~/.codex/skills/team-first-development |
| 58 | +``` |
| 59 | + |
| 60 | +如果 Codex 没有自动发现该 Skill,请重启或重新加载 Codex。 |
| 61 | + |
| 62 | +## 使用方法 |
| 63 | + |
| 64 | +在 Codex 请求中显式调用该 Skill: |
| 65 | + |
| 66 | +```text |
| 67 | +使用 $team-first-development 为这个任务组建最小充分团队。 |
| 68 | +``` |
| 69 | + |
| 70 | +TFD 会先确认事实和授权范围,搜索角色能力,提出团队名单与章程,并等待批准;只有当用户已经提供完整、指名且有边界的委派时才会跳过等待。批准后,仅加载已选中的角色。 |
| 71 | + |
| 72 | +### 角色目录示例 |
| 73 | + |
| 74 | +```bash |
| 75 | +python3 scripts/agent_catalog.py validate |
| 76 | +python3 scripts/agent_catalog.py search "accessibility performance" |
| 77 | +python3 scripts/agent_catalog.py inspect upstream:engineering/engineering-frontend-developer |
| 78 | +python3 scripts/agent_catalog.py load upstream:engineering/engineering-frontend-developer |
| 79 | +``` |
| 80 | + |
| 81 | +如需覆盖默认来源,请在子命令前使用 `--upstream-dir` 或 `--custom-dir`。 |
| 82 | + |
| 83 | +自定义角色文件使用受限的标量 frontmatter 格式,详情参见 [references/custom-agent-format.md](references/custom-agent-format.md)。 |
| 84 | + |
| 85 | +## 验证 |
| 86 | + |
| 87 | +测试套件可以独立运行,并且不会修改 Agency Agents 仓库: |
| 88 | + |
| 89 | +```bash |
| 90 | +python3 -m unittest scripts/test_skill_contract.py scripts/test_agent_catalog.py |
| 91 | +``` |
| 92 | + |
| 93 | +如需针对真实本地角色目录执行冒烟测试: |
| 94 | + |
| 95 | +```bash |
| 96 | +python3 scripts/agent_catalog.py validate |
| 97 | +``` |
| 98 | + |
| 99 | +如果可选的自定义角色目录不存在,验证会报告该情况;只要上游来源有效,验证仍可成功。 |
| 100 | + |
| 101 | +## 安全模型 |
| 102 | + |
| 103 | +- 角色提示是工作方法,不是权威项目事实。 |
| 104 | +- 系统和开发者指令、用户请求、仓库规则、当前启用的 Skills、安全规则及经过验证的证据始终具有更高优先级。 |
| 105 | +- 团队名单批准不等于授权部署、发布、删除、特权命令、外部消息或其他范围扩张。 |
| 106 | +- 真人、真机、无障碍、听觉和用户验收在指定验收者真正执行并记录之前均保持 `UNVERIFIED`。 |
| 107 | +- 保留工作区中的未知改动,不使用破坏性的 Git 清理来消除不确定性。 |
| 108 | + |
| 109 | +## 许可证 |
| 110 | + |
| 111 | +[MIT](LICENSE) |
| 112 | + |
| 113 | +## 致谢 |
| 114 | + |
| 115 | +TFD 集成了 [msitarzewski/agency-agents](https://github.com/msitarzewski/agency-agents) 提供的本地角色库。该项目由其维护者独立维护,并继续作为专业角色方法的来源。 |
0 commit comments