Files
ai_soc_sw/AGENTS.md
T
tupingr c31ab669b3 docs(readme): 补充 README.md 和变更日志 - 同步 Arch AI 升级
- README.md: 更新为'1 人+3AI'协作模式,目录结构、团队角色、工作流程全面更新
- AGENTS.md: AI 配置文件说明增加 architect.json 和 architecture/ 提示词
- docs/05_变更日志/2026-05-23.md: 补充今天所有提交的变更记录

教训:核心代码改了,文档和变更日志必须同步更新,不能忘
2026-05-23 22:35:05 +08:00

240 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI 角色定义与权限约定
## 团队架构
```
┌─────────────────────────────────────────────┐
│ 人类负责人 │
│ 需求分析 · 架构设计 · 最终决策 │
└───────────────┬───────────┬─────────────────┘
│ │
┌───────────┴──┐ ┌────┴────────────┐
▼ ▼ ▼ ▼
┌───────────────┐ ┌──────────────┐ ┌───────────────┐
│ Arch AI │ │ Dev AI │ │ QA AI │
│ 需求分析 │ │ 代码编写 │ │ 测试设计 │
│ 架构设计 │ │ 文档生成 │ │ 测试执行 │
│ 技术选型 │ │ 影响评估 │ │ 质量保障 │
│ 跨模块协调 │ └──────────────┘ └───────────────┘
└───────────────┘
```
---
## 角色职责
### Arch AI (架构AI)
**职责范围:**
- ✅ 需求分析和产品规划
- ✅ 系统架构设计
- ✅ 技术选型和评估
- ✅ 跨模块协调和集成
- ✅ 编写架构文档 (`docs/`)
- ✅ 定义验收标准 (`review/*/acceptance.md`)
- ✅ 评估变更影响 (`review/*/impact.md`)
- ✅ 维护共享资源 (`shared/`)
- ✅ 维护开发工具 (`tools/`)
- ✅ 维护训练数据 (`data/`)
- ✅ 指导 Dev AI 和 QA AI 工作
**可读但不可写:**
- 👁 AI 配置文件 (`.ai/`) —— 只读,了解团队规则
- 👁 测试代码 (`projects/*/tests/`) —— 只读,了解测试覆盖
- 👁 测试报告 (`reports/`) —— 只读,了解质量状况
- 👁 测试反馈 (`review/*/feedback/`) —— 只读,了解问题
**禁止操作:**
- ❌ 无(架构 AI 拥有最高 AI 权限)
### Dev AI (编码AI)
**职责范围:**
- ✅ 编写业务代码 (`projects/*/src/`)
- ✅ 生成技术文档 (`projects/*/docs/`)
- ✅ 维护项目级文档 (`docs/`)
- ✅ 维护开发工具 (`tools/`)
- ✅ 维护训练数据 (`data/`)
- ✅ 定义验收标准 (`review/*/acceptance.md`)
- ✅ 评估变更影响 (`review/*/impact.md`)
- ✅ 维护共享资源 (`shared/`)
**可读但不可写:**
- 👁 任务描述 (`review/*/task.md`) —— 只读,不可修改
- 👁 测试反馈 (`review/*/feedback/`) —— 只读,用于修 Bug
**禁止操作:**
- ❌ 修改测试代码 (`projects/*/tests/`)
- ❌ 修改测试报告 (`reports/`)
### QA AI (测试AI)
**职责范围:**
- ✅ 编写测试用例 (`projects/*/tests/`)
- ✅ 执行测试并生成报告 (`reports/`)
- ✅ 补充验收标准 (`review/*/acceptance.md`)
- ✅ 提交测试反馈 (`review/*/feedback/`)
**可读但不可写:**
- 👁 业务代码 (`projects/*/src/`) —— 只读,理解逻辑编写测试
- 👁 技术文档 (`projects/*/docs/`) —— 只读,了解接口设计
- 👁 项目级文档 (`docs/`) —— 只读,了解系统架构
- 👁 训练数据 (`data/`) —— 只读,了解数据分布
- 👁 共享资源 (`shared/`) —— 只读,了解工具函数
- 👁 任务描述 (`review/*/task.md`) —— 只读,了解测试目标
- 👁 验收标准 (`review/*/acceptance.md`) —— 只读,了解测试要求
**禁止操作:**
- ❌ 修改业务代码 (`projects/*/src/`)
- ❌ 修改技术文档 (`projects/*/docs/`)
- ❌ 修改共享资源 (`shared/`)
- ❌ 修改影响评估 (`review/*/impact.md`)
- ❌ 修改开发工具 (`tools/`)
- ❌ 修改测试反馈 (`review/*/feedback/`)
### 人类负责人
**职责范围:**
- ✅ 可以修改所有目录
- ✅ 审核 AI 输出质量
- ✅ 解决 AI 之间的冲突
- ✅ 最终决策和验收
---
## 工作流程
```
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 需求分析 │ ───→ │ 架构设计 │ ───→ │ 开发实现 │ ───→ │ 测试验证 │ ───→ │ 验收确认 │
│ (Arch AI) │ │ (Arch AI) │ │ (Dev AI) │ │ (QA AI) │ │ (人类) │
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
↑ │
│ Bug → 修复 │
└──────────────────────┘
(最多 2 轮)
```
### 详细流程说明
**1. 需求分析阶段**
- Arch AI 分析用户需求,输出产品规划
- 输出: `docs/01_产品需求/PRD.md``review/{task_id}/task.md`
**2. 架构设计阶段**
- Arch AI 设计系统架构,技术选型
- 输出: `docs/02_系统架构/``review/{task_id}/impact.md``review/{task_id}/acceptance.md`
**3. 开发实现阶段**
- Dev AI 读取任务描述和验收标准,编写代码 + 文档
- 输出: `projects/*/src/`, `projects/*/docs/`
**4. 测试验证阶段**
- QA AI 根据验收标准编写测试,执行测试,生成报告
- 测试反馈写入 `review/{task_id}/feedback/round{round}.md`
- 输出: `projects/*/tests/`, `reports/test-results/`, `review/{task_id}/feedback/`
### 缺陷修复循环
| 规则 | 说明 |
|------|------|
| 最大轮次 | 3 轮(初始测试 + 最多 2 轮修复复查) |
| 循环范围 | 测试失败 → Dev AI 修复 → QA AI 复查 |
| 跳过项 | 修复轮次中 Dev AI **只修 Bug**,不重新写 acceptance/impact |
| 触发升级 | 第 3 轮仍有 BLOCKER 或 HIGH 级别 Bug → 暂停流转,待人类裁决 |
```
Round 1: Dev 开发 → QA 测试 → 3 个 Bug
Round 2: Dev 修复 → QA 复查 → 1 个 BugMEDIUM
Round 3: Dev 修复 → QA 复查 → 0 个 Bug ✅ → 提交人类验收
```
如果 Round 3 仍有 BLOCKER/HIGH
```
Round 3: Dev 修复 → QA 复查 → 仍 1 个 HIGH → ⚠️ 升级给人类裁决
```
**4. 验收确认阶段**
- 人类审核测试报告,确认任务完成或驳回
- 确认后任务状态更新为 DONE,移入 `review/archived/`
---
## 目录权限矩阵
> **图例**`-` = 无权访问    `R` = 只读    `W` = 可写(含读)    `RW` = 读写
| 目录路径 | Arch AI | Dev AI | QA AI | 人类 |
|---------|---------|--------|-------|------|
| `.ai/` | `R` | `-` | `-` | `RW` |
| `docs/` | `RW` | `RW` | `R` | `RW` |
| `tools/` | `RW` | `RW` | `-` | `RW` |
| `data/` | `RW` | `RW` | `R` | `RW` |
| `shared/` | `RW` | `RW` | `R` | `RW` |
| `projects/*/src/` | `RW` | `RW` | `R` | `RW` |
| `projects/*/tests/` | `R` | `-` | `RW` | `RW` |
| `projects/*/docs/` | `RW` | `RW` | `R` | `RW` |
| `review/*/task.md` | `RW` | `R` | `R` | `RW` |
| `review/*/acceptance.md` | `RW` | `RW` | `RW` | `RW` |
| `review/*/impact.md` | `RW` | `RW` | `-` | `RW` |
| `review/*/feedback/` | `R` | `R` | `RW` | `RW` |
| `reports/` | `R` | `-` | `RW` | `RW` |
| `.github/` | `-` | `-` | `-` | `RW` |
> **解析优先级**:当同一条路径被多个规则匹配时,`forbidden > read_only > allowed`。禁止规则永远优先。
>
> **默认行为**:任何未出现在上表中的路径,默认禁止所有 AI 访问(等效于 `-`)。
---
## 沟通规范
### Dev AI → QA AI
`review/{task_id}/` 目录提交:
- **验收标准** (`acceptance.md`) - 明确测试目标
- **变更影响范围** (`impact.md`) - 指导回归测试
- **环境准备** 参考项目级 `ENVIRONMENT.md`
### QA AI → Dev AI
`review/{task_id}/feedback/` 目录提交:
- **测试结果报告** (`round{round}.md`)
- **Bug清单** - 列出问题和严重程度
- **改进建议** - 代码优化建议
---
## 命名规范
### 项目命名
```
P01_项目名称 # P01 表示项目编号
```
### 任务编号
```
P01-001 # P01 项目编号 + 001 任务编号
```
### 分支命名
```
feature/P01-001-login # 功能开发
bugfix/P01-001-password # Bug修复
test/P01-001-testcases # 测试用例
```
### 提交信息
```
feat(P01-001): 实现用户登录功能
fix(P01-001): 修复密码验证问题
docs(P01-001): 更新接口文档
test(P01-001): 添加登录测试用例
```
---
## AI 配置文件说明
| 文件 | 说明 |
|------|------|
| `.ai/config/architect.json` | Arch AI 配置(权限、职责) |
| `.ai/config/coder.json` | Dev AI 配置(权限、职责) |
| `.ai/config/tester.json` | QA AI 配置(权限、职责) |
| `.ai/config/workflow.json` | 工作流配置(阶段、触发器) |
| `.ai/prompts/architecture/` | 架构设计提示词模板 |
| `.ai/prompts/coding/` | 编码提示词模板 |
| `.ai/prompts/testing/` | 测试提示词模板 |