Skills in Bob Shell erstellen und verwenden

Erstelle einen wiederverwendbaren Skill, der Bob Shell einen wiederholbaren Changelog-Eintrag-Workflow beibringt, rufe ihn dann explizit auf und lass Bob ihn automatisch aktivieren.

Bob Shell Skills in IBM sind wiederverwendbare Anweisungssets, die in einer SKILL.md-Datei gespeichert sind und Bob einen wiederholbaren Workflow beibringen. In diesem Tutorial baust du einen changelog-entry-Skill, der Keep a Changelog-Einträge zu CHANGELOG.md hinzufügt, rufst ihn explizit mit $changelog-entry auf und beobachtest, wie Bob ihn automatisch aktiviert, wenn ein Prompt zur Beschreibung des Skills passt.

Skills ersparen dir das erneute Eingeben derselben Formatierungsregeln oder Checklisten in jedem Prompt. Du definierst den Workflow einmal, und Bob befolgt ihn, wann immer der Skill zutrifft.

Voraussetzungen

Einen changelog-entry-Skill erstellen

Bob Shell lädt Skills aus Ordnern, die eine SKILL.md-Datei enthalten. Projekt-Skills befinden sich in .bob/skills/ im Projektstammverzeichnis, sodass Git sie zusammen mit der Codebasis verwaltet und dein Team sie verwenden kann. Globale Skills befinden sich in ~/.bob/skills/ und gelten für alle deine Projekte.

Den Skill-Ordner erstellen

Wechsle in das Stammverzeichnis von Galaxium Travels und erstelle einen Ordner für den Skill:

cd galaxium-travels
mkdir -p .bob/skills/changelog-entry

Die SKILL.md-Datei schreiben

Erstelle .bob/skills/changelog-entry/SKILL.md mit folgendem Inhalt. Du kannst einen beliebigen Texteditor verwenden oder den Befehl so wie er ist ausführen:

cat > .bob/skills/changelog-entry/SKILL.md <<'EOF'
---
name: changelog-entry
description: Adds an entry to CHANGELOG.md using the Keep a Changelog format, creating the file if it does not exist, so change history stays consistent and release-ready.
---

