機能

スラッシュコマンド

カスタムスラッシュコマンドを作成して繰り返しタスクを自動化し、組み込みコマンドを実行し、シンプルなMarkdownファイルでBobの機能を拡張できます。

概要

始めるには、チャットで / と入力して利用可能なすべてのコマンドを確認するか、.bob/commands/ または ~/.bob/commands/ にMarkdownファイルを追加して独自のコマンドを作成します。

主なメリット:

  • ワークフロー自動化:複雑な複数ステップのプロセスを単一コマンドに変換
  • チームの標準化:一貫したプラクティスのためにチームでコマンドを共有
  • コンテキストの保持:すべてのコマンドにプロジェクト固有のコンテキストを含める
  • クイックアクセス:インスタントなコマンド発見のためのファジー検索とオートコンプリート

組み込みコマンド

Bobにはコア機能を提供するいくつかの組み込みコマンドが含まれています:

/init

BobでプロジェクトやWorkspaceを初期化します。このコマンドは、プロジェクトでBobと連携するために必要な設定と構造のセットアップを支援します。

/review

包括的な分析でコード変更をレビューします。このコマンドは複数の方法で使用できます:

  • /review – 作業ディレクトリ内のローカルのコミットされていない変更をレビュー
  • /review <branch> – ブランチを現在のブランチ(HEAD)と比較
  • /review #<issue-number> --issue-coverage – GitHubイシューに対してローカル変更を検証
  • /review <issue-url> --issue-coverage – GitHub イシューのURLに対してローカル変更を検証

レビューコマンドは、バグ検出、セキュリティチェック、パフォーマンスの問題、スタイルの一貫性を含む徹底的なコード分析を実行します。

/create-pr

AI生成の説明でプルリクエストを作成します。このコマンドは変更を分析し、ブランチ間のdiffに基づいて包括的なPR説明を生成します。

カスタムコマンドの作成

カスタムコマンドは、特定のディレクトリにMarkdownファイルを追加することでBobの機能を拡張します:

  • プロジェクト固有:Workspaceルートの .bob/commands/
  • グローバル:ホームディレクトリの ~/.bob/commands/

ファイル名がコマンド名になります。例えば:

  • review.md/review
  • test-api.md/test-api
  • deploy-check.md/deploy-check

コマンド名の処理

UIでコマンドを作成する際、コマンド名は自動的に処理されます:

  • 小文字に変換
  • スペースはダッシュに置き換え
  • 特殊文字を削除
  • 先頭/末尾のダッシュを削除

