設定

カスタム・ルール

カスタム・ルールは、Bobがリクエストにどのように応答するかに影響を与え、出力を特定の設定やプロジェクト要件に合わせます。カスタム・ルールを設定して、Bobのコーディング・スタイル、ドキュメント・アプローチ、意思決定プロセスを制御できます。

カスタム・ルールとは?

カスタム・ルールは、Bobがニーズに合わせてタスクにアプローチする方法を決定する設定、制約、ガイドラインを定義することで、Bobのデフォルト動作を拡張します。

一般的な用途には以下が含まれます:

  • コーディング・スタイルの設定(インデント、命名規則)
  • ドキュメント形式と標準
  • テスト方法論と要件
  • プロジェクト・ワークフローとプロセス
  • チーム固有の規則

モードのカスタム・ルールを追加する

カスタム・ルールをモードに追加するには2つの方法があります:

UIを使用

すべてのプロジェクトに適用されるルールを構成します:

  1. Bobサイドバーの右上隅にある3つのドットをクリックします。
  2. モードをクリックします。
  3. ルールを編集したいモードを選択します。
  4. 編集をクリックします。
  5. **モード固有のカスタム指示(オプション)**までスクロールします。
  6. ルールを入力します。
  7. 保存をクリックします。

モード固有のルール・ファイルを使用

モードは、.bob/rules-{mode-slug}/ディレクトリーに保存された追加のルール・ファイルを持つこともできます:

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

ディレクトリー内のファイルはアルファベット順に読み込まれ、モード構成のcustomInstructionsプロパティと組み合わされます。詳細については、カスタム・モードを参照してください。

プロジェクト・レベルのルールを使用してBobの動作を標準化する方法の詳細をご覧ください。

ルール・スコープ

Bobは、ルールが適用される場所を決定する2つのルール・スコープをサポートしています:

  • グローバル・ルール: すべてのプロジェクトに自動的に適用
  • ワークスペース・ルール: 現在のプロジェクト内でのみ適用

個人または組織全体の標準にはグローバル・ルールを使用します。プロジェクト固有の要件にはワークスペース・ルールを使用します。

構成方法

ディレクトリー・ベースの構成

ワークスペース・ルートの.bob/以下のディレクトリーを使用します:

ワークスペース構造:

coding-style.md
typescript.md
  • rules/ - すべてのモードの一般的なルール
  • rules-agent/ - Agentモード固有のルール

グローバル構造:

Linux/macOS: ~/.bob/rules/ Windows: %USERPROFILE%\.bob\rules\

ワークスペース・ルールを作成:

mkdir -p .bob/rules
echo "# プロジェクト標準" > .bob/rules/coding-style.md

グローバル・ルールを作成:

# Linux/macOS
mkdir -p ~/.bob/rules
echo "# グローバル標準" > ~/.bob/rules/coding-standards.md

# Windows
mkdir %USERPROFILE%\.bob\rules
echo # グローバル標準 > %USERPROFILE%\.bob\rules\coding-standards.md

ルールの優先順位

Bobは、次の順序で複数のソースからルールを組み合わせます:

  1. グローバル・ルール~/.bob/rules/
  2. ワークスペース・ルール.bob/rules/

各レベル内で、モード固有のルールは一般的なルールの前に読み込まれます。ワークスペース・ルールはグローバル・ルールをオーバーライドできます。

効果的なルールの書き方

具体的で実行可能に

良い例: 「JavaScriptファイルのインデントには4つのスペースを使用」

避けるべき: 「コードを美しくフォーマット」

明確な構造を使用

トピック別にルールを整理:

# コード・スタイル
- 変数にはcamelCaseを使用
- クラスにはPascalCaseを使用

# テスト
- すべてのパブリック関数のユニットテストを書く
- テスト・フレームワークとしてJestを使用

# ドキュメント
- パブリックAPIにJSDocコメントを追加

効果的なルールの例

  • 「常にインデントにスペースを使用し、幅は4スペース」
  • 「変数名にはcamelCaseを使用」
  • 「すべての新機能のユニットテストを書く」
  • 「コードを提供する前に推論を説明」
  • 「Webサイトに機能を追加する際は、レスポンシブでアクセス可能であることを確認」

高度な構成

モード固有のルール

専用ディレクトリーで特定のモードをターゲット:

ディレクトリー目的
rules/すべてのモードの一般的なルール
rules-agent/Agentモードのみ
rules-plan/Planモードのみ
rules-ask/Askモードのみ
rules-{mode}/任意のカスタム・モード

AGENTS.mdファイルの使用

チームの標準化のために、ワークスペース・ルートにAGENTS.mdファイルを使用できます:

# チーム標準
- 企業のコーディング・ガイドラインに従う
- 承認されたライブラリーのみを使用
- すべてのAPI変更を文書化

重要な詳細:

  • デフォルトで自動的に読み込まれる
  • プロジェクトでバージョン管理
  • 設定で"bob-code.useAgentRules": falseで無効化
  • モード固有のルールの後、一般的なワークスペース・ルールの前に読み込まれる

ファイルの動作

  • 再帰的読み取り: Bobはサブディレクトリーを含むルール・ディレクトリー内のすべてのファイルを読み取る
  • アルファベット順: ファイルはファイル名のアルファベット順に処理
  • 自動フィルタリング: キャッシュ・ファイルを除外(.DS_Store*.bak*.cache*.log*.tmpThumbs.db
  • シンボリック・リンク: 最大深度5でサポート
  • 空のファイル: 静かにスキップ

チームの標準化

プロジェクト・レベルの標準

バージョン管理下のワークスペース.bob/rules/ディレクトリーを使用:

# バージョン管理に追加
git add .bob/rules/
git commit -m "Bobカスタム・ルールを追加"

これにより、特定のプロジェクトのチーム・メンバー間で一貫した動作が保証されます。

組織全体の標準

チーム・メンバーにグローバル・ルールを配布:

  1. 共有ルール・リポジトリーを作成
  2. チーム・メンバーが~/.bob/rules/にクローン
  3. 一貫性のために定期的に更新

ハイブリッド・アプローチ

両方のアプローチを組み合わせることができます:

  • 組織標準のグローバル・ルール
  • プロジェクト固有の要件のワークスペース・ルール
  • 必要に応じてワークスペース・ルールがグローバル・ルールをオーバーライド
このトピックはいかがですか?