設定

カスタム・モード

専門的な役割、ツール制限、チーム・ワークフローを持つカスタム・モードを作成して、Bobの動作を調整します。YAML形式を使ってグローバルまたはプロジェクト単位で設定できます。

カスタム・モードを使用する理由

  • 専門化: ドキュメント作成、テスト・エンジニアリング、セキュリティー・レビューなどの特定のタスク用にモードを最適化
  • セキュリティー: 機密操作のためにコマンドやファイル・アクセスを制限
  • チーム・コラボレーション: チーム内で標準化されたワークフローを共有
  • 実験: 他のモードに影響を与えずにさまざまな構成をテスト

モード・コンポーネント

コンポーネント説明
Slug内部およびモード固有の指示ファイルに使用される一意の識別子
NameBobインターフェースに表示される表示名
ロール定義Bobのペルソナと動作を定義するコア・アイデンティティーと専門知識
使用するタイミング(オプション)このモードを使用するタイミングのガイダンス、Orchestratorがタスク調整に使用
利用可能なツールモードが使用できるツール・グループとファイル・アクセス権限
カスタム指示(オプション)追加の動作ガイドラインまたはルール
説明(オプション)モード・ピッカーに表示される短い要約
許可されたサブエージェント(オプション)モードが使用できるサブエージェント・プリセットを制限

カスタム・モードの作成方法

設定メニューを使用するか、構成ファイルを手動で編集することで、カスタム・モードを作成できます。

設定メニューを使用する

  1. Bobパネルのアイコンをクリックして設定を開きます。
  2. モードタブを選択します。
  3. ボタンをクリックして新しいモードを作成します。
  4. 名前Slug保存場所ロール定義使用するタイミング(オプション)説明(オプション)利用可能なツールカスタム指示のフィールドに入力します。
  5. 保存をクリックします。

BobはYAML形式で新しいモードを保存します。手動のYAML構成を通じて、editツール・グループのファイル・タイプ制限を追加できます。

構成ファイルを手動で編集する

YAML形式でモード構成ファイルを手動で編集できます:

  • グローバル・モード: 設定 → モード → グローバル・モードを編集から~/.bob/settings/custom_modes.yamlを編集
  • プロジェクト・モード: プロジェクト内の.bob/custom_modes.yamlを編集します。設定 → モード → プロジェクト・モードを編集をクリック

これらのファイルは、YAML形式でカスタム・モードの配列を定義します。

~/.bob/settings/custom_modes.yamlまたは.bob/custom_modes.yaml):

customModes:
  - slug: docs-writer
    name: 📝 ドキュメント・ライター
    description: Markdownドキュメントを作成および改訂します。
    roleDefinition: あなたは明確なドキュメントに特化した技術ライターです。
    whenToUse: ドキュメントの作成と編集にこのモードを使用します。
    customInstructions: ドキュメントの明確さと完全性に焦点を当ててください。
    groups:
      - read
      - - edit
        - fileRegex: ".*\\.(md|mdx)$"
          description: Markdownファイルのみ
      - skill

モード構成プロパティ

利用可能なツール・グループ

  • read: ファイルとディレクトリーを読み取る
  • edit: ファイルを変更する(fileRegexで制限可能)
  • execute: ターミナル・コマンドを実行する
  • mcp: MCPサーバーにアクセスする
  • skill: スキルをロードする
  • workflow: 事前定義されたワークフローを起動する
  • todo: タスクのTODOリストを更新する
  • subtask: サブタスクを作成する
  • subagent: サブエージェントを生成する
  • mode: 別のモードに切り替える

編集ツールのファイル制限

YAML形式でfileRegexを使用して、モードが編集できるファイルを制限します:

groups:
  - read
  - - edit
    - fileRegex: ".*\\.(js|ts)$"
      description: JavaScriptとTypeScriptファイルのみ

一般的な正規表現パターン

パターンマッチ例のファイル
.*\.md$Markdownファイルreadme.md, docs/guide.md
^src/.*srcディレクトリー内のファイルsrc/app.js, src/components/button.tsx
`.*.(cssscss)$`CSSとSCSSファイル
`^(?!.*(testspec)).*.(jsts)$`
ヒント:

手動で書くのではなく、Bobに正規表現パターンを生成してもらいましょう。

重要な検証ルール

  • slugは文字、数字、ハイフンのみを使用する必要があります。
  • slugを一意に保ちます。重複するslugはモードが正しくロードされない原因となる可能性があります。
  • サポートされているグループ名のみを使用してください。不明なグループ名はアクセスを許可しません。
  • groupsを省略すると、モードはグループ化されたツールを取得しません。
  • allowedSubagentsを設定すると、そのモードではリストされたサブエージェント・プリセットのみが使用可能になります。
  • 無効なfileRegex値は、モード・ファイルのロードを妨げる可能性があります。

モード固有の指示を追加する

ディレクトリー構造(推奨)または単一ファイルのいずれかを使用して、モード固有の指示を追加できます。

推奨方法(ディレクトリー構造):

01-style-guide.md
02-formatting.txt

代替方法(単一ファイル):

.bobrules-{mode-slug}

両方が存在する場合、ディレクトリー・メソッドが優先されます。ディレクトリー内のファイルはアルファベット順に読み込まれ、モード構成のcustomInstructionsプロパティーと組み合わされます。

モード固有の指示を追加するには:

  1. プロジェクト・ルートに.bob/rules-{mode-slug}/ディレクトリー(または.bobrules-{mode-slug}ファイル)を作成します。
  2. ディレクトリーに指示ファイルを追加します(例:01-style-guide.md02-formatting.txt)。

Bobは、モードを使用するときにこれらの指示を自動的に読み込みます。

デフォルト・モードをオーバーライドする方法

プロジェクト構成で同じslugを持つカスタム・モードを作成することで、デフォルトのBobモード(Agent、Ask、Planなど)をオーバーライドできます。

デフォルト・モードをオーバーライドするには:

  1. Bobパネルのアイコンをクリックして設定を開きます。
  2. モードタブを選択します。
  3. プロジェクト・モードを編集をクリックして.bob/custom_modes.yamlファイルを編集します。
  4. オーバーライドしたいデフォルト・モードのslugでモード構成を追加します:
customModes:
  - slug: ask  # デフォルトのAskモードに一致
    name: ❓ Ask
    roleDefinition: あなたはこのReactおよびTypeScriptコードベースの知識豊富なアシスタントです。
    whenToUse: コードベースについて質問するときにこのモードを使用します。
    customInstructions: 回答時は常に関連ファイルを参照してください。ユーザーが変更を試みる場合はAskモードを提案してください。
    groups:
      - read
      - mcp
      - skill

プロジェクト固有のオーバーライドは、グローバル・オーバーライドよりも優先され、グローバル・オーバーライドはデフォルトよりも優先されます。

YAML形式

YAMLはカスタム・モードの推奨および推奨形式です:

YAMLの利点:

  • インデント・ベースの構造でより読みやすい
  • コメント(#)をサポート
  • よりクリーンな複数行文字列構文
  • 必要な句読点が少ない
  • 編集と保守が容易

自動移行:

  • グローバル・モード: 起動時にレガシーcustom_modes.jsonからcustom_modes.yamlに自動的に移行
  • プロジェクト・モード: UIを介して編集するときにYAMLに変換

レガシーJSON形式のファイルは下位互換性のために引き続きサポートされていますが、すべての新しいモードはYAML形式で作成する必要があります。

詳しくはこちら

カスタムのプロダクト・マネージャー・モードを作成してBobの機能を拡張するチュートリアルで実際に試してみましょう。

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