> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Rules & AGENTS.md

> すべてのセッションでエージェントを導く、常時適用の指示と前提情報を与えます

Rules は、プロジェクト内で Devin CLI の動作を規定する永続的な指示です。各セッションの開始時にエージェントの前提情報へ注入されるため、チーム全体で一貫した動作を保てます。

Rules の一般的な用途には、コーディング標準、アーキテクチャのガイドライン、推奨ライブラリ、テストの慣行、プロジェクト固有の制約などがあります。

**コーディング品質を高め、完了までの時間を短縮し、コストを抑えるために**、可能な限り **Skills を代わりに利用することを強く推奨します**。Skills は、関連する場合にのみ前提情報へ注入されます。**Rules と AGENTS は、できるだけ小さく保つべきです。**

**推奨パターン**は、特定の状況でモデルが利用すべき Skills を参照するために Rules を使うことです。

***

<div id="agentsmd">
  ## AGENTS.md
</div>

ルールを追加する最も簡単な方法は、プロジェクトのルートディレクトリに `AGENTS.md` ファイルを配置することです。

```markdown theme={null}
# プロジェクトルール

- Use TypeScript for all new files
- Follow the existing patterns in src/components/
- Always run `npm run lint` before committing
- Use pnpm, not npm or yarn
- Write tests for all new utility functions
```

Devin CLIはこのファイルを自動的に読み込みます。

<Tip>
  `AGENTS.md` は、プロジェクトルールを定義する方法として推奨されています。読みやすく、バージョン管理でき、複数のAIツールで利用できます。
</Tip>

***

<div id="global-rules">
  ## グローバルルール
</div>

ユーザー設定ディレクトリに `AGENTS.md` ファイルを配置すると、**すべてのプロジェクト**に適用されるルールを作成できます。

<Tabs>
  <Tab title="Linux / macOS">
    ```
    ~/.config/devin/AGENTS.md
    ```
  </Tab>

  <Tab title="Windows">
    ```
    %APPDATA%\devin\AGENTS.md
    ```
  </Tab>
</Tabs>

グローバルルールは、どのプロジェクトで作業している場合でも、すべてのセッションの開始時に読み込まれます。どこでも共通して適用したい個人的な設定に利用してください。

```markdown theme={null}
# My Global Rules

- Always write commit messages in conventional commit format
- Prefer functional patterns over imperative code
- Run tests before suggesting a task is complete
```

グローバルルールはプロジェクトルールと併用でき、両方が同時に読み込まれてアクティブになります。この場所では `AGENT.md` にも対応しています。

<Tip>
  Claude Codeを利用する場合、Devin CLI は `~/.claude/CLAUDE.md` もグローバルルールとして読み取ります。
</Tip>

***

<div id="personal-rules-with-agentslocalmd">
  ## AGENTS.local.md を使った個人用ルール
</div>

共同作業者と共有したくない個人的な指示 — たとえば、好みの作業スタイル、テストの進め方、レビューの方針など — がある場合は、`AGENTS.md` の隣に `AGENTS.local.md` ファイルを作成してください:

```markdown theme={null}
# 個人ルール

- 修正を実装する前に、必ず失敗するテストを書くことから始める
- 命令型コードよりも関数型パターンを優先する
- タスクを完了としてマークする前に、テストスイート全体を実行する
```

このファイルは、`AGENTS.md` と同じく常時適用され、あわせて読み込まれます。ローカルのまま保持するため、`.gitignore` に追加してください:

```gitignore theme={null}
AGENTS.local.md
```

<Tip>
  これは `.devin/config.local.json` と同じ命名規則です。`.local.` という接尾辞は、コミットすべきではない個人用のオーバーライドであることを示します。
</Tip>

***

<div id="supported-file-names">
  ## サポートされているファイル名
</div>

Devin CLI は、以下のいずれのファイルからでもルールを読み込みます。

| ファイル              | 備考                            |
| ----------------- | ----------------------------- |
| `AGENTS.md`       | 推奨                            |
| `AGENTS.local.md` | 個人用ルール (gitignored)           |
| `AGENT.md`        | 単数形の代替名                       |
| `.windsurfrules`  | レガシー Windsurf の workspace ルール |
| `CLAUDE.md`       | Claude Code と互換性あり            |

これらはすべて同じように扱われ、内容は常時適用なルールとして読み込まれます。

これらのファイルは、プロジェクト内の複数の階層 (ルートに限りません) に配置できます。workspace ルートにあるファイルは、セッション開始時に読み込まれます。サブディレクトリ内のファイルは、エージェントがそのディレクトリ内のファイルにアクセスしたときに遅れて検出されるため、前提情報は codebase の該当部分に絞られた状態に保たれます。

