| name | code-review |
| description | 使用 Minion 框架进行智能代码审查 |
| license | MIT |
| version | 1.0.0 |
| category | minion-integration |
Code Review Skill
能力概述
此技能提供基于 Minion 的代码审查能力,特别关注业务规则符合性、文档一致性、类型安全等。与项目文档系统深度集成,确保代码质量。
核心功能
- 业务规则符合性检查:验证计算公式是否符合文档定义
- 文档一致性验证:检查 @doc 标签和文档引用
- 类型安全验证:TypeScript 类型检查
- 代码规范检查:Domain 层纯函数验证
工作流程
代码变更检测
↓
Claude Code 调用此 Skill
↓
提取代码和相关文档
↓
调用 Minion 进行审查
↓
生成审查报告
↓
显示问题和建议
使用示例
场景:审查 Domain 层代码
const codeChanges = await extractModifiedFiles('src/domain/');
const relatedDocs = await findRelatedDocs(codeChanges);
import { callMinionAPI } from '@/lib/minion-client';
const review = await callMinionAPI({
endpoint: '/api/review',
method: 'POST',
body: {
files: codeChanges,
documents: relatedDocs,
checks: {
businessRules: true,
docConsistency: true,
docTags: true,
typeSafety: true
}
}
});
if (review.criticalIssues > 0) {
blockCommit(review.issues);
} else {
showReviewReport(review);
}
集成方式
与文档系统集成
import { docsIndex, codeIndex } from '@/lib/indices';
const consistencyCheck = await callMinionAPI({
endpoint: '/api/check-consistency',
method: 'POST',
body: {
codeFile: 'src/domain/time.ts',
documentedIn: codeIndex['src/domain/time.ts'].documentedIn
}
});
Pre-commit Hook
echo "🔍 Running code review..."
pnpm typecheck || exit 1
pnpm docs:check || exit 1
if [ -n "$ENABLE_MINION_REVIEW" ]; then
pnpm minion:review || exit 1
fi
echo "✅ Code review passed"
启用 Minion 审查:
export ENABLE_MINION_REVIEW=true
git commit -m "feat: add new feature"
审查检查项
1. 业务规则符合性
检查内容:
- 计算公式是否符合 @doc 引用的文档定义
- 边界条件处理是否正确(如除零)
- null 值处理是否符合规范(返回 null 而非 0)
示例:
export function calculateAchievementRate(
actual: number,
target: number
): number | null {
if (target === 0) return null;
return actual / target;
}
if (target === 0) return 0;
2. 文档一致性
检查内容:
- @doc 标签是否存在
- 引用的文档是否存在
- 文档内容是否与代码同步
示例:
export function calculateGrowthRate(...) { }
3. 类型安全
检查内容:
- 函数签名是否完整
- 返回值类型是否准确
- null 处理是否正确
- 避免使用 any 类型
示例:
function calculateTimeProgress(
currentMonth: number,
mode: 'linear' | 'weighted' | '2025-actual'
): number | null {
}
function calculateTimeProgress(mode: any): any {
}
4. 代码规范
检查内容:
- Domain 层是否纯函数(无副作用)
- 是否有文件 I/O、网络请求
- 是否符合分层架构
示例:
export function calculateAchievementRate(...) {
}
export function calculateAchievementRate(...) {
fetch('/api/data');
localStorage.setItem(...);
}
数据格式
输入格式
{
"files": [
{
"path": "src/domain/time.ts",
"content": "export function calculateTimeProgress() {...}"
}
],
"documents": [
{
"path": "docs/business/指标定义规范.md",
"content": "..."
}
],
"checks": {
"businessRules": true,
"docConsistency": true,
"docTags": true,
"typeSafety": true
}
}
输出格式
{
"summary": {
"filesReviewed": 5,
"issuesFound": 12,
"criticalIssues": 2
},
"issues": [
{
"file": "src/domain/time.ts",
"line": 25,
"type": "missing-doc-tag",
"severity": "error",
"message": "Function calculateTimeProgress missing @doc tag",
"suggestion": "Add @doc docs/business/指标定义规范.md:26"
},
{
"file": "src/domain/achievement.ts",
"line": 42,
"type": "null-safety-violation",
"severity": "warning",
"message": "Returning 0 instead of null when target is 0",
"suggestion": "Return null to comply with null-safety specification"
}
],
"metrics": {
"docCoverage": 0.92,
"typeSafetyScore": 0.95,
"businessRuleCompliance": 0.88
}
}
最佳实践
1. 审查时机
pnpm typecheck
pnpm docs:check
ENABLE_MINION_REVIEW=true git commit
2. 问题分级
| 级别 | 类型 | 处理方式 |
|---|
| Critical | 类型错误、文档缺失 | 阻止提交 |
| Warning | 命名不规范、注释不完整 | 建议修复 |
| Info | 优化建议 | 可选修复 |
3. 修复流程
const fixed = await autoFixCode(issue);
await writeFile(issue.file, fixed);
const suggestion = generateDocTag(functionInfo);
console.log('建议添加:', suggestion);
console.log('请手动审查业务逻辑:', issue.message);
4. 持续改进
const patterns = await analyzeReviewHistory();
console.log('常见问题:', patterns.top(5));
await updateReviewRules(patterns);
const lowDocFiles = review.metrics.lowDocCoverage;
await improveDocumentation(lowDocFiles);
参考文档
项目文档
- @doc docs/.meta/ai-context.md
- @doc docs/development/开发指南.md
- @doc docs/architecture/文档代码索引系统设计.md
代码实现
- @code src/domain/ (Domain 层代码)
- @code docs/.meta/code-index.json (代码索引)
- @code docs/.meta/docs-index.json (文档索引)
相关技能
- @code .claude/.skills/skill-loader/SKILL.md (技能加载器)