# フックの設定：スキャン対象を選ぶ

> ファイルをスキャンするフックが何を除外するかを、すべてのフックにまとめて、または 1 つずつ選べます。

正規 URL: https://lagune.ai/ja-JP/docs/hooks/configure
言語: ja-JP
原文: https://lagune.ai/docs/hooks/configure
最終更新日: 2026-11-04

`checkers` ブロックは `.lagune/configs.json` の中にあり、ファイルをスキャンするフックが何を除外するかを、すべてのフックにまとめて、または 1 つずつ設定します。

## 設定方法

パスやパターンはコマンドラインから追加・削除できます。パターンは、シェルに書き換えられないよう引用符で囲んでください：

```bash
npx lagune write add --ignore test/fixtures
npx lagune write add --ignore 'packages/*/dist' --checker secrets
npx lagune write remove --ignore test/fixtures
```

ファイルに直接書くこともできます：

```json
{
  "checkers": {
    "ignore": ["test/fixtures"],
    "secrets": { "gitignore": false, "ignore": ["test/fixtures", "temp"] }
  }
}
```

### 設定項目

| キー        | 値                                         | デフォルト | 説明                                                                                                       |
| ----------- | ------------------------------------------ | ---------- | ---------------------------------------------------------------------------------------------------------- |
| `gitignore` | `true` または `false`                      | `true`     | **Git** が無視するものを除外する。**Git** が追跡しているファイルは、どちらの場合もスキャンする。           |
| `ignore`    | プロジェクトルートからのパスまたはパターン | `[]`       | それぞれに一致するものと、その下にあるすべてを除外する。**Git** が追跡しているファイルであっても除外する。 |

`checkers` の直下に書いたキーは、すべてのチェッカーに適用されます。チェッカー名の下に書いたキーはそのチェッカーだけに適用され、共通のキーを置き換えます。そのため上の例では、`secrets` は **Git** が無視するものもスキャンし、`test/fixtures` と `temp` を除外します。`write add --ignore` でチェッカーに初めて専用のリストを作ると、そのリストは共通のリストのコピーから始まります。

### パターン

パターンはプロジェクトルートを起点とします。そのため `*.generated.ts` はルート直下のファイルにしか一致せず、`**/*.generated.ts` はどの階層のファイルにも一致します。名前は大文字と小文字の区別も含めて、完全に一致する必要があります。

| パターン            | 除外されるもの                                  |
| ------------------- | ----------------------------------------------- |
| `dist`              | プロジェクトルートにある `dist`                 |
| `packages/*/dist`   | `dist`（`packages` の下にある各フォルダー内）   |
| `**/dist`           | 階層を問わず、すべての `dist`                   |
| `**/*.generated.ts` | 名前が `.generated.ts` で終わるすべてのファイル |
| `fixture-?`         | `fixture-a`、`fixture-1` など                   |
| `[ab]-cache`        | `a-cache` と `b-cache`                          |
| `[*]x`              | `*x`（`*` を文字どおりに扱う）                  |

## 結果の読み方

レポートの最後に、スキャンで除外したパスの数を、何によって無視されたかの内訳とともに表示します：

```text
Skipped 25 paths that Git ignores and 3 paths that .lagune/configs.json ignores. Name one with --dir or --file to scan it.
```

`--dir` または `--file` で指定したパスは、設定にかかわらずスキャンします。エンジンが読み取れない設定があると、チェッカーはその設定を示すエラーを出して停止します。たとえば、`!` や空白で始まるパターン、プロジェクトの外に出るパターン、角かっこが閉じていないパターン、一致の判定に時間がかかりすぎるパターンです。

## よくある質問

### Lagune がこれらを自動で設定してくれますか？

いいえ。charter は、プロジェクトを読み取った結果、守るべきコードではないと判断したコミット済みのフォルダー（脆弱に見えるように書かれたテスト用フィクスチャなど）を一覧にし、番号で選んだものだけを記録します。

### チェッカーに Git が無視するものもスキャンさせるべきなのはどんなときですか？

リポジトリが信頼できるものではないとき（リポジトリ自身の .gitignore ファイルがコードを隠している可能性があります）や、ビルド時に埋め込まれたキーがビルドフォルダーに含まれている可能性があるときです。すべてのチェッカー、または 1 つのチェッカーに対して gitignore を false に設定してください。
