Skip to content
Back to skills

Hmos Arkts Syntax Checker

ASecurity

检查并修复 HarmonyOS 项目的 ArkTS 语法错误,自动化构建项目。当需要编译项目、修复编译错误、生成 HAP/App 产物时使用。提供静态语法检查、错误自动修复、循环构建直到成功的完整工作流程。支持错误优先级分类(P0/P1/P2)、最大重试机制、构建产物自动定位。

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 22, 2026
developmentjavascriptjavabashgitapici/cd

Works with

  • api
  • mcp

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 22, 2026

npx -y skills add IsKenKenYa/skills --skill hmos-arkts-syntax-checker --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hmos Arkts Syntax Checker?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hmos Arkts Syntax Checker
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/iskenkenya-hmos-arkts-syntax-checker/badge)](https://www.skillsdirectory.com/skills/iskenkenya-hmos-arkts-syntax-checker)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hmos-arkts-syntax-checker
description: "检查并修复 HarmonyOS 项目的 ArkTS 语法错误,自动化构建项目。当需要编译项目、修复编译错误、生成 HAP/App 产物时使用。提供静态语法检查、错误自动修复、循环构建直到成功的完整工作流程。支持错误优先级分类(P0/P1/P2)、最大重试机制、构建产物自动定位。"
---
# HarmonyOS 项目自动化构建

## 技能概述

本技能专门用于自动化构建 HarmonyOS 项目,通过静态语法检查、错误修复和循环构建的流程,确保项目能够成功编译并生成产物。

## 使用场景

- ✅ 需要编译 HarmonyOS 项目生成 HAP/App 产物
- ✅ 项目存在语法错误需要修复
- ✅ 自动化构建流程,减少手动干预
- ✅ 持续集成/持续部署(CI/CD)场景
- ✅ 项目初次构建或升级后构建

## 工作流程

### 核心流程图

```
开始
  │
  ├─→ 步骤0: 检查MCP工具依赖
  │     ├─→ MCP工具可用 → 继续执行
  │     └─→ MCP工具不可用 → 提示安装 → 终止
  │
  ├─→ 步骤1: 扫描项目源文件
  │     └─→ 获取所有 .ets 文件列表
  │
  ├─→ 步骤2: 静态语法检查
  │     └─→ mcp_codegenie-mcp_check_ets_files
  │
  ├─→ 步骤3: 分析诊断结果
  │     ├─→ 有错误 → 步骤4: 修复错误
  │     └─→ 无错误 → 步骤5: 构建项目
  │
  ├─→ 步骤4: 修复错误
  │     ├─→ 应用修复方案
  │     └─→ 返回步骤2(重新检查)
  │
  ├─→ 步骤5: 构建项目
  │     └─→ mcp_codegenie-mcp_build_project
  │
  ├─→ 步骤6: 检查构建结果
  │     ├─→ 构建失败 → 分析错误 → 步骤4
  │     └─→ 构建成功 → 步骤7
  │
  └─→ 步骤7: 输出构建产物
        └─→ 完成
```

### 详细执行步骤

#### 0. 检查MCP工具依赖

**⚠️ 重要提示:本技能依赖MCP工具**

在执行任何构建操作之前,必须先检查MCP工具是否可用:

**依赖的MCP工具**:

- `mcp_codegenie-mcp_check_ets_files` - ETS文件静态语法检查
- `mcp_codegenie-mcp_build_project` - 项目构建
- `mcp_codegenie-mcp_harmonyos_knowledge_search` - HarmonyOS知识搜索(可选)

**检查方法**:

```
尝试调用 mcp_codegenie-mcp_check_ets_files 或 mcp_codegenie-mcp_build_project
如果工具不可用,会收到错误提示
```

**如果MCP工具未安装**:

```
❌ MCP工具未安装或不可用

本技能需要依赖 CodeGenie MCP Server 工具才能正常工作。

📦 安装方式:

在 MCP 配置文件中添加以下配置:

{
  "mcpServers": {
    "codegenie-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@deveco-codegenie/mcp@beta",
        "--registry=https://registry.npmjs.org"
      ],
      "env": {
        "PROJECT_PATH": "${workspaceFolder}",
        "DEVECO_PATH": "path to deveco studio"
      }
    }
  }
}

📚 详细文档:
- GitHub: https://github.com/open-deveco/deveco-toolbox
- 飞书指导文档: https://my.feishu.cn/wiki/open-deveco/deveco-toolbox

💡 安装完成后,请重新使用本技能。
```

**验证成功后继续执行后续步骤**。

---

#### 1. 项目分析

首先分析项目结构和配置:

**关键配置文件**:

- `build-profile.json5` - 项目级构建配置
- `entry/build-profile.json5` - 模块级构建配置
- `module.json5` - 模块配置
- `oh-package.json5` - 依赖配置

#### 2. 获取源文件列表

使用 Glob 工具搜索项目中的 ETS 文件:

```bash
# 搜索所有 .ets 文件
**/*.ets

# 排除目录
- oh_modules/
- build/
- .preview/
```

#### 3. 执行静态语法检查

调用 MCP 工具进行 ArkTS 静态语法检查:

```
mcp_codegenie-mcp_check_ets_files
参数: files - ETS 文件路径列表
```

**诊断信息类型**:

| 错误码        | 类型        | 说明                 | 优先级 |
| ------------- | ----------- | -------------------- | ------ |
| 28007         | Warning     | 权限警告             | P2     |
| 6133          | Warning     | 未使用的变量/符号    | P2     |
| 6387          | Information | 使用了废弃的 API     | P1     |
| addTryCatch   | Warning     | 需要异常处理         | P2     |
| addAsyncCatch | Warning     | 异步函数需要异常处理 | P2     |
| 其他          | Error       | 语法错误/类型错误    | P0     |

#### 4. 错误修复策略

根据错误类型采取不同的修复策略:

**P0 - 必须修复(阻止编译)**:

- 语法错误:缺少分号、括号不匹配
- 类型错误:类型不匹配
- 未定义的变量/函数
- 导入错误

**P1 - 强烈建议修复**:

- 废弃 API:查找替代 API,应用迁移方案

**P2 - 可选优化**:

- 未使用变量:删除或使用下划线前缀
- 异常处理:添加 try-catch

**详细修复示例**: 参考 [error-fixing-examples.md](references/error-fixing-examples.md)

#### 5. 构建项目

使用 MCP 工具构建项目:

```
mcp_codegenie-mcp_build_project
参数:
  - buildTarget: "hap" 或 "app"
  - buildMode: "debug" 或 "release"
  - product: "default" (可选)
  - module: "entry@default" (可选)
```

**构建目标选择**:

- `hap` - 生成单个 HAP 包(用于测试/调试)
- `app` - 生成 APP 包(用于发布)

#### 6. 构建错误处理

如果构建失败,分析错误信息:

**常见构建错误**:

1. **依赖问题**: `Error: Cannot find module '@ohos/xxx'` → 安装依赖
2. **资源问题**: `Error: Resource not found` → 检查资源文件
3. **签名问题**: `Error: Signing failed` → 检查签名配置
4. **编译错误**: `Error: ArkTS compiler error` → 返回步骤2重新检查

#### 7. 输出构建产物

构建成功后,产物位置:

```
项目根目录/
├── entry/build/default/outputs/default/entry-default-signed.hap
└── build/outputs/default/{project-name}-default-signed.app
```

**输出示例**: 参考 [output-examples.md](references/output-examples.md)

## 循环修复机制

### 决策树

```
开始构建流程
│
├─ MCP工具可用?
│   ├─ 否 → 提示安装MCP工具 → 终止
│   └─ 是 → 继续
│
├─ 静态检查结果?
│   ├─ 有错误 → 错误类型?
│   │   ├─ P0 语法错误 → 必须修复 → 重新检查
│   │   ├─ P1 废弃 API → 建议修复 → 重新检查
│   │   └─ P2 代码质量 → 可选修复 → 继续构建
│   │
│   └─ 无错误 → 执行构建
│
├─ 构建结果?
│   ├─ 成功 → 输出产物路径 → 完成
│   │
│   └─ 失败 → 错误类型?
│       ├─ 依赖问题 → 安装依赖 → 重新构建
│       ├─ 签名问题 → 提示手动修复 → 终止
│       ├─ 资源问题 → 检查资源文件 → 重新构建
│       └─ 编译错误 → 返回静态检查
│
└─ 重试次数 > 5?
    ├─ 是 → 终止,输出失败报告
    └─ 否 → 继续循环
```

### 最大重试次数

为避免无限循环,设置最大重试次数:

```javascript
const MAX_RETRY_COUNT = 5;
let retryCount = 0;

while (retryCount < MAX_RETRY_COUNT) {
  // 1. 静态检查
  const diagnostics = await checkEtsFiles(files);
  
  // 2. 分析错误
  const errors = filterErrors(diagnostics);
  
  if (errors.length === 0) {
    // 3. 构建项目
    const buildResult = await buildProject();
  
    if (buildResult.success) {
      return { success: true, output: buildResult.output };
    }
  } else {
    // 4. 修复错误
    await fixErrors(errors);
  }
  
  retryCount++;
}

return { success: false, error: 'Max retry count exceeded' };
```

### 错误修复优先级

每次循环按以下优先级修复:

1. **P0 错误** - 必须修复,否则无法编译
2. **P1 错误** - 强烈建议修复,可能影响功能
3. **P2 错误** - 可选优化,不影响编译

### 跳过策略

某些错误可以跳过:

- 权限警告(已正确配置权限)
- 未使用变量(不影响编译)
- 异常处理建议(可选优化)

## 执行清单

### 预检查

- [ ] **验证MCP工具可用性(必需)**
- [ ] 确认项目路径正确
- [ ] 检查 build-profile.json5 配置
- [ ] 确认 SDK 版本兼容性
- [ ] 检查依赖是否安装

### 构建流程

- [ ] 获取所有 ETS 文件列表
- [ ] 执行静态语法检查
- [ ] 分析并修复错误
- [ ] 执行构建命令
- [ ] 验证构建结果
- [ ] 输出构建产物路径

### 后处理

- [ ] 记录构建日志
- [ ] 统计修复的问题数量
- [ ] 提供构建产物信息

## 工具命令参考

### MCP 工具

| 工具名称                                         | 用途                    | 必需参数                  |
| ------------------------------------------------ | ----------------------- | ------------------------- |
| `mcp_codegenie-mcp_check_ets_files`            | ETS 文件静态语法检查    | files: string[]           |
| `mcp_codegenie-mcp_build_project`              | 构建项目                | buildTarget: "hap"\|"app" |
| `mcp_codegenie-mcp_harmonyos_knowledge_search` | 搜索 HarmonyOS 开发文档 | keywords: string[]        |

### 辅助工具

| 工具名称          | 用途         |
| ----------------- | ------------ |
| `Glob`          | 搜索文件     |
| `Read`          | 读取文件内容 |
| `Write`         | 写入文件内容 |
| `SearchReplace` | 编辑文件     |

## 最佳实践

### ✅ 推荐做法

1. **增量构建**:优先使用增量构建提高速度
2. **并行检查**:并行检查多个文件提高效率
3. **错误分类**:按优先级修复错误
4. **日志记录**:记录每次修复的内容
5. **版本控制**:修复前创建备份或提交

### ❌ 避免做法

1. 不要忽略 P0 级别错误
2. 不要无限重试(设置上限)
3. 不要跳过静态检查直接构建
4. 不要在构建过程中修改代码
5. 不要忽略构建警告

## 注意事项

- ⚠️ **本技能依赖 CodeGenie MCP Server 工具,使用前请确保已安装并配置 MCP 服务**
  - 安装方式:https://github.com/open-deveco/deveco-toolbox
- ⚠️ 确保项目路径正确,避免构建错误的项目
- ⚠️ 构建前建议提交代码,以便回滚
- ⚠️ 某些错误需要手动修复,无法自动处理
- ⚠️ 构建时间取决于项目规模和复杂度
- ⚠️ 签名配置需要提前准备好证书文件

## 相关资源

### 参考文档

- [错误修复示例](references/error-fixing-examples.md) - 详细的错误修复代码示例
- [输出示例](references/output-examples.md) - 构建成功和失败的输出示例

### 外部资源

- [CodeGenie MCP Server 安装指南](https://github.com/open-deveco/deveco-toolbox)
- [飞书指导文档](https://my.feishu.cn/wiki/open-deveco/deveco-toolbox)
- [HarmonyOS 构建指南](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-build-app)
- [ArkTS 编译器](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-get-started)
- [HAP 包结构](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hap-package)
- [应用签名配置](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-signing)

Files in this skill

  • SKILL.md11.1 KB
  • references/error-fixing-examples.md4.2 KB
  • references/output-examples.md5.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…