已关闭
[Requirement|需求建议]: 阶段4新增 README 质量门控 — 调用示例自动审查与编译测试 #244
Riki创建于  6月30日关闭于  6月30日
Riki
Riki成员
6月30日 创建

Background(背景信息)

当前 ops-blas 工作流在阶段 4(上库)中,4.1 编写文档后直接进入 4.2 代码检视。README 中的算子调用示例缺少自动化验证环节,导致编译错误和规范问题只能在合并到 master 后被发现。

近期发生的典型案例:

  • Issue #234aclblasScopy README 调用示例编译失败——API 名称错误(aclrtStreamSynchronize 应为 aclrtSynchronizeStream)、参数类型错误(uint8_t* 应为 float*)、参数顺序错误
  • Issue #237aclblasRotEx README 调用示例编译失败——同一 API 名称错误,缺少 RAII 资源管理

这些问题并非个例,而是当前流程的系统性缺陷:writer 生成 README 后无人验证调用示例是否能编译通过,reviewer 在 4.2 代码检视时主要关注算子代码而非文档示例的质量。

Origin(信息来源)

cann 开发者

Benefit / Necessity(价值/作用)

  1. 拦截编译错误于上库前:通过 4.1.1 内容审查(9 项清单)和 4.1.2 编译测试(CMake 实际编译 + NPU 运行),确保调用示例零编译错误、结果正确
  2. 统一 RAII 规范:将 README 模板和开发指南升级为 RAII 版本,从源头杜绝裸指针管理资源的问题
  3. 快速反馈循环:2 次重试上限(初检 + 1 次返修复核),避免不必要的循环迭代;失败后立即 AskUserQuestion 升级,不阻塞流程
  4. 零新增 Agent 开销:审查融入 reviewer 的 readme-review 场景,编译融入 developer 的 readme-compile-test 任务类型,不增加 agent 定义文件数量

Design(设计方案)

流程变更

在阶段 4.1(writer 编写文档)之后插入两步质量门控:

[4.1 编写文档] → README.md
      ├─ [4.1.1 reviewer(readme-review)]  ⚪
      │     └─ 9 项审查:模板完整性、API 签名、参数类型、RAII 模式、
      │        API 名称、头文件、交叉引用、内存标注、约束描述
      ├─ [4.1.2 developer(readme-compile-test)]  ⚪
      │     └─ 提取示例代码 → CMake 编译 → NPU 可用时运行
      └─ [4.2 代码检视]

模板升级

  • readme_develop_guide.mdassets/README.md 中的调用示例从裸指针骨架升级为完整 RAII 模板(AclContext 类 + std::unique_ptr + CHECK_RET 宏)
  • 对齐 compile_and_run_example.md

重试策略

  • 最多 2 次(初检 + 1 次返修复核),第 2 次仍失败直接 AskUserQuestion
  • 4.1.2 编译测试中 NPU 不可用时标记为「跳过运行时」,编译通过即视为成功

涉及文件

  • 修改:agent/agents/reviewer.md, agent/agents/developer.md, SKILL.md, task-prompts.md, data-flow.md, error-handling.md, LOG.md, agent/README.md, assets/README.md, readme_develop_guide.md
  • 新建:references/readme-review-checklist.md
likedislike
RikiRiki成员
6月30日 issue状态由 进行中 改变为 已完成
RikiRiki成员
6月30日 关闭了 issue