8157f10768
- 重构为三角色协作:人+Arch AI+执行AI - 新增 Excel 寄存器表格解析工具,自动生成测试代码 - 新增串口日志分析工具,自动生成测试报告 - 完善项目文档:AGENTS.md、README.md - 创建自动化测试架构设计文档 - 添加示例测试任务 P01-001
9.2 KiB
9.2 KiB
MCU芯片测试 AI 角色定义与权限约定
团队架构
┌─────────────────────────────────────────────┐
│ 人类负责人 │
│ 需求分析 · 架构设计 · 最终决策 │
└───────────────┬───────────┬─────────────────┘
│ │
┌───────────┴──┐ ┌────┴────────────┐
▼ ▼ ▼ ▼
┌───────────────┐ ┌──────────────┐
│ Arch AI │ │ 执行AI │
│ 需求分析 │ │ 代码实现 │
│ 架构设计 │ │ 测试执行 │
│ 测试方案设计 │ │ 报告生成 │
│ 结果分析 │ └──────────────┘
└───────────────┘
输入资源
项目启动时需要以下输入资源:
| 资源类型 | 存放位置 | 用途 |
|---|---|---|
| Excel 寄存器表格 | docs/00_芯片资料/registers/ |
Arch AI 分析芯片功能,生成寄存器定义头文件 |
| 串口 printf Demo 工程 | projects/P01_chip_test/demo/ |
执行AI 基于该工程扩展测试功能 |
| 芯片手册 | docs/00_芯片资料/datasheet/ |
参考文档 |
角色职责
Arch AI (架构AI)
职责范围:
- ✅ 芯片功能需求分析和测试规划
- ✅ 解析 Excel 寄存器表格,生成头文件
- ✅ 测试架构设计和测试方案制定
- ✅ 编译器选择和环境配置方案
- ✅ JTAG调试流程设计
- ✅ 串口日志分析方案
- ✅ 编写测试架构文档 (
docs/) - ✅ 定义验收标准 (
review/*/acceptance.md) - ✅ 评估测试结果影响 (
review/*/impact.md) - ✅ 维护共享资源 (
shared/) - ✅ 维护测试工具 (
tools/) - ✅ 指导执行AI工作
可读但不可写:
- 👁 AI 配置文件 (
.ai/) —— 只读,了解团队规则 - 👁 测试报告 (
reports/) —— 只读,了解测试结果 - 👁 测试反馈 (
review/*/feedback/) —— 只读,了解问题
禁止操作:
- ❌ 无(架构 AI 拥有最高 AI 权限)
执行AI (Executor AI)
职责范围:
- ✅ 编写测试固件代码 (
projects/*/src/) - ✅ 配置编译环境 (Arm Clang / Keil MDK / Arm GCC)
- ✅ 通过JTAG调试下载固件 (
tools/jtag/) - ✅ 执行测试,收集串口日志 (
tools/uart/) - ✅ 单步调试和验证功能
- ✅ 生成测试报告 (
reports/) - ✅ 提交测试反馈 (
review/*/feedback/) - ✅ 补充验收标准 (
review/*/acceptance.md)
可读但不可写:
- 👁 任务描述 (
review/*/task.md) —— 只读,不可修改 - 👁 架构文档 (
docs/) —— 只读,了解测试方案
禁止操作:
- ❌ 修改测试架构设计文档
- ❌ 修改共享资源 (
shared/) - ❌ 修改任务描述和影响评估
人类负责人
职责范围:
- ✅ 可以修改所有目录
- ✅ 审核 AI 输出质量
- ✅ 解决 AI 之间的冲突
- ✅ 最终决策和验收
工作流程
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 需求分析 │ ───→ │ 测试架构 │ ───→ │ 执行测试 │ ───→ │ 验收确认 │
│ (Arch AI) │ │ (Arch AI) │ │ (执行AI) │ │ (人类) │
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
↑ │
│ Bug → 修复 │
└──────────────────────┘
(最多 2 轮)
详细流程说明
0. 准备输入资源(前置步骤)
- 人类将 Excel 寄存器表格放入
docs/00_芯片资料/registers/ - 人类将串口 printf Demo 工程放入
projects/P01_chip_test/demo/
1. 需求分析阶段
- Arch AI 解析 Excel 寄存器表格,分析芯片功能需求,制定测试规划
- 输出:
docs/01_测试需求/、review/{task_id}/task.md、寄存器定义头文件
2. 测试架构阶段
- Arch AI 设计测试架构,选择编译器,规划JTAG/串口调试流程
- 输出:
docs/02_测试架构/、review/{task_id}/impact.md、review/{task_id}/acceptance.md
3. 执行测试阶段
- 执行AI 读取任务描述和验收标准,基于 Demo 工程扩展测试功能,配置环境,下载执行
- 输出:
projects/*/src/,projects/*/docs/,reports/test-results/,review/{task_id}/feedback/
4. 验收确认阶段
- 人类审核测试报告,确认任务完成或驳回
- 确认后任务状态更新为 DONE,移入
review/archived/
缺陷修复循环
| 规则 | 说明 |
|---|---|
| 最大轮次 | 3 轮(初始测试 + 最多 2 轮修复复查) |
| 循环范围 | 测试失败 → 执行AI 修复 → 执行AI 复查 |
| 跳过项 | 修复轮次中执行AI 只修固件或测试流程,不重新写 acceptance/impact |
| 触发升级 | 第 3 轮仍有 BLOCKER 或 HIGH 级别 Bug → 暂停流转,待人类裁决 |
Round 1: Arch AI 设计 → 执行AI 测试 → 3 个 Bug
Round 2: 执行AI 修复 → 执行AI 复查 → 1 个 Bug(MEDIUM)
Round 3: 执行AI 修复 → 执行AI 复查 → 0 个 Bug ✅ → 提交人类验收
如果 Round 3 仍有 BLOCKER/HIGH:
Round 3: 执行AI 修复 → 执行AI 复查 → 仍 1 个 HIGH → ⚠️ 升级给人类裁决
目录权限矩阵
图例:
-= 无权访问R= 只读W= 可写(含读)RW= 读写
| 目录路径 | Arch AI | 执行AI | 人类 |
|---|---|---|---|
.ai/ |
R |
- |
RW |
docs/ |
RW |
R |
RW |
tools/ |
RW |
RW |
RW |
shared/ |
RW |
R |
RW |
projects/*/src/ |
RW |
RW |
RW |
projects/*/tests/ |
RW |
RW |
RW |
projects/*/docs/ |
RW |
RW |
RW |
review/*/task.md |
RW |
R |
RW |
review/*/acceptance.md |
RW |
RW |
RW |
review/*/impact.md |
RW |
- |
RW |
review/*/feedback/ |
R |
RW |
RW |
reports/ |
R |
RW |
RW |
.github/ |
- |
- |
RW |
解析优先级:当同一条路径被多个规则匹配时,
forbidden > read_only > allowed。禁止规则永远优先。默认行为:任何未出现在上表中的路径,默认禁止所有 AI 访问(等效于
-)。
沟通规范
Arch AI → 执行AI
在 review/{task_id}/ 目录提交:
- 验收标准 (
acceptance.md) - 明确测试目标 - 变更影响范围 (
impact.md) - 指导回归测试 - 环境准备 参考项目级
ENVIRONMENT.md
执行AI → Arch AI / 人类
在 review/{task_id}/feedback/ 目录提交:
- 测试结果报告 (
round{round}.md) - 问题清单 - 列出问题和严重程度
- 改进建议 - 优化建议
命名规范
项目命名
P01_芯片测试项目 # P01 表示项目编号
任务编号
P01-001 # P01 项目编号 + 001 任务编号
分支命名
feature/P01-001-gpio-test # 功能测试
bugfix/P01-001-uart-fix # Bug修复
test/P01-001-perf-verify # 性能验证
提交信息
feat(P01-001): 实现GPIO功能测试
fix(P01-001): 修复串口日志输出问题
docs(P01-001): 更新测试架构文档
test(P01-001): 添加定时器测试用例
编译器配置
Arm Clang
{
"compiler": "armclang",
"version": ">= 18.0.0",
"target": "armv8-m",
"optimization": "O2"
}
Keil MDK
{
"compiler": "AC6",
"version": ">= 6.18",
"target": "Cortex-M7",
"optimization": "-O2"
}
Arm GCC
{
"compiler": "arm-none-eabi-gcc",
"version": ">= 12.0.0",
"target": "armv8-m",
"optimization": "-O2"
}
JTAG调试流程
- 准备固件: 编译生成 .hex / .elf 文件
- 连接硬件: 通过JTAG/SWD连接硬件
- 下载固件: 使用OpenOCD或pyOCD下载
- 运行调试: 启动调试,设置断点
- 串口监控: 监听串口输出日志
- 单步调试: 单步执行,验证功能
AI 配置文件说明
| 文件 | 说明 |
|---|---|
.ai/config/architect.json |
Arch AI 配置(权限、职责) |
.ai/config/executor.json |
执行AI 配置(权限、职责) |
.ai/config/workflow.json |
工作流配置(阶段、触发器) |
.ai/prompts/architecture/ |
架构设计提示词模板 |
.ai/prompts/execution/ |
执行提示词模板 |