例:「私のクールなコマンド!」は 私のクールなコマンド になります(ラテン文字の場合は my-cool-command

基本的なコマンド形式

Markdownファイルを追加してシンプルなコマンドを作成します:

Help me review this code for security issues and suggest improvements.

frontmatterを使った高度なコマンド

強化された機能のためにfrontmatterを使用してメタデータを追加します:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.

frontmatterフィールド

  • description:コマンドの目的をユーザーが理解できるようにコマンドメニューに表示されます
  • argument-hint:コマンドを使用する際に期待される引数のヒントを提供します

コマンド管理UI

Bobはカスタムコマンドを管理するための専用UIを提供します。

Bobパネルのコマンドアイコンをクリックしてコマンドマネージャーを開きます。

新しいコマンドの作成

  1. 入力フィールドにコマンド名を入力します(例:「サンプルコマンド名」)
  2. +ボタンをクリックしてコマンドを作成します
  3. 新しいファイルが自動的に作成されて開かれます(例:sample-command-name.md

スラッシュコマンドの使用

チャットで / と入力して、両方のコマンドタイプを含む統一メニューを表示します。メニューには同じインターフェースにカスタムワークフローコマンドとモード切り替えコマンドの両方が表示されます。

  1. 統一メニュー:カスタムコマンドとモード切り替えコマンドが一緒に表示されます
  2. オートコンプリート:入力してコマンドをフィルタリングします(例:/samsample-command-name が表示されます)
  3. ファジー検索:部分的な一致でもコマンドを見つけられます
  4. 説明プレビュー:メニューでコマンドの説明を確認できます
  5. ビジュアルインジケーター:モードコマンドは特別なアイコンでカスタムコマンドと区別されます

引数ヒント

引数ヒントはスラッシュコマンドのための即座の助けを提供し、コマンドが追加の入力を必要とする場合にどのような情報を提供すべきかを示します。

/ と入力してコマンドメニューを表示すると、引数を期待するコマンドにはその隣にライトグレーのヒントが表示されます。このヒントは、コマンドが期待する引数の種類を示します。

例えば:

  • /mode <mode_slug> – ヒント <mode_slug>codedebug などのモード名を指定することを示します
  • /api-endpoint <endpoint-name> <http-method> – エンドポイント名とHTTPメソッドの両方が必要であることを示します

コマンドを選択すると、スペースに続いてチャット入力に挿入されます。ヒントは挿入されません。次に何を入力すべきかを知るための視覚的なガイドに過ぎません。コマンドの後に手動で引数を入力する必要があります。

カスタムコマンドへの引数ヒントの追加

frontmatterの argument-hint フィールドを使用してカスタムコマンドに引数ヒントを追加できます:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.

これによりコマンドメニューに /api-endpoint <endpoint-name> <http-method> として表示されます。

引数ヒントのベストプラクティス

  • 具体的にする:<arg> などの汎用的なものの代わりに <file-path> のような説明的なプレースホルダーを使用します
  • 複数の引数を示す:コマンドが複数の入力を必要とする場合は、すべてを示します:<source> <destination>
  • 一貫したフォーマットを使用する:プレースホルダーは常に山括弧で囲みます:<プレースホルダー>
  • 簡潔に保つ:ヒントは短く明確にする必要があります

よくある質問

  • 「引数を指定しない場合はどうなりますか?」コマンドが期待通りに動作しない場合や、詳細情報を求められる場合があります。ヒントは最初から正しく入力できるようにするためのものです。
  • 「すべてのコマンドにヒントがありますか?」いいえ、引数を受け取るように設計されたコマンドのみにヒントがあります。追加の入力なしで動作するコマンドはヒントを表示しません。
  • 「ヒントを置き換えずにコマンドを使用できますか?」ヒントテキスト(<mode_slug> など)は実際の値に置き換える必要があります。ヒントテキストを残すと、コマンドが失敗するか予期しない動作をする可能性があります。

ベストプラクティス

コマンドの命名

  • 説明的でアクション指向の名前を使用する
  • 名前を簡潔だが明確に保つ
  • 複数の単語のコマンドにはハイフンを使用する
  • helptest などの汎用名を避ける
  • 注意:名前は自動的にスラッグ化されます(小文字、特殊文字の削除)
  • .md 拡張子は必要に応じて自動的に追加/削除されます

コマンドの内容

  • 明確な指示から始める
  • 構造化されたフォーマット(リスト、セクション)を使用する
  • 具体的な要件を含める
  • プロジェクトの慣例を参照する
  • コマンドを単一のタスクに集中させる

整理

  • 関連するコマンドをサブディレクトリにグループ化する
  • 一貫した命名パターンを使用する
  • 複雑なコマンドをドキュメント化する
  • コマンドをバージョン管理する
  • プロジェクトリポジトリでチームコマンドを共有する

トラブルシューティング

コマンドが表示されない

  • ファイルの場所を確認する:カスタムコマンドファイルが .bob/commands/ または ~/.bob/commands/ にあることを確認する
  • ファイル拡張子を確認する:カスタムコマンドは .md ファイルである必要があります

コマンドが見つからない

スラッシュコマンドが見つからない場合、LLMには次のように表示されます:

The slash command '/unknown-command' was not found. Please check the command name and try again.

コマンドの競合

  • カスタムプロジェクトコマンドは同じ名前のグローバルカスタムコマンドよりも優先されます
  • 競合を避けるためにユニークな名前を使用する
  • UIで重複した名前を作成する場合、数字が付加されます(例:new-command-1new-command-2

モードコマンドについて

スラッシュメニューには、AIの動作モードを根本的に変えるモード切り替えコマンド(/code/ask など)が含まれています。これらはテキストを挿入するだけでなく、AIコンテキスト全体を切り替えます。作成したカスタムモードもスラッシュコマンドとして表示されます(例:スラッグ reviewer のモードは /reviewer になります)。これらのモードコマンドはカスタムワークフローコマンドで上書きできません。

詳細については、モードおよびカスタムモードを参照してください。

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