用途:测量并报告代码复杂度指标,用于识别重构目标、跟踪代码库健康趋势、审查大型 PR 中的复杂度热点,以及为团队设定复杂度预算。
主要能力:计算圈复杂度(CCN)、认知复杂度、NLOC、函数长度、嵌套深度(ND)、参数数量(PARAM)等指标,并按文件与函数排序找出热点。报告包含阈值标记(默认 10)以及低/中/高分布统计。
使用方式:通过命令 /code:complexity 调用,支持参数 $1 指定分析路径(默认当前目录)、--threshold 设置阈值(默认 10)、--format 选择输出格式(summary、detailed、json)。核心原则是让工具计算指标而非手工计数。优先使用语言原生工具:Python 用 radon,Rust 用 cargo clippy,JS/TS 在已有 ESLint 配置时用 ESLint complexity 规则;其余情况统一用 lizard 作为后备,覆盖 JS/TS、Go、Python、Rust、C/C++、Java 等。
必要命令:安装 lizard 使用 uv tool install lizard(替代方式 mise use -g pipx:lizard)。lizard 警告模式:lizard -C 10 --warnings_only .;完整机器可读指标:lizard --csv .;限定语言如 lizard -l go -C 10 --warnings_only .。Python 圈复杂度:radon cc ${1:-.} -s -a --min B;可维护性:radon mi ${1:-.} -s。Rust:cargo clippy -- -W clippy::cognitive_complexity。JS/TS 在配置 ESLint 时:npx eslint --rule '{"complexity":["warn",1]}' --format json .。lizard CSV 列顺序为 NLOC、CCN、token、PARAM、length、location、file、function、long_name、start_line、end_line。
适用场景与限制:适用于重构规划、代码健康跟踪与复杂度预算设定;但对于查找特定反模式、完整代码审查、重复代码检测或配置 lint 规则,应改用其他技能。复杂度工具未安装时建议安装 lizard 或 radon。资料未提供具体定价、平台限制或效果数据。