find-duplication

tarafından openshift

Kod tabanında kod tekrarını bulur. Mevcut dal değişiklikleriyle sınırlı veya tüm kod tabanı taraması olmak üzere iki modu destekler. Kullanıcı bulma talebinde bulunduğunda kullanılır…

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

Find Code Duplication

Detect duplicated or near-duplicate code and suggest consolidation candidates.

Rules

  • Report findings, do not refactor. Refactoring is a separate task.
  • Focus on production code (ols/). Skip test duplication unless explicitly asked.
  • Group findings by severity: exact duplicates first, then near-duplicates.
  • For each finding, state whether extraction is worth it or acceptable duplication.

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$'

For full mode, the target is ols/.

Step 2: Run Pylint Duplicate Detection

uv run pylint --disable=all --enable=duplicate-code --min-similarity-lines=6 <target files or directory>

Review output. Filter out false positives:

  • Import blocks (common imports are not duplication)
  • Pydantic model boilerplate (Field declarations)
  • Single-line patterns (logging, raises)

Step 3: Semantic Duplication Search

Pylint only catches textual similarity. Also look for:

  1. Similar function signatures — functions with near-identical parameter lists doing similar work.
  2. Repeated error handling — same try/except/log/return pattern across multiple files.
  3. Copy-pasted blocks — search for distinctive string literals or variable names that appear in multiple files.
rg "<distinctive pattern>" ols/ --type py -l

Step 4: Classify Findings

For each duplicate found, classify:

CategoryAction
Extract — identical logic in 3+ placesRecommend a shared helper
Parameterize — same structure, different valuesRecommend a common function with parameters
Acceptable — similar but serving different domainsNote it, no action needed
Test-only — repeated test setup/fixturesRecommend shared fixture (only if user asked)

Step 5: Report

For each finding:

  1. Files and line ranges involved
  2. What is duplicated (brief description)
  3. Classification (extract / parameterize / acceptable)
  4. Suggested location for shared code (if applicable)

Summary: total findings, how many actionable, estimated lines saved.

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.
find-complexity
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.