設定

ファイルの無視

プロジェクトに `.bobignore` ファイルを作成して、Bob Shell がアクセスできるファイルを制御します。

概要

機能説明メリット
パスの除外特定のファイルまたはディレクトリへの Bob Shell のアクセスを防ぐ機密情報の保護
パターンマッチングglob パターンを使って複数のファイルを一致させるファイルタイプを効率的に除外する
否定のサポート特定のファイルの除外を上書きするきめ細かい制御
プロジェクト固有各プロジェクトが独自の除外ルールを持てるプロジェクトのニーズに合わせたカスタマイズ

.bobignore を使う理由

  • プライバシーの保護: API key や認証情報などの機密ファイルを非公開に保つ
  • パフォーマンスの向上: 操作を遅くする大きなバイナリファイルやディレクトリを除外する
  • ノイズの削減: 関連性の低いファイルを Bob Shell のコンテキストから除外する
  • フォーカスの制御: Bob Shell の注意をコードベースの最も関連性の高い部分に向ける

.bobignore の仕組み

.bobignore ファイルにパスを追加すると、このファイルを尊重する Bob Shell のツールは、一致するファイルとディレクトリを操作から自動的に除外します。たとえば、read_many_files コマンドを使用する場合、.bobignore ファイルにあるパスはスキップされます。

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│                 │     │                 │     │                 │
│  Your project   │────▶│  .bobignore     │────▶│  Files Bob Shell │
│  files          │     │  filter         │     │  can access     │
│                 │     │                 │     │                 │
└─────────────────┘     └─────────────────┘     └─────────────────┘

.bobignore ファイルへの変更を反映させるには、Bob Shell セッションを再起動する必要があります。

パターン構文

.bobignore ファイルは .gitignore と同じパターン構文に従います:

パターン説明
file.txt特定のファイルに一致するapikeys.txt
*.ext特定の拡張子を持つすべてのファイルに一致する*.log
/dir/ディレクトリに一致する/node_modules/
/path/to/fileパスをルートに固定する/src/config/secrets.json
!pattern前のパターンを否定する!important.md
#コメント行# API credentials

使い始め

.bobignore ファイルの作成

  1. プロジェクトディレクトリのルートに .bobignore という名前のファイルを作成する
  2. 除外したいファイルとディレクトリのパターンを追加する
  3. ファイルを保存して Bob Shell セッションを再起動する
# プロジェクトルートから
touch .bobignore
echo "# Files to ignore" > .bobignore
echo "secrets/" >> .bobignore

一般的な除外パターン

.bobignore ファイルに追加するとよい一般的なパターンをいくつか紹介します:

# 機密情報
.env
secrets/
*password*
*credential*
*apikey*

# 大きなディレクトリ
node_modules/
.git/
dist/
build/

# バイナリとメディアファイル
*.zip
*.tar.gz
*.mp4
*.jpg
*.png

# ログファイル
*.log
logs/

パターンの例

特定のディレクトリを除外する

ディレクトリとその内容をすべて除外するには:

# packages ディレクトリとその内容をすべて除外する
/packages/

# プロジェクト内のすべての node_modules ディレクトリを除外する
**/node_modules/

# ルートレベルのみの dist ディレクトリを除外する
/dist/

ワイルドカードの使用

ワイルドカードを使うと、類似したパターンの複数のファイルに一致させることができます:

# すべての markdown ファイルを除外する
*.md

# src ディレクトリ内のすべての JavaScript ファイルを除外する
/src/**/*.js

# 名前に "test" が含まれるすべてのファイルを除外する
*test*

否定の使用

特定のファイルの除外を上書きできます:

# すべての markdown ファイルを除外する
*.md

# ただし README.md は含める
!README.md

# docs ディレクトリ内のすべての markdown ファイルも含める
!docs/*.md

高度な使い方

パターンの組み合わせ

パターンを組み合わせることで、高度な除外ルールを作成できます:

# すべての JavaScript ファイルを除外する
*.js

# ただし src ディレクトリ内のすべてのファイルは含める
!src/**/*.js

# src ディレクトリ内のテストファイルは除外する
src/**/*.test.js

.bobignore ファイルのデバッグ

Bob Shell がアクセスしてほしいファイルを無視している、またはアクセスしてほしくないファイルにアクセスしている場合:

  1. .bobignore ファイルで競合するパターンを確認する
  2. より具体的なパターン(否定など)は一般的なパターンの後に記述することを覚えておく
  3. 変更後に Bob Shell セッションを再起動する
  4. 相対パスが期待どおりに動作しない場合は絶対パスを使用する

ベストプラクティス

  • シンプルに始める: 少数の必須パターンから始め、必要に応じて追加する
  • パターンにコメントを付ける: 特定のファイルが除外されている理由を説明するコメントを追加する
  • 具体的にする: 重要なファイルを誤って除外しないよう、正確なパターンを使用する
  • セキュリティを考慮する: 機密情報を含むファイルは常に除外する
  • 定期的にメンテナンスする: プロジェクトの変化に合わせて .bobignore ファイルを更新する
このトピックはいかがですか?