Add an entry to CHANGELOG.md using the Keep a Changelog format (https://keepachangelog.com/).

- If CHANGELOG.md does not exist, create it at the project root with this structure before adding an entry:

  # Changelog

  All notable changes to this project are documented in this file.
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

  ## [Unreleased]

- Add new entries under the `## [Unreleased]` section, under one of these subheadings: `### Added`, `### Changed`, `### Fixed`, `### Removed`. Create the subheading if it is not already present under `## [Unreleased]`.
- Write each entry as a single bullet point in the imperative mood ("Add", not "Added"), starting with a capital letter, with no trailing period.
- Base the entry on the actual diff, not on the wording of the request. Run `git diff` to review what changed before writing the entry.
- Only edit CHANGELOG.md. Do not stage or commit the change.
EOF

Das Front Matter definiert zwei Pflichtfelder:

  • name: Der Name des Skills. Passe ihn an den Ordnernamen an, denn Bob Shell verwendet den Ordnernamen, um auf den Skill zu verweisen, z. B. $changelog-entry.
  • description: Was Bob liest, um zu entscheiden, ob der Skill auf eine Anfrage zutrifft, wenn du ihn nicht namentlich referenzierst. Wenn du ihn weglässt, verwendet Bob stattdessen die erste Zeile der Anweisungen – schreibe daher immer eine klare Beschreibung.

Alles unterhalb der schließenden --- ist der Satz von Anweisungen, den Bob befolgt, wenn der Skill aktiviert wird.

Bob Shell starten

Starte eine interaktive Sitzung im Agent-Modus aus dem Stammverzeichnis von Galaxium Travels:

bob chat --mode agent

Der Agent-Modus gibt Bob den Tool-Zugriff, den er benötigt, um Skills zu aktivieren und Dateien zu bearbeiten. Wenn Bob Shell fragt, ob du dem Ordner vertraust, vertraue dem Ordner, damit Bob die Skills des Projekts laden kann.

Den Skill direkt aufrufen

Referenziere den Skill namentlich, damit du die Anweisungen sehen kannst, denen Bob folgt.

README.md bearbeiten

Bitte Bob, eine kleine, risikoarme Änderung vorzunehmen, damit du etwas zum Protokollieren hast:

Add a one-line note to the end of the README.md that says "Powered by IBM Bob."

Bob zeigt die vorgeschlagene Änderung als Diff an. Wähle Approve, um die Bearbeitung anzuwenden.

Die Änderung mit dem Skill protokollieren

Gib $ ein, um den Skill-Picker zu öffnen, und wähle dann changelog-entry. Bob Shell fügt die Skill-Referenz in deinen Prompt ein:

$changelog-entry Add a changelog entry for this change.

Bob bittet um Erlaubnis, den Skill zu verwenden und Dateien zu bearbeiten. Genehmige jede Anfrage. Bob lädt den changelog-entry-Skill und erstellt CHANGELOG.md, da das Projekt keines hat. Bob fügt dann einen Eintrag ähnlich dem folgenden hinzu:

## [Unreleased]

### Added

- Add "Powered by IBM Bob." note to the end of README.md

Den ersten Changelog-Eintrag überprüfen

Bitte Bob, dir den Changelog zu zeigen:

Show me @CHANGELOG.md

Der Eintrag stimmt mit dem Changelog-Eintrag überein, den Bob in Die Änderung mit dem Skill protokollieren generiert hat.

Bob den Skill automatisch aktivieren lassen

Nimm eine zweite Änderung vor und bitte Bob, sie zu protokollieren, ohne den Skill namentlich zu erwähnen. Bob kann anhand der Beschreibung des Skills erkennen, dass er zutrifft, und ihn von selbst aktivieren.

Den Gesprächsverlauf löschen

Gib den /clear-Slash-Befehl ein, um den Gesprächsverlauf zurückzusetzen, sodass Bob keine Erinnerung an die vorherige Skill-Referenz hat:

/clear

Eine zweite README.md-Bearbeitung vornehmen

Bitte Bob, eine zweite Bearbeitung vorzunehmen:

Add a one-line comment above the main heading in README.md that says "Galaxium Travels".

Genehmige die Bearbeitung, wenn du dazu aufgefordert wirst.

Die Änderung protokollieren, ohne den Skill zu nennen

Bitte Bob, die Änderung zu protokollieren, ohne den Skill zu nennen:

Add an entry to CHANGELOG.md in Keep a Changelog format.

Bob erkennt, dass die Anfrage zur Beschreibung des changelog-entry-Skills passt, und aktiviert ihn ohne eine $changelog-entry-Referenz. Genehmige die Skill- und Dateibearbeitungsanfragen, wenn du dazu aufgefordert wirst. Bob fügt einen weiteren Eintrag im gleichen Format hinzu.

Beide Changelog-Einträge überprüfen

Bitte Bob, dir den Changelog zu zeigen:

Show me @CHANGELOG.md

Der Changelog enthält jetzt zwei Einträge unter ## [Unreleased], ähnlich dem folgenden:

## [Unreleased]

### Added

- Add "Powered by IBM Bob." note to the end of README.md
- Add "Galaxium Travels" comment above the main heading in README.md

Deine Skills verwalten

Jeder Skill ist ein Ordner auf der Festplatte, daher verwaltest du Skills mit deinen üblichen Dateiwerkzeugen:

  • Skills auflisten: Schau in .bob/skills/ für Projekt-Skills und ~/.bob/skills/ für globale Skills. Wenn beide Speicherorte einen Skill mit demselben Namen enthalten, hat der Projekt-Skill Vorrang.
  • Einen Skill bearbeiten: Bearbeite seine SKILL.md-Datei. Du kannst dem Skill-Ordner auch unterstützende Dateien hinzufügen, z. B. Vorlagen oder Checklisten.
  • Auf einen Skill verweisen: Gib $ ein oder gib /skills in Bob Shell ein, um eine Skill-Referenz in deinen Prompt einzufügen.

Fehlerbehebung

Der Skill erscheint nicht im $-Picker

Bestätige, dass der Dateipfad .bob/skills/changelog-entry/SKILL.md ist, das Front Matter name und description enthält und der Ordner vertrauenswürdig ist. Weitere Details findest du unter Vertrauenswürdige Ordner. Der Skill-Ordnername muss lowercase kebab-case sein, z. B. changelog-entry. Bob überspringt Ordner mit ungültigen Namen, ohne einen Fehler anzuzeigen. Starte Bob Shell nach dem Hinzufügen eines Skills neu.

Bob aktiviert den Skill nicht automatisch

Bob gleicht Anfragen mit der description des Skills ab. Formuliere den Prompt neu, sodass Wörter aus der Beschreibung vorkommen, oder referenziere den Skill direkt mit $changelog-entry.

Nächste Schritte

In diesem Tutorial hast du gelernt, wie Skills es dir ermöglichen, einen Workflow einmal zu definieren und Bob ihn konsistent anwenden zu lassen. Du kannst einen Skill explizit mit $<skill-name> referenzieren oder Bob ihn automatisch anhand seiner Beschreibung aktivieren lassen.

Um Vorlagen und unterstützende Dateien zu einem Skill hinzuzufügen, lies Skills.

Um eine spezialisierte Persona mit eigener Rolle, Anweisungen und Tool-Zugriff zu erstellen, lies Benutzerdefinierte Modi.

Wie ist dieses Thema?