> 🏆 科大讯飞 AstronClaw 养虾挑战赛参赛作品
> 🧠 AI驱动的智能代码审查助手,自动化代码质量、安全和性能分析
AI Code Review Assistant 是一个基于 AstronClaw 平台的智能代码审查技能,通过AI技术自动化分析代码质量、安全漏洞和性能问题,帮助开发者提升代码质量,降低技术债务。
# 在 AstronClaw 平台搜索 "AI Code Review Assistant"
# 或通过 SkillHub 直接安装
# 1. 克隆项目
git clone <repository-url>
cd astronclaw-code-review
# 2. 安装依赖
npm install
# 3. 运行测试
npm test
# 4. 启动开发服务
npm run dev
// 在 AstronClaw 环境中使用
import { CodeReviewAssistant } from 'code-review-assistant';
// 初始化助手
const assistant = new CodeReviewAssistant({
reviewLevel: 'standard',
aiEnabled: true,
includeSecurity: true,
includePerformance: true
});
await assistant.init();
// 执行代码审查
const result = await assistant.reviewCode({
filePath: 'src/main.js',
code: `function example() { /* your code */ }`,
options: {
language: 'javascript'
}
});
// 生成报告
const report = await assistant.generateReport({
reviewResults: result,
format: 'markdown'
});
本技能提供5个核心工具,可在AstronClaw中直接使用:
描述: 质量、安全、性能多维度分析,集成AI智能建议
参数:
filePath (可选): 要审查的文件路径code (可选): 直接提供代码内容options.language: 编程语言(默认: 'javascript')# 使用示例
astronclaw CodeReview --filePath "src/app.js" --options.language "javascript"
描述: 规范检查、复杂度分析、重复代码检测
参数:
filePath (可选): 要扫描的文件路径code (可选): 直接提供代码内容# 使用示例
astronclaw CodeQualityScan --filePath "src/utils.js"
描述: 漏洞检测、敏感信息扫描、依赖安全检查
参数:
filePath (可选): 要审计的文件路径code (可选): 直接提供代码内容# 使用示例
astronclaw SecurityAudit --filePath "src/auth.js"
描述: 瓶颈识别、优化建议、内存使用分析
参数:
filePath (可选): 要分析的文件路径code (可选): 直接提供代码内容# 使用示例
astronclaw PerformanceAnalysis --filePath "src/optimize.js"
描述: 生成Markdown/HTML/JSON格式的详细审查报告
参数:
reviewResults: 审查结果对象format: 报告格式 ('markdown', 'html', 'json')includeDetails: 是否包含详细问题列表(默认: true)# 使用示例
astronclaw GenerateReviewReport --format "markdown" --includeDetails true
{
"reviewLevel": {
"level": "standard",
"includeSecurity": true,
"includePerformance": true
},
"aiSettings": {
"enabled": true,
"provider": "iflytek-spark",
"model": "spark-3.0"
}
}
# AI API配置
IFLYTEK_SPARK_API_KEY=your_api_key
IFLYTEK_SPARK_API_SECRET=your_api_secret
# 审查配置
REVIEW_LEVEL=advanced
AI_ENABLED=true
import { getCodeReviewAssistant } from './src/index.js';
async function example() {
const assistant = getCodeReviewAssistant();
const result = await assistant.reviewCode({
code: `
function processUserData(user) {
// 硬编码API密钥(安全风险)
const apiKey = "sk_live_1234567890";
// SQL拼接(安全风险)
const query = "SELECT * FROM users WHERE name = '" + user.name + "'";
// 循环中字符串拼接(性能问题)
let output = "";
for (let i = 0; i < 1000; i++) {
output += user.name + "-" + i;
}
return { query, output };
}
`,
options: {
language: 'javascript'
}
});
console.log('审查结果:', result.summary);
console.log('总体评分:', result.summary.overallScore);
// 生成报告
const report = await assistant.generateReport({
reviewResults: result,
format: 'html'
});
// 保存报告到文件
require('fs').writeFileSync('code-review-report.html', report.content);
}
const fs = require('fs');
const path = require('path');
async function reviewProject(projectPath) {
const assistant = getCodeReviewAssistant();
const files = fs.readdirSync(projectPath)
.filter(file => file.endsWith('.js') || file.endsWith('.ts'))
.map(file => path.join(projectPath, file));
const results = [];
for (const file of files) {
console.log(`审查文件: ${file}`);
const result = await assistant.reviewCode({
filePath: file
});
results.push({
file,
score: result.summary.overallScore,
issues: result.analysis.quality.issues.length +
(result.analysis.security?.issues?.length || 0) +
(result.analysis.performance?.issues?.length || 0)
});
}
// 生成项目总览报告
const projectSummary = {
totalFiles: results.length,
averageScore: results.reduce((sum, r) => sum + r.score, 0) / results.length,
totalIssues: results.reduce((sum, r) => sum + r.issues, 0),
files: results
};
console.log('项目审查完成:', projectSummary);
return projectSummary;
}
# 运行所有测试
npm test
# 运行特定测试
node test/basic.test.js
┌─────────────────────────────────────────────┐
│ AstronClaw Platform │
├─────────────────────────────────────────────┤
│ AI Code Review Assistant Skill │
│ ┌─────────────────────────────────────┐ │
│ │ Core Engine │ │
│ │ ┌─────────┐ ┌─────────┐ ┌───────┐ │ │
│ │ │ Tool │ │ AI │ │ Report│ │ │
│ │ │ System │ │ Engine │ │ Gen │ │ │
│ │ └─────────┘ └─────────┘ └───────┘ │ │
│ └─────────────────────────────────────┘ │
│ ┌─────────────────────────────────────┐ │
│ │ Analysis Modules │ │
│ │ • Code Quality │ │
│ │ • Security Audit │ │
│ │ • Performance Analysis │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
astronclaw-code-review/
├── SKILL.md # 本文件
├── README.md # 详细文档
├── package.json # 项目配置
├── skill.json # AstronClaw技能配置
├── src/
│ ├── index.js # 主入口文件
│ ├── tool-system/ # 工具系统框架
│ └── tools/ # 5大核心工具
├── test/
│ └── basic.test.js # 功能测试
└── examples/ # 使用示例
要添加新的分析工具:
src/tools/ 目录下创建新工具文件static async execute(args, context) 方法src/index.js 的 registerCoreTools() 方法中注册工具skill.json 中的 capabilities.tools 列表git checkout -b feature/awesome-feature)git commit -m 'Add awesome feature')git push origin feature/awesome-feature)本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
让每一行代码都经得起审查,让每一次提交都充满信心
共 1 个版本
暂无安全检测报告