Bob Shell でスキルを作成および使用する

Bob Shell に再現可能な changelog エントリのワークフローを教える再利用可能なスキルを作成し、明示的に呼び出したり、Bob に自動的にアクティブ化させたりします。

IBM Bob Shell スキルは、SKILL.md ファイルに保存された再利用可能な指示セットであり、Bob に再現可能なワークフローを教えます。このチュートリアルでは、Keep a Changelog 形式のエントリを CHANGELOG.md に追加する changelog-entry スキルを作成し、$changelog-entry で明示的に実行した後、プロンプトがスキルの説明と一致したときに Bob が自動的にアクティブ化する様子を確認します。

スキルを使用すると、毎回のプロンプトで同じフォーマットルールやチェックリストを再入力する手間が省けます。ワークフローを一度定義すれば、そのスキルが該当するときに Bob が常にそれに従います。

前提条件

changelog-entry スキルを作成する

Bob Shell は SKILL.md ファイルを含むフォルダからスキルを読み込みます。プロジェクトスキルはプロジェクトルートの .bob/skills/ に配置されるため、Git でコードベースと一緒に追跡し、チームで共有して使用できます。グローバルスキルは ~/.bob/skills/ に配置され、すべてのプロジェクトに適用されます。

スキルフォルダを作成する

Galaxium Travels のルートディレクトリに移動し、スキル用のフォルダを作成します:

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

SKILL.md ファイルを作成する

以下の内容で .bob/skills/changelog-entry/SKILL.md を作成します。任意のテキストエディタを使用するか、記載されているコマンドを実行します:

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

フロントマターには 2 つの必須フィールドを定義します:

  • name: スキル名。Bob Shell は $changelog-entry のようにフォルダ名を使用してスキルを参照するため、フォルダ名と一致させてください。
  • description: スキルを名前で直接参照しない場合に、リクエストにそのスキルが適用されるかどうかを判断するために Bob が読み取る内容です。省略した場合、Bob は代わりに指示の最初の行を使用するため、常に明確な説明を記述してください。

閉じ --- より下のすべてが、スキルがアクティブ化されたときに Bob が従う指示のセットになります。

Bob Shell を起動する

Galaxium Travels のルートディレクトリから Agent モード で対話型セッションを開始します:

bob chat --mode agent

Agent モードにより、Bob にスキルのアクティブ化やファイルの編集に必要なツールアクセス権が付与されます。Bob Shell からフォルダを信頼するかどうか尋ねられたら、Bob がプロジェクトのスキルを読み込めるようにフォルダを信頼してください。

スキルを直接呼び出す

Bob が従う指示を確認できるように、名前でスキルを参照します。

README.md を編集する

記録する変更を作るために、小さく低リスクな編集を Bob に依頼します:

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

Bob は提案された変更を diff として表示します。Approve を選択して編集を適用します。

スキルを使って変更を記録する

$ を入力してスキルピッカーを開き、changelog-entry を選択します。Bob Shell がプロンプトにスキル参照を挿入します:

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

Bob はスキルの使用とファイルの編集の許可を求めます。各リクエストを承認してください。プロジェクトにはまだ CHANGELOG.md が存在しないため、Bob は changelog-entry スキルを読み込んで CHANGELOG.md を作成します。その後、Bob は以下のようなエントリを追加します:

## [Unreleased]

### Added

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

最初の changelog エントリを確認する

Bob に changelog を表示するよう依頼します:

Show me @CHANGELOG.md

エントリは、スキルを使って変更を記録する で Bob が生成した changelog エントリと一致します。

Bob にスキルを自動的にアクティブ化させる

2 回目の変更を行い、スキルの名前を明示せずに Bob に変更を記録するよう依頼します。Bob はスキルの説明からそれが適用可能であることを認識し、自身でアクティブ化できます。

会話履歴をクリアする

/clear スラッシュコマンドを入力して会話履歴をリセットし、Bob が前回のスキル参照を記憶していない状態にします:

/clear

README.md に 2 つ目の編集を加える

Bob に 2 つ目の編集を依頼します:

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

プロンプトが表示されたら編集を承認します。

スキル名を指定せずに変更を記録する

スキル名を指定せずに変更を記録するよう Bob に依頼します:

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

Bob はリクエストが changelog-entry スキルの説明と一致することを認識し、$changelog-entry の参照がなくてもアクティブ化します。求められたら、スキルとファイル編集のリクエストを承認します。Bob は同じ形式で別のエントリを追加します。

両方の changelog エントリを確認する

Bob に changelog を表示するよう依頼します:

Show me @CHANGELOG.md

changelog には、以下のように ## [Unreleased] の下に 2 つのエントリが含まれるようになります:

## [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

スキルを管理する

各スキルはディスク上のフォルダであるため、通常のファイルツールで管理できます:

  • スキルを一覧表示する: プロジェクトスキルは .bob/skills/ を、グローバルスキルは ~/.bob/skills/ を確認します。両方の場所に同じ名前のスキルが存在する場合、プロジェクトスキルが優先されます。
  • スキルを編集する: その SKILL.md ファイルを編集します。テンプレートやチェックリストなどのサポートファイルをスキルフォルダに追加することもできます。
  • スキルを参照する: Bob Shell で $ を入力するか /skills を入力して、プロンプトにスキル参照を挿入します。

トラブルシューティング

スキルが $ ピッカーに表示されない

ファイルパスが .bob/skills/changelog-entry/SKILL.md であること、フロントマターに name と description が含まれていること、およびフォルダが信頼されていることを確認してください。詳細については、信頼できるフォルダを参照してください。スキルフォルダ名は、changelog-entry のように小文字のケバブケースにする必要があります。Bob は無効な名前のフォルダをエラーを表示せずにスキップします。スキルを追加した後は Bob Shell を再起動してください。

Bob がスキルを自動的にアクティブ化しない

Bob はリクエストをスキルの description と照合します。説明の単語を使用するようにプロンプトを言い換えるか、$changelog-entry でスキルを直接参照してください。

次のステップ

このチュートリアルでは、スキルを使用してワークフローを一度定義し、Bob に一貫して適用させる方法を学びました。$<skill-name> でスキルを明示的に参照することも、説明に基づいて Bob に自動的にアクティブ化させることもできます。

スキルにテンプレートやサポートファイルを追加する方法については、スキルを参照してください。

独自の役割、指示、ツールアクセス権を持つ専用のペルソナを構築するには、カスタムモードを参照してください。

このトピックはいかがですか?