SuperAPI AI 工具集

build-error-analyzer

编程与开发

查看项目

更新于 10-15 17:48

技能介绍

Build Error Analyzer Skill 是面向 OpenHarmony 构建流程的错误分析技能,专注于从构建日志中诊断错误并提供修复建议。

用途

该技能用于处理 OpenHarmony 构建过程中的错误诊断,触发场景包括用户要求分析构建错误、查看编译错误、检查构建日志、诊断链接错误、修复构建错误等。其定位是分析与建议,不执行自动代码修改。

主要能力

  • 从构建日志中提取最新的错误块,生成 last_error.log。
  • 优先判断构建是否成功,若日志中出现 build success 或 no error 则停止并报告成功。
  • 对错误进行分类:编译错误(CXX 任务)涉及语法、缺失头文件、不完整类型;链接错误(SOLINK/LINK 任务)涉及未定义符号、缺失库;构建系统错误涉及 GN/Ninja 配置问题。
  • 将错误模式与 references/ 目录中的历史案例进行匹配,匹配依据包括错误签名(如 undefined symbol 加 referred by)、错误上下文(如 timepicker 模块使用)和文件模式(如 BUILD.gn 问题)。
  • 输出包含错误类型、错误位置(文件路径与行号)、错误信息、根本原因、修复建议(含当前代码与应修改为的代码片段)、验证步骤和参考内容。

使用方式

工作流程分为四步。

第一步为强制步骤,必须先进入 OpenHarmony 根目录,然后运行提取脚本:

cd <openharmony_root>
foundation/arkui/ace_engine/.claude/skills/build-error-analyzer/script/extract_last_error.sh out/<product>/build.log

脚本会从 out/<product>/build.log 提取最新错误块,输出到 out/<product>/last_error.log,并覆盖已存在的旧文件。SDK 构建为特殊路径,使用 out/sdk/build.log 和 out/sdk/last_error.log,而非 out/ohos-sdk/。

第二步为读取并分类错误,仅读取 last_error.log。若其中包含构建成功信息则立即停止并报告成功。

第三步为对照历史案例匹配错误模式,优先按错误签名、错误上下文、文件模式匹配,无匹配时提供通用指导。

第四步为给出修复建议,不使用 Edit 或 Write 工具修改代码,不自动运行构建命令。

适用场景

适用于 OpenHarmony 项目的构建错误诊断,包括编译、链接和 GN/Ninja 配置问题,覆盖 libace、libace_compatible、libarkoala_native_ani、libace_ndk 等库的链接错误分析。

限制

  • 仅提供分析与建议,不自动修改代码文件。
  • 仅从 last_error.log 读取错误,禁止直接读取 build.log 或其他日志文件(error.log、build_output*.log、error.*.log 等)。
  • 必须从 OpenHarmony 根目录运行提取脚本。
  • 禁止建议清理 thinlto-cache、llvmcache-* 目录,禁止删除 out/obj 或整个 out/ 目录,禁止将 LTO 缓存作为构建错误的原因,禁止将 clean build 作为首选方案。
  • 具体收费、价格、平台支持与效果信息暂未提供。