---
description: 全面的Kotlin代码审查，涵盖惯用模式、空安全、协程安全和安全性。调用kotlin-reviewer代理。
---

# Kotlin 代码审查

此命令调用 **kotlin-reviewer** 代理进行全面的 Kotlin 专项代码审查。

## 此命令的功能

1. **识别 Kotlin 变更**：通过 `git diff` 查找修改过的 `.kt` 和 `.kts` 文件
2. **运行构建与静态分析**：执行 `./gradlew build`、`detekt`、`ktlintCheck`
3. **安全扫描**：检查 SQL 注入、命令注入、硬编码的密钥
4. **空安全审查**：分析 `!!` 的使用、平台类型处理、不安全的转换
5. **协程审查**：检查结构化并发、调度器使用、取消操作
6. **生成报告**：按严重性对问题分类

## 使用时机

在以下情况使用 `/kotlin-review`：

* 编写或修改 Kotlin 代码后
* 提交 Kotlin 变更前
* 审查包含 Kotlin 代码的拉取请求时
* 接手新的 Kotlin 代码库时
* 学习 Kotlin 惯用模式时

## 审查类别

### 严重（必须修复）

* SQL/命令注入漏洞
* 无正当理由强制解包 `!!`
* 平台类型空安全违规
* 使用 GlobalScope（违反结构化并发）
* 硬编码的凭证
* 不安全的反序列化

### 高（应该修复）

* 可变状态，而不可变状态即可满足
* 在协程上下文中进行阻塞调用
* 长循环中缺少取消检查
* 对密封类型使用非穷举的 `when`
* 函数过大（>50 行）
* 嵌套过深（>4 层）

### 中（考虑修复）

* 非 Kotlin 惯用写法（Java 风格模式）
* 缺少尾随逗号
* 误用或嵌套作用域函数
* 大型集合链中缺少序列化
* 冗余的显式类型声明

## 运行的自动化检查

```bash
# Build check
./gradlew build

# Static analysis
./gradlew detekt

# Formatting check
./gradlew ktlintCheck

# Tests
./gradlew test
```

## 使用示例

````text
User: /kotlin-review

Agent:
# Kotlin Code Review Report

## Files Reviewed
- src/main/kotlin/com/example/service/UserService.kt (modified)
- src/main/kotlin/com/example/routes/UserRoutes.kt (modified)

## Static Analysis Results
✓ Build: Successful
✓ detekt: No issues
⚠ ktlint: 2 formatting warnings

## Issues Found

[CRITICAL] Force-Unwrap Null Safety
File: src/main/kotlin/com/example/service/UserService.kt:28
Issue: Using !! on nullable repository result
```kotlin
val user = repository.findById(id)!!  // NPE risk
```
Fix: Use safe call with error handling
```kotlin
val user = repository.findById(id)
    ?: throw UserNotFoundException("User $id not found")
```

[HIGH] GlobalScope Usage
File: src/main/kotlin/com/example/routes/UserRoutes.kt:45
Issue: Using GlobalScope breaks structured concurrency
```kotlin
GlobalScope.launch {
    notificationService.sendWelcome(user)
}
```
Fix: Use the call's coroutine scope
```kotlin
launch {
    notificationService.sendWelcome(user)
}
```

## Summary
- CRITICAL: 1
- HIGH: 1
- MEDIUM: 0

Recommendation: ❌ Block merge until CRITICAL issue is fixed
````

## 批准标准

| 状态 | 条件 |
|--------|-----------|
| ✅ 批准 | 无严重或高优先级问题 |
| ⚠️ 警告 | 仅存在中优先级问题（谨慎合并） |
| ❌ 阻止 | 发现严重或高优先级问题 |

## 与其他命令的集成

* 首先使用 `/kotlin-test` 确保测试通过
* 如果构建出错，使用 `/kotlin-build`
* 提交前使用 `/kotlin-review`
* 对于非 Kotlin 专项问题，使用 `/code-review`

## 相关

* 代理：`agents/kotlin-reviewer.md`
* 技能：`skills/kotlin-patterns/`、`skills/kotlin-testing/`