また、`CLAUDE.md` を除き、これらのファイルはすべてのプロジェクトに適用できるよう [global config directory](#global-rules) に配置することもできます。`CLAUDE.md` は `~/.claude/CLAUDE.md` からグローバルに読み込まれます。

***

<div id="rules-from-other-tools">
  ## 他ツールのルール
</div>

別のAIコーディングツールを使っている場合でも、Devin CLIは既存のルールを読み取れます。

<AccordionGroup>
  <Accordion title="Cursor">
    Devin CLIは `.cursor/rules/*.md` と `.cursor/rules/*.mdc` を読み取ります。

    Cursorのルールでは、frontmatterを使って有効化を制御できます。

    ```markdown theme={null}
    ---
    description: "React component guidelines"
    globs: "src/components/**/*.tsx"
    alwaysApply: false
    ---

    hooksを使った関数コンポーネントを使用します。クラスコンポーネントは決して使用しません。
    ```

    **有効化の動作:**

    * `alwaysApply: true` — 常にアクティブ
    * `globs` が指定されている — 一致するファイルを扱っているときにアクティブ
    * `description` のみ — エージェントが適用するかどうかを判断
    * 上記のいずれでもない — ユーザーが手動でトリガーする必要があります
  </Accordion>

  <Accordion title="Windsurf">
    Devin CLIは `.windsurf/rules/*.md` と `.windsurf/global_rules.md` を読み取ります。

    **サブディレクトリのサポート:** `.windsurf/rules/` ディレクトリは、ルートだけでなくプロジェクト内の複数の階層に配置できます。workspaceルートのルールはセッション開始時に読み込まれます。サブディレクトリ内のルールは遅延的に検出されます。つまり、エージェントがそのディレクトリ内のファイルにアクセスすると、その場所で見つかった `.windsurf/rules/` (および親ディレクトリをたどってworkspaceルートまでにあるもの) が自動的に読み込まれます。これにより、プロジェクトの無関係な部分にあるルールでエージェントの前提情報が汚染されるのを防げます。

    Windsurfのルールでもfrontmatterを利用できます。

    ```markdown theme={null}
    ---
    description: "API design rules"
    trigger: always_on
    ---

    すべてのAPIエンドポイントは、一貫したエンベロープ形式のJSONを返す必要があります。
    ```

    **トリガー値:** `always_on`, `manual`, `model_decision`, `agent`, `glob`
  </Accordion>

  <Accordion title="Claude Code">
    Devin CLIは `.claude/` ディレクトリを読み取ります。
  </Accordion>
</AccordionGroup>

<Warning>
  Devin CLIは `.codeiumignore` ファイルをサポートしていません。Codeiumの自動補完を利用していてignoreパターンを設定している場合、それらのパターンはDevin CLIには適用されません。
</Warning>

***

<div id="controlling-imports">
  ## インポートの制御
</div>

設定ファイル (`~/.config/devin/config.json` — Windows では `%APPDATA%\devin\config.json` — または `.devin/config.json`) で、特定のツール形式からの読み込みを有効または無効にできます。

```json theme={null}
{
  "read_config_from": {
    "agents_standard": true,
    "cursor": true,
    "windsurf": true,
    "claude": true
  }
}
```

`AGENTS.md`、`AGENTS.local.md`、`AGENT.md`、および `.windsurfrules` の標準的なプロジェクトルールは、既定で参照されます。それらのインポートを無効にするには、`"agents_standard": false` を設定します。

***

<div id="rule-activation-types">
  ## ルールの有効化タイプ
</div>

外部形式から読み込まれたルールでは、有効化の挙動が異なる場合があります。

| Type               | Behavior                           |
| ------------------ | ---------------------------------- |
| **Always-on**      | すべてのセッションでアクティブ。ユーザーによる操作は不要       |
| **Glob-activated** | エージェントが特定のパターンに一致するファイルを扱う場合にアクティブ |
| **Agent-decided**  | ルールの説明に基づいて、適用するタイミングをエージェントが判断    |
| **User-invocable** | ユーザーが明示的にトリガーした場合にのみアクティブ          |

`AGENTS.md` のルールは常に「常時適用」です。

***

<div id="best-practices">
  ## ベストプラクティス
</div>

<CardGroup cols={2}>
  <Card title="ルールは簡潔に保つ" icon="compress">
    長く冗長なルールは、エージェントの注意を散漫にします。最も重要なことに絞ってください。
  </Card>

  <Card title="具体的に書く" icon="bullseye">
    「適切なパッケージマネージャーを利用する」よりも、「pnpmを利用する」のほうが効果的です。具体的な指示のほうが従いやすくなります。
  </Card>

  <Card title="使用例を含める" icon="code">
    説明だけでなく、期待するパターンを示してください。
  </Card>

  <Card title="バージョン管理する" icon="code-branch">
    ルールはリポジトリで管理し、チーム全体が同じガイドラインの恩恵を受けられるようにしてください。
  </Card>
</CardGroup>

<Note>
  一般的なルールの多くでは、代わりに skills の利用を検討してください。skills を使うと、適用するタイミングや方法をより細かく制御できます。
</Note>
