npm package: @newstarzj/cann-review
Description: CANN 代码审查技能 - 自动分析 PR 代码变更，检查内存泄漏、安全漏洞和可读性
Author: newstarzj
Latest version: 3.3.2

# CANN Code Review Skill 🔍

[![npm version](https://badge.fury.io/js/@newstarzj/cann-review.svg)](https://badge.fury.io/js/@newstarzj/cann-review)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

🤖 **自动化代码审查技能 - 专为 CANN 项目设计**

自动分析 GitCode PR 代码变更，检查内存泄漏、安全漏洞和可读性，生成结构化报告并发布评论。

## ✨ 核心功能

- 🚀 **自动分析代码变更** - 使用 GitCode API 获取 PR 信息
- 🔍 **全面质量检查** - 内存泄漏、安全漏洞、代码可读性
- 📊 **结构化报告** - 清晰展示问题和改进建议
- 💬 **自动发布评论** - 直接发布到 GitCode PR
- ✅ **智能 LGTM** - 中低风险自动打上 `/lgtm` 标记

## 📦 安装

### 方式 1: npx 直接使用（推荐）

无需安装，直接运行：

```bash
npx @newstarzj/cann-review
```

### 方式 2: 全局安装

```bash
npm install -g @newstarzj/cann-review
cann-review
```

### 方式 3: 在 OpenCode 中使用

将此技能复制到 OpenCode 的 skills 目录：

```bash
# OpenCode 默认路径
cp -r ./ ~/.opencode/skills/cann-review/
```

## 🚀 快速开始

### 1. 配置 GitCode API Token

```bash
# 获取 Token: https://gitcode.com/setting/token-classic
export GITCODE_API_TOKEN=your_token_here
```

### 2. 使用技能

在 OpenCode 中：

```
审查这个 PR: https://gitcode.com/cann/runtime/merge_requests/628
```

或通过命令行：

```bash
npx @newstarzj/cann-review "https://gitcode.com/cann/runtime/merge_requests/628"
```

## 📖 使用示例

### 基本用法

```
审查这个 PR: https://gitcode.com/cann/runtime/merge_requests/628
```

### 仅检查安全问题

```
审查这个 PR: https://gitcode.com/cann/runtime/merge_requests/628
只检查安全漏洞
```

### 禁用自动 LGTM

```
审查这个 PR: https://gitcode.com/cann/runtime/merge_requests/628
不要自动打 lgtm
```

## 🎯 审查报告示例

```markdown
## 🤖 CANN 代码审查报告

**PR**: #628 - Fix memory leak in buffer allocation
**严重性**: ✅ Low
**审查时间**: 2026-03-12 21:30

---

### 📊 审查结论

**✅ 建议合入**

- **严重性**: Low
- **代码质量**: 良好
- **内存安全**: ✅ 无风险
- **安全性**: ✅ 无漏洞

代码质量良好，修复了内存泄漏问题，建议合入。

---

### 🔍 详细检查

#### 1. 内存安全 ✅
- **内存泄漏**: 已修复
- **指针操作**: 安全
- **资源管理**: RAII 模式

#### 2. 安全性 ✅
- **边界检查**: 完整
- **输入验证**: 完整
- **潜在漏洞**: 无

#### 3. 可读性 ✅
- **代码清晰度**: 良好
- **命名规范**: 符合
- **注释完整性**: 部分

---

### 💡 改进建议

1. **文档**: 为新增的内存管理类添加详细注释
2. **测试**: 增加边界条件的单元测试

---

### ✅ 代码亮点

- 使用 RAII 管理资源，避免内存泄漏
- 错误处理完整，异常路径安全
- 代码结构清晰，易于维护

---

**总体评价**: 高质量的内存管理修复，建议合入。
```

## ⚙️ 配置选项

| 选项 | 说明 | 默认值 |
|------|------|--------|
| `pr_url` | PR 页面链接（必需） | - |
| `focus_areas` | 审查重点 (memory/security/readability/all) | all |
| `auto_lgtm` | 中低风险自动 LGTM | true |

## 🔧 高级配置

创建配置文件 `~/.cann-review/config`：

```bash
# GitCode API Token
GITCODE_API_TOKEN=your_token_here

# 审查超时时间（秒）
REVIEW_TIMEOUT=300

# 最大文件数
MAX_FILES=100
```

## 📋 审查标准

### 严重程度判定

| 等级 | 条件 | 是否合入 | LGTM |
|------|------|---------|------|
| ✅ Low | 仅有建议性改进 | 可以 | 自动 |
| ⚠️ Medium | 有一般性问题 | 建议修改后 | 自动 |
| ❌ High | 有严重问题 | 需要修改 | 不发布 |
| 🔴 Critical | 有安全漏洞或严重内存问题 | 需要修改 | 不发布 |

### 检查项

#### 内存安全
- 动态内存分配/释放配对
- 异常路径资源释放
- RAII 模式使用
- 容器内存管理

#### 安全性
- 空指针检查
- 数组边界检查
- 安全函数使用
- 整数溢出检查

#### 可读性
- 命名清晰度
- 注释完整性
- 代码结构
- 风格一致性

## 🛠️ 开发

```bash
# 克隆仓库
git clone https://gitcode.com/your-repo/cann-review.git

# 安装依赖
npm install

# 测试
npm test

# 发布
npm publish
```

## 📄 License

MIT License - 详见 [LICENSE](LICENSE) 文件

## 🤝 贡献

欢迎提交 Issue 和 Pull Request！

## 📮 联系方式

- GitCode: https://gitcode.com/your-repo/cann-review
- Email: openclaw@gitcode.com

---

**Made with ❤️ by OpenClaw Team**