.cursor/skills/code-review-report/SKILL.md
全项目代码审查 → 并行 Review → 汇总发现 → 生成报告(只审不修)。
MAA (MaaAssistantArknights) 是一个多语言 monorepo,包含核心引擎、多端 GUI、CLI、语言绑定等子项目:
| 模块 | 语言 | 路径 | 子模块? | 构建 |
|---|---|---|---|---|
| MaaCore | C++20 | src/MaaCore/ | 否 | CMake |
| MaaWpfGui | C# / WPF (.NET 10) | src/MaaWpfGui/ | 否 | MSBuild |
| MaaMacGui | Swift / SwiftUI | src/MaaMacGui/ | 是 | Xcode |
| MAAUnified | C# / Avalonia (.NET 10) | src/MAAUnified/ | 是 | dotnet |
| maa-cli | Rust | src/maa-cli/ | 是 | Cargo |
| MaaUtils | C++ | src/MaaUtils/ | 是 | CMake |
| MaaWineBridge | C | src/MaaWineBridge/ | 否 | CMake |
| MaaUpdater | C++ (Win) | src/MaaUpdater/ | 否 | CMake |
| 模块 | 语言 | 路径 | 说明 |
|---|---|---|---|
| Python 绑定 | Python | src/Python/ | ctypes FFI |
| Rust 绑定 | Rust | src/Rust/ | FFI + HTTP server |
| Go 绑定 | Go 1.23 | src/Golang/ | Gin HTTP wrapper |
| Java 绑定 | Kotlin/Java | src/Java/ | JNA + Ktor HTTP/WS |
| Dart 绑定 | Dart | src/Dart/ | Flutter FFI plugin |
| Woolang 绑定 | Woolang | src/Woolang/ | C API wrapper |
| C++ 示例 | C++ | src/Cpp/ | 集成示例 |
| 工具脚本 | Python/C++/Shell | tools/ | 开发维护工具 |
| 任务资源 | JSON | resource/ | 任务定义/模板/OCR |
| 文档站 | Markdown/TS | docs/ | VuePress |
| 公共头文件 | C | include/ | AsstCaller.h 等 |
| 配置文件 | 作用范围 |
|---|---|
.clang-format | C++ (pre-commit 限定 src/MaaCore/**) |
.editorconfig (多层) | 全局 + MaaCore/MaaWpfGui/maa-cli/MaaUtils 各有覆盖 |
rustfmt.toml | Rust (maa-cli) |
.swift-format | Swift (MaaMacGui) |
stylecop.json | C# (MaaWpfGui) |
.prettierrc | JSON/YAML |
analysis_options.yaml | Dart |
.pre-commit-config.yaml | clang-format + Prettier + Ruff + markdownlint |
explore subagent 扫描项目,确认当前有哪些模块/子目录有实质改动或需要关注C++ (MaaCore / MaaUtils / MaaWineBridge / MaaUpdater):
C# (MaaWpfGui):
C# / Avalonia (MAAUnified):
Swift (MaaMacGui):
.swift-format 规范合规Rust (maa-cli):
? 传播链完整性)src/maa-cli/AGENTS.md 的检查项语言绑定 (Python/Rust/Go/Java/Dart/Woolang):
include/AsstCaller.h 公共 API 的一致性Python (tools/):
JSON (resource/):
按优先级批次启动 subagent:
第一批:P0 Unit(3-5 个并行)
第二批:P1 Unit(5-7 个并行)
第三批:P2 Unit(剩余全部)
每个 review subagent 的 prompt 模板:
你是 MAA 项目的代码审查员。审查以下文件,找出:
1. Bug(逻辑错误、边界条件、竞态、崩溃风险)
2. 安全问题(缓冲区溢出、注入、信息泄露、不安全的反序列化)
3. 性能问题(不必要的拷贝、内存分配热点、O(n²) 算法)
4. 跨平台兼容性(平台特定代码未条件编译、路径分隔符硬编码)
5. 可维护性(巨型函数、重复代码、缺少错误处理)
项目语言:{language}
文件范围:{files}
背景:{background}
重点关注:{focus_areas}
输出格式:按严重性排序的问题列表(最多 Top 8)。每个问题包含:
- 严重性:Critical / Major / Minor
- 位置:文件名 + 行号范围
- 问题:一句话描述
- 影响:会导致什么后果
- 建议:修复方向(一句话)
- 代码片段:相关代码(可选,简短引用即可)
收集所有 Unit 的发现,按以下步骤生成报告:
| 分类 | 含义 | 图标 |
|---|---|---|
| 崩溃/安全 | 可导致崩溃或被利用 | 🔴 |
| 可靠性 | 影响功能正确性 | 🟠 |
| 性能 | 影响运行效率 | 🟡 |
| 兼容性 | 跨平台/版本兼容问题 | 🔵 |
| 代码质量 | 可维护性与规范 | ⚪ |
将报告输出到项目根目录的 code-review-report.md,使用以下模板:
# MAA 代码审查报告
> 审查时间:{date}
> 审查范围:{modules_reviewed}
> Review Unit 数量:{unit_count}
## 摘要
| 严重性 | 数量 |
|--------|------|
| 🔴 Critical | {n} |
| 🟠 Major | {n} |
| 🟡 Minor | {n} |
| 总计 | {total} |
| 模块 | Critical | Major | Minor |
|------|----------|-------|-------|
| MaaCore (C++) | {n} | {n} | {n} |
| MaaWpfGui (C#) | {n} | {n} | {n} |
| MaaMacGui (Swift) | {n} | {n} | {n} |
| MAAUnified (C#/Avalonia) | {n} | {n} | {n} |
| maa-cli (Rust) | {n} | {n} | {n} |
| MaaUtils (C++) | {n} | {n} | {n} |
| MaaWineBridge (C) | {n} | {n} | {n} |
| 语言绑定 | {n} | {n} | {n} |
| tools (Python) | {n} | {n} | {n} |
| resource (JSON) | {n} | {n} | {n} |
## 🔴 Critical 问题
### [{序号}] {问题标题}
- **模块**:{module}
- **文件**:`{file}:{line_range}`
- **分类**:{category}
- **描述**:{description}
- **影响**:{impact}
- **建议修复方向**:{suggestion}
{code_snippet(可选)}
---
## 🟠 Major 问题
### [{序号}] {问题标题}
...
## 🟡 Minor 问题
### [{序号}] {问题标题}
...
## 审查覆盖范围
| Review Unit | 模块 | 焦点 | 优先级 | 文件数 |
|-------------|------|------|--------|--------|
| {unit_name} | {module} | {focus} | {priority} | {file_count} |
| ... | ... | ... | ... | ... |
## 附注
- 本报告仅列出发现,未执行任何修复
- 建议按 Critical → Major → Minor 顺序处理
- 部分问题可能需要跨模块协同修复
code-review-report.md,用户可指定其他路径```startLine:endLine:filepath 格式