archibate/dotfiles-opencode/code-quality-metrics

Claude Code and agent skill by archibate/dotfiles-opencode

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

This skill should be used when the user asks about "code complexity", "cyclomatic complexity", "cognitive complexity", "code metrics", "maintainability index", "code coverage", or when measuring code quality quantitatively. Provides metrics thresholds and measurement techniques.

Install

npx vskill@latest install archibate/dotfiles-opencode/code-quality-metrics

SKILL.md

Code Quality Metrics Guide

Overview

Code quality metrics provide quantitative measures of code characteristics. This skill covers complexity metrics, maintainability indices, and their practical thresholds across different languages.

Complexity Metrics

Cyclomatic Complexity (CC)

Measures the number of linearly independent paths through code.

Calculation: CC = E - N + 2P

  • E = edges in control flow graph
  • N = nodes in control flow graph
  • P = connected components (usually 1)

Simplified: Count decision points + 1

  • Each if, elif, else, for, while, case, catch, &&, ||, ?: adds 1

Thresholds:

RangeRiskAction
1-10LowSimple, well-structured
11-20ModerateMore complex, consider refactoring
21-50HighComplex, difficult to test
>50Very HighUntestable, must refactor
Cognitive Complexity

Measures how difficult code is to understand (introduced by SonarQube).

Key differences from CC:

  • Penalizes nested structures more heavily
  • Doesn't count all decision points equally
  • Focuses on human comprehension

Calculation rules:

  1. +1 for each break in linear flow (if, for, while, switch, catch, ?:)
  2. +1 for each nesting level inside these structures
  3. +1 for binary logical operators (&&, ||)
  4. Recursion adds +1

Thresholds:

RangeAssessment
0-7Easy to understand
8-15Moderate complexity
16-24High complexity, refactor
25+Very high, immediate refactoring

Example:

python
def process(items): # 0
for item in items: # +1 (loop)
if item.active: # +1 (if) +1 (nesting=1)
if item.valid: # +1 (if) +2 (nesting=2)
handle(item)
return items # Total: 6
Halstead Metrics

Based on counting operators and operands:

MetricFormulaMeaning
Vocabularyn = n1 + n2Unique operators + operands
LengthN = N1 + N2Total operators + operands
VolumeV = N × log2(n)Size of implementation
DifficultyD = (n1/2) × (N2/n2)Error-proneness
EffortE = D × VMental effort to understand

Maintainability Metrics

Maintainability Index (MI)

Composite metric combining complexity, size, and comments.

Formula: MI = 171 - 5.2 × ln(V) - 0.23 × CC - 16.2 × ln(LOC)

Thresholds:

RangeMaintainability
85-100High maintainability
65-84Moderate maintainability
0-64Low maintainability
Lines of Code (LOC)
MetricDescriptionThreshold
Physical LOCAll lines including blanks/commentsMethod: <100, Class: <500
Logical LOCExecutable statementsMethod: <30, Class: <200
Comment RatioComments / Total10-30% typical

Coupling Metrics

Afferent Coupling (Ca)

Number of classes that depend on this class.

  • High Ca = Many dependents, changes are risky
Efferent Coupling (Ce)

Number of classes this class depends on.

  • High Ce = Many dependencies, class is fragile
Instability (I)

I = Ce / (Ca + Ce)

  • 0 = Stable (many dependents, few dependencies)
  • 1 = Unstable (few dependents, many dependencies)

Cohesion Metrics

Lack of Cohesion of Methods (LCOM)

Measures how related methods are within a class.

LCOM1: Number of method pairs without shared instance variables

  • 0 = Perfect cohesion
  • High = Low cohesion, consider splitting

LCOM4: Number of connected components in method-field graph

  • 1 = Cohesive class
  • >1 = Multiple responsibilities

Quick Reference Table

MetricToolGoodWarningCritical
CyclomaticESLint, SonarQube≤1011-20>20
CognitiveSonarQube≤1516-24>24
Method LOC-≤3031-50>50
Class LOC-≤300301-500>500
ParametersESLint≤34-5>5
Nesting DepthESLint≤34>4
LCOM4-12>2

Measurement Commands

ESLint Complexity
bash
npx eslint --rule 'complexity: ["error", 10]' src/
SonarQube Analysis
bash
sonar-scanner -Dsonar.projectKey=myproject
Python Radon
bash
radon cc src/ -a -s # Cyclomatic complexity
radon mi src/ -s # Maintainability index

Additional Resources

Reference Files

For detailed measurement techniques:

  • `references/measurement-tools.md` - Tool configurations and usage
  • `references/thresholds-by-language.md` - Language-specific thresholds
Integration with Other Skills

Combine with:

  • solid-principles for structural analysis
  • refactoring-patterns for improvement strategies

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/archibate/dotfiles-opencode/code-quality-metrics/badge)](https://verified-skill.com/skills/archibate/dotfiles-opencode/code-quality-metrics)

Something wrong with this skill or its page? Tell us.