Files
ai_soc_sw/AGENTS.md
T
tupingr 8157f10768 feat: 完善 MCU 芯片自动化测试架构
- 重构为三角色协作:人+Arch AI+执行AI
- 新增 Excel 寄存器表格解析工具,自动生成测试代码
- 新增串口日志分析工具,自动生成测试报告
- 完善项目文档:AGENTS.md、README.md
- 创建自动化测试架构设计文档
- 添加示例测试任务 P01-001
2026-05-27 10:44:55 +08:00

9.2 KiB
Raw Blame History

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.mdreview/{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 个 BugMEDIUM
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调试流程

  1. 准备固件: 编译生成 .hex / .elf 文件
  2. 连接硬件: 通过JTAG/SWD连接硬件
  3. 下载固件: 使用OpenOCD或pyOCD下载
  4. 运行调试: 启动调试,设置断点
  5. 串口监控: 监听串口输出日志
  6. 单步调试: 单步执行,验证功能

AI 配置文件说明

文件 说明
.ai/config/architect.json Arch AI 配置(权限、职责)
.ai/config/executor.json 执行AI 配置(权限、职责)
.ai/config/workflow.json 工作流配置(阶段、触发器)
.ai/prompts/architecture/ 架构设计提示词模板
.ai/prompts/execution/ 执行提示词模板