mcpField
C
code-metrics-analysis

code-metrics-analysis

github.com/aj-geddes测试与质量373458 次安装34 周前更新
代码仓库

关于 code-metrics-analysis

用于衡量和分析代码质量指标的技能,帮助开发者发现复杂度、可维护性问题及改进方向。涵盖 TypeScript、Python、ESLint 与 CI/CD 质量门禁指南。

主要功能

  1. 01分析圈复杂度与认知复杂度
  2. 02统计代码行数和函数数量
  3. 03提供 TypeScript 与 Python 指南
  4. 04支持 CI/CD 质量门禁实践

适用场景

  1. 01评估代码质量并监测技术债
  2. 02筛选重构候选代码
  3. 03在代码审查中参考指标
  4. 04为 CI/CD 设置质量门禁

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill code-metrics-analysis

安装后在 Claude Code 中输入/code-metrics-analysis确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
cicd-quality-gates.md
eslint-plugin-for-complexity.md
python-code-metrics-using-radon.md
typescript-complexity-analyzer.md
scripts/
scaffold-tests.sh
templates/
test-template.js

详细介绍

代码指标分析

目录

概述

衡量并分析代码质量指标,以识别复杂度、可维护性问题和有待改进的方面。

适用场景

  • 代码质量评估
  • 识别适合重构的代码
  • 技术债监控
  • 代码审查自动化
  • CI/CD 质量门禁
  • 团队绩效跟踪
  • 遗留代码分析

快速开始

最小可运行示例:

import * as ts from "typescript";
import * as fs from "fs";

interface ComplexityMetrics {
  cyclomaticComplexity: number;
  cognitiveComplexity: number;
  linesOfCode: number;
  functionCount: number;
  classCount: number;
  maxNestingDepth: number;
}

class CodeMetricsAnalyzer {
  analyzeFile(filePath: string): ComplexityMetrics {
    const sourceCode = fs.readFileSync(filePath, "utf-8");
    const sourceFile = ts.createSourceFile(
      filePath,
      sourceCode,
      ts.ScriptTarget.Latest,
      true,
    );

    const metrics: ComplexityMetrics = {
      cyclomaticComplexity: 0,
      cognitiveComplexity: 0,
// ... (see reference guides for full implementation)

参考指南

references/ 目录中的详细实现:

指南内容
TypeScript Complexity AnalyzerTypeScript 复杂度分析器
Python Code Metrics (using radon)Python 代码指标(使用 radon)
ESLint Plugin for Complexity用于复杂度分析的 ESLint 插件
CI/CD Quality GatesCI/CD 质量门禁

最佳实践

✅ 应该做
  • 随时间监控指标
  • 设置合理的阈值
  • 关注趋势,而非绝对数值
  • 自动收集指标
  • 使用指标指导重构
  • 结合多项指标
  • 在代码审查中纳入指标
❌ 不应该做
  • 将指标作为唯一的质量衡量标准
  • 设置不切实际的阈值
  • 忽略上下文和领域
  • 因指标而惩罚开发人员
  • 只关注一项指标
  • 跳过文档

评论

支持 Markdown