find-complexity

tarafından openshift

Yüksek döngüsel karmaşıklığa, aşırı uzunluğa veya çok fazla parametreye sahip fonksiyonları ve metotları bulur. Kullanıcı karmaşık kod, karmaşıklık bulmayı istediğinde kullanılır.

npx skills add https://github.com/openshift/lightspeed-service --skill find-complexity

Find Complexity Hotspots

Identify functions that are hard to review, test, and maintain.

Rules

  • Report findings, do not refactor. Refactoring is a separate task.
  • Focus on production code (ols/). Skip tests unless explicitly asked.
  • Rank by severity: highest complexity first.

Step 1: Determine Scope

Ask the user:

  • Branch mode: only files changed in the current branch vs main.
  • Full mode: scan the entire ols/ directory.

For branch mode:

git diff --name-only origin/main -- 'ols/' | grep '\.py$'

Step 2: Cyclomatic Complexity

uvx radon cc <target> -s -n C -a

This shows functions with complexity grade C or worse (threshold: 11+).

Grades: A (1-5), B (6-10), C (11-15), D (16-20), E (21-25), F (26+).

Step 3: Maintainability Index

uvx radon mi <target> -s -n B

This shows files with maintainability grade B or worse.

Grades: A (20+, good), B (10-19, medium), C (0-9, poor).

Step 4: Cognitive Complexity

Cognitive complexity weights nesting depth — a 5-deep if scores much higher than 5 sequential ifs.

uvx --with flake8-cognitive-complexity flake8 --select=CCR001 --max-cognitive-complexity=10 <target>

Step 5: Function Length

Find long functions (30+ lines of logic, excluding docstrings and blank lines):

uvx radon raw <target> -s

Also use pylint for method length:

uv run pylint --disable=all --enable=too-many-statements,too-many-branches,too-many-return-statements,too-many-arguments,too-many-locals <target>

Step 6: File Size

Find large files (500+ lines):

wc -l $(find <target> -name '*.py') | sort -rn | head -20

Files over 500 lines are candidates for splitting into focused modules.

Step 7: Classify Findings

For each function found, classify:

CategoryCriteriaAction
SplitHigh complexity + long bodyBreak into smaller functions
SimplifyHigh complexity + short bodyReduce branching (early returns, lookup tables)
ParameterizeToo many arguments (6+)Group into config/dataclass
MonitorGrade C, not growingNote it, revisit if it gets worse
Split fileFile over 500 linesBreak into focused modules

Step 8: Report

For each finding:

  1. File, function name, line number
  2. Complexity grade and score
  3. Number of statements / arguments
  4. Classification (split / simplify / parameterize / monitor)
  5. Brief suggestion

Summary: total hotspots by grade, top 5 worst offenders.

openshift tarafından daha fazla skill

openshift-docs
openshift
OpenShift Container Platform dokümantasyonunu markdown formatında arayın ve okuyun. Kullanıcı OpenShift özellikleri, yapılandırma, kurulum hakkında soru sorduğunda kullanın,…
triage-leaked-infra
openshift
HyperShift CI'den bir AWS VPC veya altyapı setinin silinmesinin güvenli olup olmadığını değerlendirir. Kullanıcı temiz sızdırılmış çıktıyı yapıştırıp 'bunu silebilir miyim?', 'bu…' diye sorduğunda kullanın.
openshift-expert
openshift
OpenShift platform ve Kubernetes uzmanı olup, küme mimarisi, operatörler, ağ oluşturma, depolama, sorun giderme ve CI/CD boru hatları konularında derin bilgiye sahiptir. Kullan…
Konflux Archived PipelineRuns
openshift
Arşivlenmiş Konflux PipelineRun, TaskRun ve pod loglarına KubeArchive üzerinden erişir. Konflux PipelineRun sonuçlarını kontrol ederken, araştırma yaparken otomatik olarak uygulanır…
backport
openshift
Ana daldan bir sürüm dalına commit veya PR'ları geri taşıyın. Kullanıcı backport, cherry-pick veya değişiklikleri dallar arasında taşıma istediğinde veya çözümleme yaparken kullanın.
rebase
openshift
Mevcut dalı temel dalına yeniden temelle, tüm çakışmaları çöz ve lint, i18n ve derlemenin geçtiğini doğrula. Kullanıcı yeniden temelleme, güncelleme veya senkronizasyon istediğinde kullan…
Build CPO Image
openshift
Kontrol düzlemi operatörü konteyner imajını derleyin ve gönderin. Canlı bir kümeye dağıtım gerektiren CPO değişikliklerini test ederken otomatik olarak uygulanır.
raise-pr
openshift
lightspeed-service deposunda aşamalı değişiklikleri commit'leyip bir pull request açmak için adım adım iş akışı.