360 Secure SkillHub
360 安全技能中心

Code Complexity Analyzer

核心功能:支持Python、JavaScript/TypeScript、Go代码,按函数度量圈复杂度、认知复杂度等5种指标,可自定义阈值,划分4级风险等级,支持文本、JSON、Markdown三种输出格式。典型场景:代码质量分析、筛选重构候选函数、设置CI质量门禁、生成复杂度报告。输入为指定目录或文件,可通过参数定制规则,输出对应格式结果并返回适配CI的退出码。

charlie-morrison
charlie-morrison
热度 55.97
最近更新 2026-05-11 17:42:01
分类:开发依赖:代码执行应用场景:代码审查 / 报告撰写 / DevOps

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add code-complexity-analyzer
Metadata
name
code-complexity-analyzer
description
Measure cyclomatic complexity, cognitive complexity, and structural metrics for Python, JavaScript/TypeScript, and Go code. Use when analyzing code quality, finding complex functions, setting CI quality gates, reviewing code for refactoring candidates, or generating complexity reports. Supports per-function metrics, configurable thresholds, risk levels, and multiple output formats (text, JSON, markdown).

Code Complexity Analyzer

Measure cyclomatic, cognitive, and structural complexity per function. Pure Python, no dependencies.

Quick Start

# Analyze a directory
python3 scripts/analyze_complexity.py src/

# Analyze specific files
python3 scripts/analyze_complexity.py app.py utils.py

# Show all functions (not just violations)
python3 scripts/analyze_complexity.py src/ --verbose

# Custom thresholds
python3 scripts/analyze_complexity.py src/ --cc 15 --cog 20 --max-lines 80

Output Formats

python3 scripts/analyze_complexity.py src/ --format text      # human-readable (default)
python3 scripts/analyze_complexity.py src/ --format json       # CI/tooling
python3 scripts/analyze_complexity.py src/ --format markdown   # reports

Supported Languages

  • Python (.py)
  • JavaScript (.js, .jsx, .mjs, .cjs)
  • TypeScript (.ts, .tsx)
  • Go (.go)

Metrics

Metric Description Default Threshold
Cyclomatic (CC) Independent execution paths ≤10
Cognitive (COG) Perceived difficulty to understand (nesting-weighted) ≤15
Lines Function length ≤50
Params Parameter count ≤5
Nesting Max nesting depth ≤4

Risk Levels

  • 🟢 Simple — CC≤5, COG≤8
  • 🟡 Low — CC≤10, COG≤15
  • 🟠 Moderate — CC≤20, COG≤25
  • 🔴 High — CC>20 or COG>25

Options

--cc N           Cyclomatic threshold (default: 10)
--cog N          Cognitive threshold (default: 15)
--max-lines N    Function length threshold (default: 50)
--max-params N   Parameter count threshold (default: 5)
--max-nesting N  Nesting depth threshold (default: 4)
--exclude DIR    Additional directories to exclude
--verbose, -v    Show all functions, not just violations

Auto-excluded: node_modules, .git, __pycache__, venv, dist, build.

Exit Codes

  • 0 — no violations
  • 1 — violations found (functions exceed CC or COG thresholds)
  • 2 — no analyzable files found