| --- |
| title: ルール |
| description: OpenCode のカスタム命令を設定します。 |
| --- |
| |
| `AGENTS.md` ファイルを作成することで、OpenCode にカスタム命令を提供できます。これは Cursor のルールと似ています。これには、特定のプロジェクトに合わせて LLM の動作をカスタマイズするために LLM のコンテキストに含まれる命令が含まれています。 |
|
|
| --- |
| |
| |
|
|
| 新しい `AGENTS.md` ファイルを作成するには、OpenCode で `/init` コマンドを実行します。 |
|
|
| :::tip |
| プロジェクトの `AGENTS.md` ファイルを Git にコミットする必要があります。 |
| ::: |
| `AGENTS.md` ファイルが生成されます。これは、OpenCode がプロジェクトをより適切にナビゲートするのに役立ちます。 |
|
|
| 既存の `AGENTS.md` ファイルがある場合、これはそれに追加しようとします。 |
|
|
| --- |
| |
| |
|
|
| このファイルを手動で作成することもできます。以下は、`AGENTS.md` ファイルに含めることができるいくつかの例です。 |
|
|
| ```markdown title="AGENTS.md" |
| |
|
|
| This is an SST v3 monorepo with TypeScript. The project uses bun workspaces for package management. |
|
|
| |
|
|
| - `packages/` - Contains all workspace packages (functions, core, web, etc.) |
| - `infra/` - Infrastructure definitions split by service (storage.ts, api.ts, web.ts) |
| - `sst.config.ts` - Main SST configuration with dynamic imports |
|
|
| |
|
|
| - Use TypeScript with strict mode enabled |
| - Shared code goes in `packages/core/` with proper exports configuration |
| - Functions go in `packages/functions/` |
| - Infrastructure should be split into logical files in `infra/` |
|
|
| |
|
|
| - Import shared modules using workspace names: `@my-app/core/example` |
| ``` |
|
|
| ここにプロジェクト固有の手順を追加します。これはチーム全体で共有されます。 |
|
|
| --- |
| |
| |
|
|
| OpenCode は、複数の場所からの `AGENTS.md` ファイルの読み取りもサポートしています。そして、これはさまざまな目的に役立ちます。 |
|
|
| |
|
|
| プロジェクト固有のルールのために、プロジェクトルートに `AGENTS.md` を配置します。これらは、このディレクトリまたはそのサブディレクトリで作業している場合にのみ適用されます。 |
|
|
| |
|
|
| `~/.config/opencode/AGENTS.md` ファイルにグローバルルールを含めることもできます。これは、すべての OpenCode セッションに適用されます。 |
|
|
| これは Git にコミットされておらず、チームと共有されていないため、LLM が従うべき個人ルールを指定するためにこれを使用することをお勧めします。 |
|
|
| |
|
|
| Claude Code から移行するユーザーのために、OpenCode はフォールバックとして Claude Code のファイル規則をサポートしています。 |
|
|
| - **プロジェクトルール**: プロジェクトディレクトリ内の `CLAUDE.md` (`AGENTS.md` が存在しない場合に使用されます) |
| - **グローバルルール**: `~/.claude/CLAUDE.md` (`~/.config/opencode/AGENTS.md` が存在しない場合に使用) |
| - **スキル**: `~/.claude/skills/` — 詳細については、[エージェントスキル](/docs/skills/) を参照してください。 |
|
|
| Claude Code の互換性を無効にするには、次の環境変数のいずれかを設定します。 |
|
|
| ```bash |
| export OPENCODE_DISABLE_CLAUDE_CODE=1 |
| export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 |
| export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 |
| ``` |
|
|
| --- |
| |
| |
|
|
| OpenCode が開始されると、次の順序でルールファイルが検索されます。 |
|
|
| 1. **ローカルファイル** (現在のディレクトリから上に移動) (`AGENTS.md`、`CLAUDE.md`) |
| 2. **グローバルファイル** (`~/.config/opencode/AGENTS.md`) |
| 3. **Claude Code ファイル** (`~/.claude/CLAUDE.md` にあります) (無効になっていない限り) |
|
|
| 最初に一致したファイルが各カテゴリで優先されます。たとえば、`AGENTS.md` と `CLAUDE.md` の両方がある場合、`AGENTS.md` のみが使用されます。同様に、`~/.config/opencode/AGENTS.md` は `~/.claude/CLAUDE.md` よりも優先されます。 |
|
|
| --- |
| |
| |
|
|
| `opencode.json` またはグローバル `~/.config/opencode/opencode.json` でカスタム命令ファイルを指定できます。これにより、あなたとあなたのチームは、既存のルールを AGENTS.md に複製するのではなく、再利用することができます。 |
|
|
| 例: |
|
|
| ```json title="opencode.json" |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"] |
| } |
| ``` |
|
|
| リモート URL を使用して Web から命令をロードすることもできます。 |
|
|
| ```json title="opencode.json" |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "instructions": ["https://raw.githubusercontent.com/my-org/shared-rules/main/style.md"] |
| } |
| ``` |
|
|
| リモート命令は 5 秒のタイムアウトでフェッチされます。 |
|
|
| すべての命令ファイルは `AGENTS.md` ファイルと結合されます。 |
|
|
| --- |
| |
| |
|
|
| OpenCode は `AGENTS.md` のファイル参照を自動的に解析しませんが、次の 2 つの方法で同様の機能を実現できます。 |
|
|
| |
|
|
| 推奨されるアプローチは、`instructions` の `opencode.json` フィールドを使用することです。 |
|
|
| ```json title="opencode.json" |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "instructions": ["docs/development-standards.md", "test/testing-guidelines.md", "packages/*/AGENTS.md"] |
| } |
| ``` |
|
|
| |
|
|
| `AGENTS.md` で明示的な命令を指定することで、OpenCode に外部ファイルを読み取るように教えることができます。実際の例を次に示します。 |
|
|
| ```markdown title="AGENTS.md" |
| |
|
|
| |
|
|
| CRITICAL: When you encounter a file reference (e.g., @rules/general.md), use your Read tool to load it on a need-to-know basis. They're relevant to the SPECIFIC task at hand. |
|
|
| Instructions: |
|
|
| - Do NOT preemptively load all references - use lazy loading based on actual need |
| - When loaded, treat content as mandatory instructions that override defaults |
| - Follow references recursively when needed |
|
|
| |
|
|
| For TypeScript code style and best practices: @docs/typescript-guidelines.md |
| For React component architecture and hooks patterns: @docs/react-patterns.md |
| For REST API design and error handling: @docs/api-standards.md |
| For testing strategies and coverage requirements: @test/testing-guidelines.md |
|
|
| |
|
|
| Read the following file immediately as it's relevant to all workflows: @rules/general-guidelines.md. |
| ``` |
|
|
| このアプローチにより、次のことが可能になります。 |
|
|
| - モジュール式の再利用可能なルールファイルを作成する |
| - シンボリックリンクまたは git サブモジュールを介してプロジェクト間でルールを共有する |
| - 詳細なガイドラインを参照しながら、AGENTS.md を簡潔に保ちます |
| - OpenCode が特定のタスクに必要な場合にのみファイルをロードするようにする |
|
|
| :::tip |
| モノリポジトリまたは共有標準を使用するプロジェクトの場合、グロブパターン (`opencode.json` など) で `packages/*/AGENTS.md` を使用する方が、手動で指示するよりも保守しやすくなります。 |
| ::: |
|
|