name: static-code-analyzer description: 对代码库进行深度静态分析,评估代码质量、复杂度和迁移就绪度 allowed-tools: [“Bash”, “Read”, “Write”, “Grep”, “Glob”, “Edit”]
静态代码分析器技能
对代码库执行全面的静态分析,以评估代码质量、复杂度指标和迁移就绪度。该技能集成了行业标准工具,为迁移规划提供可操作的见解。
目的
实现对代码库的深度静态分析,用于:
- 代码质量评估
- 复杂度测量
- 迁移就绪度评估
- 技术债务量化
- 安全漏洞扫描(SAST)
能力
1. 圈复杂度测量
- 分析控制流复杂度
- 识别高复杂度函数/方法
- 按模块/包生成复杂度报告
- 跟踪复杂度随时间的变化趋势
2. 代码重复检测(克隆检测)
- 检测完全相同的代码克隆
- 识别近似重复和结构克隆
- 计算重复百分比
- 映射克隆关系
3. 死代码识别
- 查找不可达代码路径
- 识别未使用的函数/方法
- 检测孤立的导入和导出
- 标记过时的功能标志
4. 安全漏洞扫描(SAST)
- 扫描常见安全反模式
- 识别注入漏洞
- 检查硬编码密钥
- 评估认证/授权模式
5. 可维护性指数计算
- 计算综合可维护性分数
- 评估代码可读性指标
- 评估文档覆盖率
- 测量API表面复杂度
6. 编码标准合规性
- 检查是否符合语言特定风格指南
- 验证命名约定
- 验证结构模式
- 评估最佳实践遵循情况
工具集成
当可用时,此技能可以利用以下外部工具:
| 工具 | 用途 | 集成方法 |
|---|---|---|
| SonarQube | 全面的代码质量 | MCP服务器/API |
| CodeClimate | 质量指标 | API |
| ESLint | JavaScript/TypeScript代码检查 | CLI |
| PMD | Java静态分析 | CLI |
| FindBugs/SpotBugs | Java错误检测 | CLI |
| Checkstyle | Java代码标准 | CLI |
| ast-grep | 基于AST的模式匹配 | MCP服务器/CLI |
| Semgrep | 安全导向的SAST | CLI |
使用方式
基本分析
# 调用技能进行基本分析
# 该技能将自动检测语言并应用适当的分析器
# 预期输入:
# - targetPath:要分析的代码库或目录路径
# - analysisScope:'full' | 'quick' | 'security' | 'quality'
# - outputFormat:'json' | 'markdown' | 'html'
分析工作流程
-
发现阶段
- 检测存在的编程语言
- 识别项目结构和构建系统
- 检查现有配置文件
-
工具选择
- 根据语言选择适当的分析器
- 配置工具特定设置
- 验证工具可用性
-
分析执行
- 运行选定的分析器
- 收集指标和发现
- 聚合结果
-
报告生成
- 整合发现
- 计算综合分数
- 生成可操作建议
输出模式
{
"analysisId": "string",
"timestamp": "ISO8601",
"target": {
"path": "string",
"languages": ["string"],
"filesAnalyzed": "number",
"linesOfCode": "number"
},
"metrics": {
"complexity": {
"average": "number",
"max": "number",
"distribution": {}
},
"duplication": {
"percentage": "number",
"cloneCount": "number",
"duplicatedLines": "number"
},
"maintainability": {
"index": "number",
"grade": "A-F"
},
"technicalDebt": {
"estimatedHours": "number",
"ratio": "number"
}
},
"findings": [
{
"type": "string",
"severity": "critical|high|medium|low|info",
"file": "string",
"line": "number",
"message": "string",
"rule": "string",
"recommendation": "string"
}
],
"migrationReadiness": {
"score": "number (0-100)",
"blockers": [],
"risks": [],
"recommendations": []
}
}
与迁移流程的集成
此技能与以下代码迁移/现代化流程集成:
- legacy-codebase-assessment:用于初始代码库评估的主要工具
- code-refactoring:识别重构目标
- technical-debt-remediation:量化和优先处理债务
配置
技能配置文件
在项目根目录创建.static-analyzer.json:
{
"excludePaths": ["node_modules", "dist", "build", ".git"],
"severityThreshold": "medium",
"enabledChecks": {
"complexity": true,
"duplication": true,
"security": true,
"standards": true
},
"customRules": [],
"reportFormats": ["json", "markdown"]
}
MCP服务器集成
当SonarQube MCP服务器可用时:
// 示例MCP工具调用
{
"tool": "sonarqube_analyze",
"arguments": {
"project_key": "my-project",
"sources": "./src",
"language": "javascript"
}
}
当ast-grep MCP服务器可用时:
// 示例AST模式搜索
{
"tool": "ast_grep_search",
"arguments": {
"pattern": "console.log($$$)",
"language": "javascript",
"path": "./src"
}
}
最佳实践
- 增量分析:对于大型代码库,使用增量分析以减少时间
- 基线建立:在迁移前创建基线指标
- 阈值配置:为团队标准设置适当的阈值
- 趋势跟踪:随时间跟踪指标以衡量改进
- 集成测试:针对已知问题验证分析结果
相关技能
code-smell-detector:专门的代码异味检测technical-debt-quantifier:债务测量和优先级排序test-coverage-analyzer:覆盖率差距识别
相关代理
legacy-system-archaeologist:使用此技能进行代码库探索migration-readiness-assessor:使用此技能进行就绪度评分technical-debt-auditor:使用此技能进行债务评估