Skip to content
Back to skills

Code Quality

ASecurity

Flutter 项目代码质量检测和修复,包括 Dart 代码分析、格式化、测试。当用户提到"代码检查"、"分析"、"格式化"、"代码风格"、"质量检测"、"测试"时使用此 skill。

  • 207 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added February 7, 2026
code-qualitytypescriptbashsqlgitapici/cd

Works with

  • api

Security analysis

A100/100

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

Scanned February 12, 2026

npx -y skills add NeverSight/skills_feed --skill code-quality --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Code Quality?

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

Security grade badge for Code Quality
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/neversight-code-quality/badge)](https://www.skillsdirectory.com/skills/neversight-code-quality)

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: code-quality
description: Flutter 项目代码质量检测和修复,包括 Dart 代码分析、格式化、测试。当用户提到"代码检查"、"分析"、"格式化"、"代码风格"、"质量检测"、"测试"时使用此 skill。
---

# Flutter 代码质量检测

确保 Flutter/Dart 代码符合项目规范,自动检测和修复问题。

## 🤖 使用子代理执行(推荐)

**代码质量检查可能产生大量输出,建议通过子代理执行**

### 为什么使用子代理

代码质量检查的输出特点:

- ✅ **通过时**:输出简洁(几行)
- ❌ **失败时**:可能产生大量错误信息
  - Dart 分析错误:5k-10k tokens
  - 格式化问题:2k-5k tokens
  - 测试失败信息:3k-5k tokens
  - **总计可达 10k-20k tokens**

### 使用建议

| 场景                      | 建议      | 原因                   |
| ------------------------- | --------- | ---------------------- |
| 完整质量检查              | 🤖 子代理 | 可能有大量错误需要修复 |
| 单项检查(如 analyze)    | 🤖 子代理 | 错误输出可能很多       |
| 格式化代码 (`dart format`) | 📝 主窗口 | 输出简洁               |
| 快速检查(确定无错误)    | 📝 主窗口 | 输出少                 |

### 子代理执行示例

```typescript
Task({
  subagent_type: 'general-purpose',
  description: '运行 Flutter 代码质量检查',
  prompt: `
运行完整代码质量检查:
1. 执行 flutter analyze, dart format, flutter test
2. 如有错误,分析并修复
3. 再次验证直到全部通过
4. 返回最终检查结果摘要

遵循 .claude/skills/code-quality/SKILL.md 中的规范。
  `,
})
```

---

## 检测工具

### 1. Dart Analyzer - 代码分析

**配置**: `analysis_options.yaml`

**主要规则**:

- Dart/Flutter 语法规范
- 类型安全检查
- 未使用变量/导入检测
- 命名规范检查
- 空安全检查

**命令**:

```bash
flutter analyze      # 分析整个项目
dart analyze lib/    # 分析指定目录
```

### 2. Dart Format - 代码格式化

**格式规则**:

- 2 空格缩进
- 行宽 80 字符(可配置)
- 自动整理导入语句

**命令**:

```bash
dart format .                # 格式化所有文件
dart format lib/ test/       # 格式化指定目录
dart format --set-exit-if-changed .  # 检查格式(CI用)
```

### 3. Flutter Test - 单元测试

**测试类型**:
- 单元测试 (Unit Tests)
- Widget 测试 (Widget Tests)
- 集成测试 (Integration Tests)

**命令**:

```bash
flutter test                    # 运行所有测试
flutter test test/unit/         # 运行指定目录测试
flutter test --coverage         # 生成覆盖率报告
flutter test --reporter=expanded  # 详细输出
```

### 4. Pub 依赖检查

**命令**:

```bash
flutter pub outdated        # 检查过期依赖
flutter pub upgrade         # 升级依赖
dart pub global run pana .  # 包质量评分(发布包时)
```

---

## 完整质量检查

运行所有检测:

```bash
# 1. 代码分析
flutter analyze

# 2. 格式检查
dart format --set-exit-if-changed .

# 3. 运行测试
flutter test

# 4. 检查依赖
flutter pub outdated
```

---

## 安全性检查清单

### 敏感信息检查

手动检查代码中是否包含:

- ❌ 硬编码的 API 密钥、Access Token
- ❌ 硬编码的密码、Secret Key
- ❌ 个人身份信息(PII)
- ❌ 内部 URL、IP 地址
- ✅ 使用环境变量或配置文件

### 常见安全漏洞

| 漏洞类型   | 检查方法            | 预防措施                      |
| ---------- | ------------------- | ----------------------------- |
| SQL 注入   | 检查 API 参数拼接   | 后端使用参数化查询            |
| 敏感操作   | 检查权限验证        | 删除/修改操作需要权限检查     |
| 数据泄露   | 搜索 `print`/`log`  | 移除或脱敏敏感日志            |
| 本地存储   | 检查 SharedPreferences | 加密敏感数据                  |
| 网络请求   | 检查 HTTP 使用      | 强制使用 HTTPS                |

### 依赖安全

定期检查:

```bash
flutter pub outdated
dart pub upgrade --dry-run
```

处理建议:

- **Critical/High**:立即升级
- **Moderate**:评估影响,计划升级
- **Low**:可选升级

---

## 性能检查清单

### 代码性能

| 检查项     | 标准               | 工具              |
| ---------- | ------------------ | ----------------- |
| 文件大小   | 单文件 < 500 行    | `wc -l <file>`    |
| Widget 嵌套 | 嵌套层级 < 10      | 手动检查 Widget 树 |
| 列表优化   | 使用 ListView.builder | 代码审查          |
| 状态管理   | 避免过度 setState  | Flutter DevTools  |
| 异步操作   | 正确处理 async/await | Dart Analyzer     |

### 构建性能

```bash
# Android APK 大小检查
flutter build apk --release
ls -lh build/app/outputs/flutter-apk/

# iOS 构建大小检查
flutter build ios --release
```

检查项:

- APK < 50MB(未分包)
- 移除未使用的资源
- 启用代码混淆和压缩

### 运行时性能

使用 Flutter DevTools 检查:

```bash
flutter run --profile
# 打开 DevTools 查看性能
```

检查要点:

- 避免不必要的 rebuild
- 使用 const 构造函数
- 列表使用 ListView.builder
- 避免在 build 方法中创建大对象

---

## 自动化流程

### Pre-commit Hook

可配置 Git Hook 在提交前运行:

```bash
# .git/hooks/pre-commit
#!/bin/bash
flutter analyze
dart format --set-exit-if-changed .
flutter test
```

### CI/CD 集成

```yaml
# .github/workflows/flutter.yml 示例
- name: Analyze
  run: flutter analyze
  
- name: Format Check
  run: dart format --set-exit-if-changed .
  
- name: Test
  run: flutter test --coverage
```

## 常见问题修复

### Dart Analyzer 错误

```dart
// ❌ 错误:未使用的导入
import 'package:flutter/material.dart';
import 'package:unused/unused.dart';

// ✅ 修复:移除未使用的导入
import 'package:flutter/material.dart';
```

### 格式问题

```dart
// ❌ 错误:格式不规范
class MyWidget extends StatelessWidget{
@override
Widget build(BuildContext context){
return Container();}
}

// ✅ 修复:运行 dart format
class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}
```

### 提交信息

```bash
# ❌ 错误
git commit -m "修复bug"

# ✅ 正确
git commit -m "fix: 修复登录页面验证问题"
git commit -m "feat(ui): 添加用户头像上传功能"
```

## 使用场景

1. **编写代码时**: Claude 会提示不符合规范的代码
2. **提交前**: 运行质量检查确保代码符合规范
3. **CI/CD**: 在流水线中自动运行检查

Files in this skill

  • SKILL.md6.6 KB
  • description_cn.txt213 B
  • description_de.txt196 B
  • description_en.txt213 B
  • description_es.txt214 B
  • description_fr.txt217 B
  • description_ja.txt320 B
  • description_ko.txt226 B
  • description_tw.txt213 B

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…