Skip to content

カスタムルール

カスタムルールは、プロジェクト固有の動作や制約を定義し、VJSP AIエージェント全体で一貫性を確保するための強力な方法を提供します。カスタムルールを使用することで、一貫したフォーマットを強制したり、機密ファイルへのアクセスを制限したり、コーディング規約を適用したり、AIの動作をプロジェクトの特定のニーズに合わせて調整できます。

概要

カスタムルールにより、すべてのAIモデルがプロジェクトとやり取りする際に従うテキスト形式の指示を作成できます。これらのルールはガードレールおよび規約として機能し、コードベースとのすべてのやり取りにおいて一貫して適用されます。ルールはファイルシステム経由または組み込みUIインターフェースを通じて管理できます。

ルールの形式

カスタムルールはプレーンテキストで記述可能ですが、AIモデルによるより良い整理と理解のためにMarkdown形式の使用を推奨します。Markdownの構造化された性質により、モデルがルールをより効果的に解析・理解できるようになります。

  • ルールカテゴリの定義にはMarkdown見出し(###など)を使用
  • 具体的な項目や制約の列挙にはリスト(-*)を使用
  • 必要に応じてコード例を含めるにはコードブロック(```)を使用

ルールの種類

VJSPは以下の2種類のカスタムルールをサポートしています:

  • プロジェクトルール:現在のプロジェクトワークスペースにのみ適用
  • グローバルルール:すべてのプロジェクトおよびワークスペースに適用

UIサポートについて

組み込みのルール管理インターフェースは汎用ルールのみをサポートしています。モード固有のルールはファイルシステム経由でのみ設定可能です。

ルールの保存場所

プロジェクトルール

カスタムルールは主に.vjsp/rules/ディレクトリから読み込まれます。これはプロジェクトレベルのルールを整理するための推奨アプローチです。通常、各ルールを説明的な名前を持つ個別のMarkdownファイルに保存することをお勧めします。ディレクトリ構造の例:

plaintext
project/
├── .vjsp/
│   ├── rules/
│   │   ├── formatting.md
│   │   ├── restricted_files.md
│   │   └── naming_conventions.md
├── src/
└── ...

グローバルルール

グローバルルールはユーザーのホームディレクトリに保存され、すべてのプロジェクトに適用されます。ディレクトリ構造の例:

plaintext
~/.vjsp/
├── rules/
│   ├── coding_standards.md
│   ├── security_guidelines.md
│   └── documentation_style.md

UIによるルール管理

VJSPには、.vjsp/rules/ディレクトリ内のファイルを手動で編集せずにカスタムルールを管理できる組み込みインターフェースが備わっています。VJSPウィンドウの右下隅にあるアイコンをクリックすると、ルール管理インターフェースが開きます。

このインターフェースでは以下の操作が可能です:

  • 有効なすべてのルール(プロジェクトルールおよびグローバルルールを含む)を表示
  • ルールを削除せずにオン/オフを切り替え
  • インターフェース内で直接ルールを作成・編集
  • カテゴリおよび優先度でルールを整理

ルールの読み込み優先順位

汎用ルール(すべてのモードで有効)

ルールは以下の優先順位で読み込まれます:

  1. グローバルルール(~/.vjsp/rules/から読み込み)
  2. プロジェクトルール(.vjsp/rules/から読み込み)

グローバルルールとプロジェクトルールの間に競合が生じた場合、プロジェクトルールが優先されます

ⓘ 注意

ルールファイルは.vjsp/rules/ディレクトリ内に配置することを強く推奨します。この構造化されたアプローチにより、細かい粒度でのルール管理が可能になり、責任の明確な分離が保たれ、将来のバージョンにおけるベストプラクティスにも適合します。

モード固有ルール

システムはモード固有ルールもサポートしており、これらは.vjsp/rules-${mode}/ディレクトリから独立して読み込まれます。

現在、モード固有ルールはプロジェクトレベルの設定のみをサポートしています。汎用ルールとモード固有ルールの両方が存在する場合、実行時にはモード固有ルールがより高い優先順位を持ちます

カスタムルールの作成

UI経由でのルール作成

ルールを作成・管理する最も簡単な方法は、組み込みUIを使用することです:

  1. VJSPパネルからルール管理インターフェースにアクセス
  2. プロジェクトルールまたはグローバルルールのいずれかを作成
  3. インターフェース内で直接ルールを作成・編集・切り替え
  4. ルールは自動的に保存され、即座に有効になります

ファイルシステム経由でのルール作成

手動でルールを作成するには:

プロジェクトルールの作成手順:

  1. .vjsp/rules/ディレクトリが存在しない場合は作成
  2. このディレクトリ内に説明的な名前のMarkdownファイルを作成
  3. Markdown形式でルール内容を記述
  4. ファイルを保存

グローバルルールの作成手順:

  1. ~/.vjsp/rules/ディレクトリが存在しない場合は作成
  2. このディレクトリ内に説明的な名前のMarkdownファイルを作成
  3. Markdown形式でルール内容を記述
  4. ファイルを保存

一度作成されると、ルールはその後のすべてのVJSPインタラクションに自動的に適用され、更新も即座に反映されます。

ルールの例

例1:テーブルのフォーマット要件

markdown
# テーブルのフォーマット要件
テーブルを生成する際、すべての列ヘッダーに感嘆符(!)を追加しなければなりません。

このルールにより、AIはプロジェクト内でテーブルを生成する際に、すべての列ヘッダーに自動的に感嘆符を追加します。

例2:機密ファイルへのアクセス制限

markdown
# 制限対象ファイル一覧
以下のファイルには機密データが含まれています。AIはこれらのファイルを決して読み取ってはいけません:
- supersecrets.txt
- credentials.json
- .env

このルールにより、ユーザーが明示的に要求した場合でも、AIが指定された機密ファイルを読み取ったりアクセスしたりすることを防ぎます。

使用例

カスタムルールは以下の開発シナリオで広く適用可能です:

  • コードスタイル:一貫したコードフォーマット、命名規則、ドキュメント標準を強制
  • セキュリティ制御:機密ファイルやディレクトリへのアクセスを制限
  • プロジェクト構造:異なるファイルタイプのための標準化されたパスを定義
  • ドキュメント要件:ドキュメントのフォーマット標準および内容要件を指定
  • テスト基準:テストケースの構造ガイドラインを定義
  • API仕様:APIの使用パターンおよびドキュメント要件を明確化
  • エラー処理:コード内の例外処理の統一規約を確立

カスタムルールの具体例

  • 「プロジェクト固有のコードスタイルガイドを厳密に遵守すること」
  • 「インデントにはスペースを使用し、幅は4スペースとする」
  • 「変数名はcamelCaseを使用すること」
  • 「すべての新規関数にはユニットテストを含めること」
  • 「コードを提供する前に設計の根拠を説明すること」
  • 「コードの可読性と保守性を優先すること」
  • 「利用可能な場合は主流のオープンソースライブラリを優先すること」
  • 「新しいWebサイト機能を追加する際は、レスポンシブデザインおよびアクセシビリティ準拠を確保すること」

ベストプラクティス

  • 明確性:各ルールの範囲と目的を明確に定義
  • 分類:関連するルールを統一された見出しの下にグループ化し、可読性を向上
  • 関心の分離:異なるタイプのルールを別々のファイルに保存
  • 例の提供:期待されるルール動作を示すためにコード例を含める
  • 簡潔性:ルールの説明を明確・簡潔かつ曖昧さなく保つ
  • 動的更新:プロジェクト要件の進化に応じてルールを定期的に見直し・更新

💡 プロのヒント:バージョン管理されたチーム標準

チームでの共同作業を行う場合、.vjsp/rules/codestyle.mdのようなルールファイルをバージョン管理システムに含めることを検討してください。これにより、開発チーム全体で一貫したVJSPの動作が保証され、統一されたコードスタイル、ドキュメント標準、開発ワークフローが強制されます。

制限事項

  • ルールの強制はAIモデルが指示を最適に解釈する能力に依存するため、100%の正確性は保証できません
  • 複雑なルールには、モデルの正確な理解を確保するために複数の例が必要になる場合があります
  • プロジェクトルールはそれぞれのプロジェクトにのみ適用されます
  • グローバルルールはすべてのプロジェクトに適用されます

トラブルシューティング

カスタムルールが期待通りに動作しない場合は、以下の手順でトラブルシューティングを行ってください:

  1. UIでルールの状態を確認:ルール管理インターフェースを使用して、対象のルールが有効で正しく読み込まれていることを確認
  2. ルール形式を検証:ルールが標準的なMarkdownで記述され、明確で曖昧さのない構造になっていることを確認
  3. ルールのパスを確認:ルールがサポートされているディレクトリに配置されていることを確認
    • グローバルルール:~/.vjsp/rules/
    • プロジェクトルール:.vjsp/rules/
  4. ルールの明確性を確認:ルールの説明が正確で曖昧さがないことを確認
  5. IDEを再起動:すべてのルール設定が完全に読み込まれていることを保証するためにエディタを再起動

関連機能