fix(ci): check-changed-skills.sh fails a stale branch on skills only main changed

Fermée Adaptée aux débutants
#7,014 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Une pull request liée a déjà été fusionnée.

  • #7083 par @kyle-sexton — fusionnée

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
72/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
bash, git
Domaine
build-system

Piste de recherche

Le bogue se trouve dans scripts/check-changed-skills.sh : l'ensemble des fichiers modifiés provient de changed_files::into changed_paths "$BASE" (vers la ligne 123), et la vérification par skill exécute git diff --name-only "$BASE" -- "$skill_dir/SKILL.md" (vers la ligne 175). Pour le reproduire, lancez le script contre origin/main sur une branche en retard sur main, puis résolvez BASE avec git merge-base "$BASE" HEAD avant les deux appels. C'est terminé lorsqu'une branche en retard sur sa base ne signale plus que seul main a modifié des skills, et qu'un nouveau test couvre une branche en retard sur sa base.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

good first issue needs-triage priority: medium

Problem

Run locally as scripts/check-changed-skills.sh origin/main on a branch behind main, the script also checks skills that only main changed and fails on them.

Seen on 2026-10-10 on feat/agent-tool-spawn-effort (#6913), 44 commits behind main. It failed on plugins/harness-config/skills/audit/scripts/fix-plugin-drift.test.sh, which the branch never touched. Against the merge base (e971f640b3) it passed: "6 skill(s) checked, 0 failed."

Cause: the changed set and the per-skill diff are taken against the base ref as given. The changed set comes from changed_files::into changed_paths "$BASE" and the per-skill check from git diff --name-only "$BASE" -- "$skill_dir/SKILL.md" (scripts/check-changed-skills.sh:123, :175). That is a two-dot comparison against the working tree, so it includes main's own changes since the branch point.

Proposed next step

Resolve $BASE to git merge-base "$BASE" HEAD before computing the changed set, so the script checks only what the branch changed. Keep CHECK_SKILL_BASE_REF semantics unchanged unless they have the same problem. Add a test with a branch behind its base.

Langage dominant
Shell
Étoiles
22
Forks
2
Merge moyen
1 h 40 min
PR mergées (30 j)
918

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de melodic-software/claude-code-plugins

Toutes les issues de melodic-software/claude-code-plugins

Issues similaires

Plus d'issues Shell/Bash

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.