静态代码分析器 static-code-analyzer

静态代码分析器是一款专业的代码质量评估工具,通过深度静态分析技术对代码库进行全面检测。该工具能够测量代码复杂度、识别重复代码、发现安全漏洞、评估可维护性指数,并提供迁移就绪度评分。支持与SonarQube、ESLint、PMD等主流分析工具集成,适用于代码质量监控、技术债务管理、系统迁移评估等场景。关键词:静态代码分析、代码质量评估、复杂度测量、安全漏洞扫描、技术债务量化、迁移就绪度、代码重复检测、可维护性指数、SAST工具集成、代码审查自动化。

测试 0 次安装 0 次浏览 更新于 2/23/2026

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'

分析工作流程

  1. 发现阶段

    • 检测存在的编程语言
    • 识别项目结构和构建系统
    • 检查现有配置文件
  2. 工具选择

    • 根据语言选择适当的分析器
    • 配置工具特定设置
    • 验证工具可用性
  3. 分析执行

    • 运行选定的分析器
    • 收集指标和发现
    • 聚合结果
  4. 报告生成

    • 整合发现
    • 计算综合分数
    • 生成可操作建议

输出模式

{
  "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"
  }
}

最佳实践

  1. 增量分析:对于大型代码库,使用增量分析以减少时间
  2. 基线建立:在迁移前创建基线指标
  3. 阈值配置:为团队标准设置适当的阈值
  4. 趋势跟踪:随时间跟踪指标以衡量改进
  5. 集成测试:针对已知问题验证分析结果

相关技能

  • code-smell-detector:专门的代码异味检测
  • technical-debt-quantifier:债务测量和优先级排序
  • test-coverage-analyzer:覆盖率差距识别

相关代理

  • legacy-system-archaeologist:使用此技能进行代码库探索
  • migration-readiness-assessor:使用此技能进行就绪度评分
  • technical-debt-auditor:使用此技能进行债务评估

参考资料