safe-code-change

Après un changement de code, trouver les tests affectés, les mettre à jour pour correspondre au nouveau comportement, puis exécuter une fois le pipeline de validation complet. Utiliser lorsque l'utilisateur a effectué ou demandé…

npx skills add https://github.com/openshift/lightspeed-service --skill safe-code-change

Safe Code Change

After a code change is made, find and fix affected tests before running validation.

Rules

  • The code change is already done. Do not modify production code.
  • Only update tests to match the new behavior, not the other way around.
  • Do not reformat or lint-fix during test updates. Save that for validation.
  • If a test change is ambiguous (unclear what the new expected behavior is), ask the user.

Step 1: Identify What Changed

git diff --name-only
git diff --stat

List the modified production files (ignore test files, configs, docs).

Step 2: Find Affected Tests

Search for imports of changed functions/classes across all test files:

rg "from ols\.<changed_module> import" tests/

Step 3: Analyze Impact on Tests

For each affected test file, check whether the change breaks existing tests:

  1. Signature changes — function renamed, parameters added/removed/reordered.
  2. Behavior changes — return value, side effects, exceptions differ.
  3. Removed code — tests for deleted functions/classes need removal.
  4. New code — consider whether new tests are needed (ask user if unclear).

Step 4: Update Tests

Apply minimal fixes to each affected test:

  • Update function names, parameters, expected values.
  • Add async/await and @pytest.mark.asyncio if sync changed to async.
  • Remove tests for deleted functionality.
  • Do not add new tests unless the user asks.

Step 5: Done

Report what was updated. The user can invoke validate-and-fix when ready.

Plus de skills de openshift

openshift-docs
openshift
Rechercher et lire la documentation d’OpenShift Container Platform au format markdown. À utiliser lorsque l’utilisateur pose des questions sur les fonctionnalités, la configuration, l’installation d’OpenShift, etc.
triage-leaked-infra
openshift
Évaluer si un VPC AWS ou un ensemble d'infrastructure provenant de l'IC HyperShift est sûr à supprimer. À utiliser lorsque l'utilisateur colle une sortie cleanleaked et demande « puis-je supprimer cela ? », « est-…
openshift-expert
openshift
Expert de la plateforme OpenShift et de Kubernetes avec une connaissance approfondie de l'architecture des clusters, des opérateurs, du réseau, du stockage, du dépannage et des pipelines CI/CD. Utilisez…
Konflux Archived PipelineRuns
openshift
Accède aux PipelineRuns, TaskRuns et logs de pods Konflux archivés via KubeArchive. S’applique automatiquement lors de la vérification des résultats de PipelineRun Konflux, de l’investigation…
backport
openshift
Backporter des commits ou des PR de la branche principale vers une branche de release. Utiliser lorsque l'utilisateur demande de backporter, cherry-picker ou porter des modifications entre branches, ou lors de la résolution de…
rebase
openshift
Rebaser la branche courante sur sa branche de base, résoudre tous les conflits, et vérifier que lint, i18n et build passent. Utiliser lorsque l'utilisateur demande de rebaser, mettre à jour ou synchroniser…
Build CPO Image
openshift
Construire et pousser l'image conteneur du control-plane-operator. S'applique automatiquement lors du test de modifications CPO nécessitant un déploiement sur un cluster en direct.
find-complexity
openshift
Trouve les fonctions et méthodes avec une complexité cyclomatique élevée, une longueur excessive ou trop de paramètres. À utiliser lorsque l'utilisateur demande de trouver du code complexe, de la complexité…