Was macht skanvil?
Ziel
Ändere Skill-Bibliotheken über die skanvil CLI, sodass Skill-Ordner, das SKILL.md Frontmatter, der README-Index und die Bibliothekskonventionen konsistent bleiben und die Validierung grün bleibt.
Wann dieses Skill aktiviert werden soll
- Das Repository enthält eine
.skanvilrc.json, einenskills/-Ordner mitSKILL.md-Dateien oderskanvilin seinerpackage.json. - Der Benutzer bittet um das Hinzufügen, Schreiben, Umbenennen, Verschieben, Neubenennen, Neubeschreiben, Löschen, Auflisten, Validieren oder Indizieren von Skills.
skanvil validate,npm testoder CI schlägt mit skanvil-Diagnose fehl.- Der Benutzer möchte, dass die Skills einer Bibliothek für Claude Code, GitHub Copilot oder Codex in einem anderen Projekt verfügbar sind.
Anleitung
1. Orientieren
- Lies
.skanvilrc.json. Es definiert die Kategorien (id, Ordner-prefix, README-title,aliases), die erforderlichen Abschnitte, Platzhalter und Regel-Schweregrade. Fehlt die Datei, gilt das Standard-Preset:front-,back-, prefixlosestransversal(Standard) und_internal. - Führe
npx skanvil list --jsonaus, um jeden Skill mit seiner Kategorie, README-Präsenz und Gültigkeit zu sehen. - Führe vor jeder Änderung
npx skanvil validate --jsonaus, damit du weißt, welche Probleme bereits bestanden.
2. Goldene Regeln
- Benenne, verschiebe oder lösche Skill-Ordner niemals von Hand und bearbeite den README-Index niemals manuell. Verwende
skanvil edit, das den Ordner, den Frontmatter-name, die# Überschriftund den README-Eintrag synchron hält und bei Fehlern rückgängig macht. - Erstelle Skill-Ordner niemals von Hand. Verwende
skanvil add, das das Kategorie-Präfix, die Vorlage, die Frontmatter-Metadaten und den README-Eintrag anwendet. - Übergebe in nicht-interaktiven Shells immer alle Optionen.
addbenötigt--type,--nameund--description.edit --removebenötigt--yes. Andernfalls fragt der Befehl nach oder schlägt ohne TTY fehl. - Führe
skanvilniemals ohne Argumente oderskanvil wizardaus. Diese öffnen ein interaktives Menü für Menschen. Verwende die expliziten Befehle unten. Wenn der Benutzer Menüs bevorzugt, schlage vor, dass ernpx skanvilselbst ausführt. - Füge
--jsonhinzu, wann immer du die Ausgabe parsen musst. Daten gehen nach stdout; Warnungen und Fehler nach stderr. - Führe nach jeder Änderung
npx skanvil validateaus und beende ohne Fehler. Exit-Code1bedeutet Fehler oder Warnungen, wenn--strictverwendet wird. - Stelle jedem Befehl
npxvoran, es sei denn,skanvilist im PATH. Verwende-C <Pfad>, um eine Bibliothek in einem anderen Ordner anzusprechen.
3. Häufige Aufgaben
Einen Skill erstellen und dann seinen Inhalt schreiben.
npx skanvil add --type <Kategorie> --name "<Kurzname>" \
--description "<Was er tut>. Verwende ihn, wenn <Auslösesituationen>."
Bearbeite dann skills/<Präfix><Name>/SKILL.md:
- Fülle jeden erforderlichen Abschnitt mit konkretem, handlungsorientiertem Inhalt.
- Ersetze alle generischen Vorlagensätze. Solange du das nicht tust, meldet
validateeinetemplate-unchanged-Warnung undvalidate --strict(dernpm testder Bibliothek) schlägt fehl. - Verschiebe langes Material in
references/und verlinke nur auf Dateien, die existieren (broken-references).
Verwende --no-scripts, --no-assets oder --no-references, wenn diese Ordner leer bleiben würden. Verwende --template <Name> für eine benutzerdefinierte Vorlage in .skanvil/templates/.
Einen Skill umbenennen oder verschieben.
npx skanvil edit <Skill> --rename <neuer-Name> # Präfix wird automatisch neu angewendet
npx skanvil edit <Skill> --type <andere-Kategorie> # neues Präfix, README-Abschnitt, Metadaten
npx skanvil edit <Skill> --title "<Titel>" --description "<Text>"
--rename erwartet den Basisnamen: edit front-a --rename b ergibt front-b.
Einen Skill löschen. Bestätige zuerst mit dem Benutzer; dies ist endgültig.
npx skanvil edit <Skill> --remove --yes
Validierungsfehler beheben.
- Führe
npx skanvil doctor --fixaus. Es repariert README-Einträge,name-Konflikte, Tabs im Frontmatter und wandelttoolsinallowed-toolsum. - Behebe, was übrig bleibt, indem du
SKILL.mdbearbeitest. Verwende die Diagnosetabelle unten. - Führe erneut
npx skanvil validateaus.
Den README-Index neu erstellen nach Änderungen an Kategorietiteln in .skanvilrc.json:
npx skanvil index # schreibt die Index-Abschnitte neu
npx skanvil index --check # nur überprüfen (CI)
Die Skills in ein Projekt installieren.
npx skanvil sync <Projektverzeichnis> -C <Bibliotheksverzeichnis> --target claude,copilot --dry-run # Vorschau
npx skanvil sync <Projektverzeichnis> -C <Bibliotheksverzeichnis> --target claude,copilot
npx skanvil sync --from @scope/package --target agents # installiertes Paket
Ziele:
claudeinstalliert in.claude/skills;copilotinstalliert in.github/skills;agentsundcodexinstallieren in.agents/skills.- Ein benutzerdefinierter Pfad muss ein Ordner innerhalb des Projekts sein.
--global(ohne Projektverzeichnis) installiert stattdessen in~/.claude/skills,~/.copilot/skillsoder~/.agents/skillsdes Benutzers. Verwende dies nur, wenn der Benutzer Skills wünscht, die in jedem Projekt verfügbar sind.
Wie sync funktioniert:
- Es überschreibt niemals Ordner, die es nicht installiert hat.
- Es entfernt Skills, die aus der Bibliothek gelöscht wurden.
- Es überspringt Skills mit Validierungsfehlern, es sei denn,
--forcewird angegeben. - Es veröffentlicht niemals
_internal-Skills.
Kategorien hinzufügen oder ändern. Bearbeite categories in .skanvilrc.json:
- genau eine Kategorie hat
"default": trueund kein Präfix; - jede andere Kategorie hat ein Präfix, das
_oder kebab-case ist und auf-endet; - kein Präfix darf mit einem anderen Präfix beginnen.
Verschiebe dann vorhandene Skills mit edit --type und führe skanvil index aus.
4. Guten Skill-Inhalt schreiben
descriptionsagt, was der Skill tut und wann er verwendet werden soll, mit den Auslöseschlüsselwörtern, die ein Agent sehen würde. Er darf maximal 1024 Zeichen lang sein.nameentspricht dem Ordnernamen: Kleinbuchstaben, Ziffern und einzelne Bindestriche, maximal 64 Zeichen.- Textkörper: halte
SKILL.mdunter 500 Zeilen. Schreibe Anweisungen als nummerierte, überprüfbare Schritte und platziere Beispiele, Randfälle und lange Checklisten inreferences/(eine Ebene tief). - Platzhalter: hinterlasse niemals Fülltext. Jeder Eintrag von
validation.placeholders(To-do-Markierungen, Platzhalter-Latein-Text, „noch zu entscheiden“-Notizen) schlägt bei der Validierung fehl. metadata: nur Zeichenfolgenwerte, also setze Zahlen in Anführungszeichen, wie inversion: "1.0".allowed-tools: eine durch Leerzeichen getrennte Zeichenfolge, keine Liste.
5. Diagnose → Fehlerbehebung
| Regel | Fehlerbehebung |
|---|---|
readme-missing, readme-orphan, readme-section | npx skanvil doctor --fix |
name-matches-folder, name-required | doctor --fix, oder edit --rename, wenn der Ordnername falsch ist |
frontmatter-tabs, tools-field | doctor --fix |
frontmatter | Repariere das YAML zwischen den ----Zeilen (setze Werte in Anführungszeichen, die : oder # enthalten). |
required-sections | Füge den fehlenden ## Abschnitt hinzu, der in validation.requiredSections aufgeführt ist. |
placeholders | Ersetze den Platzhaltertext durch echten Inhalt. |
description-length, max-lines | Kürze; verschiebe Details nach references/. |
metadata-format | Setze Nicht-Zeichenfolgen-Werte in Anführungszeichen. |
duplicate-name | Zwei Ordner teilen sich einen name: benenne einen mit edit --rename um. |
broken-references | Erstelle die referenzierte Datei oder korrigiere den Link (Pfade sind relativ zum Skill). |
template-unchanged | Schreibe die generischen Gerüstsätze durch Skillspezifische Anweisungen um. |
Siehe references/REFERENCE.md für alle Befehlsoptionen, das Konfigurationsschema und JSON-Ausgabeformate.
Ausgabeformat
Melde dem Benutzer:
- die von dir ausgeführten skanvil-Befehle;
- die erstellten, geänderten oder entfernten Skills mit ihren Ordnernamen;
- das endgültige
skanvil validate-Ergebnis (Fehler und Warnungen) und alles, was er selbst entscheiden muss.
Qualitätskriterien
- Jede strukturelle Änderung erfolgte über
skanvil addoderskanvil edit. Es gibt keine manuellen Ordnerumbenennungen oder README-Index-Bearbeitungen. npx skanvil validatemeldet keine Fehler undnpx skanvil index --checkist erfolgreich.- Neue oder bearbeitete Skills haben spezifische Beschreibungen mit Auslösern und keine Vorlagenfüller oder Platzhalter.
- Löschungen und Synchronisationen in andere Projekte wurden mit dem Benutzer bestätigt.