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

Geschlossen Anfängerfreundlich
#7,014 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Ein zugehöriger Pull Request wurde bereits gemerged.

  • #7083 von @kyle-sexton — gemerged

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
72/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
bash, git
Bereich
build-system

Rechercherichtung

Der Fehler liegt in scripts/check-changed-skills.sh: Die Menge der geänderten Dateien stammt von changed_files::into changed_paths "$BASE" (etwa Zeile 123), und die Prüfung pro Skill führt git diff --name-only "$BASE" -- "$skill_dir/SKILL.md" aus (etwa Zeile 175). Zum Reproduzieren das Skript gegen origin/main auf einem Branch ausführen, der hinter main zurückliegt, und dann BASE vor beiden Aufrufen mit git merge-base "$BASE" HEAD auflösen. Fertig ist es, wenn ein Branch, der hinter seiner Basis liegt, nicht mehr meldet, dass nur main Skills geändert hat, und ein neuer Test einen Branch abdeckt, der hinter seiner Basis liegt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Shell
Sterne
22
Forks
2
Ø Merge
1 Std. 29 Min.
Gemergte PRs (30 T.)
895

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus melodic-software/claude-code-plugins

Alle Issues in melodic-software/claude-code-plugins

Ähnliche Issues

Weitere Issues zu Shell/Bash

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.