カスタム・モード
専門的な役割、ツール制限、チーム・ワークフローを持つカスタム・モードを作成して、Bobの動作を調整します。YAML形式を使ってグローバルまたはプロジェクト単位で設定できます。
カスタム・モードを使用する理由
- 専門化: ドキュメント作成、テスト・エンジニアリング、セキュリティー・レビューなどの特定のタスク用にモードを最適化
- セキュリティー: 機密操作のためにコマンドやファイル・アクセスを制限
- チーム・コラボレーション: チーム内で標準化されたワークフローを共有
- 実験: 他のモードに影響を与えずにさまざまな構成をテスト
モード・コンポーネント
| コンポーネント | 説明 |
|---|---|
| Slug | 内部およびモード固有の指示ファイルに使用される一意の識別子 |
| Name | Bobインターフェースに表示される表示名 |
| ロール定義 | Bobのペルソナと動作を定義するコア・アイデンティティーと専門知識 |
| 使用するタイミング | (オプション)このモードを使用するタイミングのガイダンス、Orchestratorがタスク調整に使用 |
| 利用可能なツール | モードが使用できるツール・グループとファイル・アクセス権限 |
| カスタム指示 | (オプション)追加の動作ガイドラインまたはルール |
| 説明 | (オプション)モード・ピッカーに表示される短い要約 |
| 許可されたサブエージェント | (オプション)モードが使用できるサブエージェント・プリセットを制限 |
カスタム・モードの作成方法
設定メニューを使用するか、構成ファイルを手動で編集することで、カスタム・モードを作成できます。
設定メニューを使用する
- Bobパネルのアイコンをクリックして設定を開きます。
- モードタブを選択します。
- ボタンをクリックして新しいモードを作成します。
- 名前、Slug、保存場所、ロール定義、使用するタイミング(オプション)、説明(オプション)、利用可能なツール、カスタム指示のフィールドに入力します。
- 保存をクリックします。
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 |
| `.*.(css | scss)$` | CSSとSCSSファイル |
| `^(?!.*(test | spec)).*.(js | ts)$` |
手動で書くのではなく、Bobに正規表現パターンを生成してもらいましょう。
重要な検証ルール
slugは文字、数字、ハイフンのみを使用する必要があります。- 各
slugを一意に保ちます。重複するslugはモードが正しくロードされない原因となる可能性があります。 - サポートされているグループ名のみを使用してください。不明なグループ名はアクセスを許可しません。
groupsを省略すると、モードはグループ化されたツールを取得しません。allowedSubagentsを設定すると、そのモードではリストされたサブエージェント・プリセットのみが使用可能になります。- 無効な
fileRegex値は、モード・ファイルのロードを妨げる可能性があります。
モード固有の指示を追加する
ディレクトリー構造(推奨)または単一ファイルのいずれかを使用して、モード固有の指示を追加できます。
推奨方法(ディレクトリー構造):
代替方法(単一ファイル):
.bobrules-{mode-slug}両方が存在する場合、ディレクトリー・メソッドが優先されます。ディレクトリー内のファイルはアルファベット順に読み込まれ、モード構成のcustomInstructionsプロパティーと組み合わされます。
モード固有の指示を追加するには:
- プロジェクト・ルートに
.bob/rules-{mode-slug}/ディレクトリー(または.bobrules-{mode-slug}ファイル)を作成します。 - ディレクトリーに指示ファイルを追加します(例:
01-style-guide.mdと02-formatting.txt)。
Bobは、モードを使用するときにこれらの指示を自動的に読み込みます。
デフォルト・モードをオーバーライドする方法
プロジェクト構成で同じslugを持つカスタム・モードを作成することで、デフォルトのBobモード(Agent、Ask、Planなど)をオーバーライドできます。
デフォルト・モードをオーバーライドするには:
- Bobパネルのアイコンをクリックして設定を開きます。
- モードタブを選択します。
- プロジェクト・モードを編集をクリックして
.bob/custom_modes.yamlファイルを編集します。 - オーバーライドしたいデフォルト・モードの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の機能を拡張するチュートリアルで実際に試してみましょう。