日本語
ドキュメント
ルール

Rules

opencode 向けのカスタム指示を設定します。

AGENTS.md ファイルを作成することで、opencode にカスタム指示を提供できます。これは Cursor のルールに似ています。ここには、特定のプロジェクト向けに動作をカスタマイズするために LLM のコンテキストに含められる指示が記述されます。


Initialize

新しい AGENTS.md ファイルを作成するには、opencode で /init コマンドを実行します。

ヒント: プロジェクトの AGENTS.md ファイルは Git にコミットすべきです。

/init はリポジトリ内の重要なファイルをスキャンし、コードベースから答えが得られない場合はいくつか的を絞った質問をすることがあり、その後、簡潔なプロジェクト固有のガイダンスとともに AGENTS.md を作成または更新します。

今後のエージェントセッションで最も必要になりそうな事柄に焦点を当てます:

  • ビルド、リント、テストのコマンド
  • 重要な場合のコマンドの実行順序と的を絞った検証手順
  • ファイル名だけでは明らかでないアーキテクチャやリポジトリ構造
  • プロジェクト固有の慣習、セットアップの癖、運用上の落とし穴
  • Cursor や Copilot のルールなど、既存の指示ソースへの参照

既に AGENTS.md がある場合、/init は単純に置き換えるのではなく、その場で改善します。


Example

このファイルを手動で作成することもできます。以下は、AGENTS.md ファイルに記述できる内容の例です。

AGENTS.md
# SST v3 Monorepo Project
 
This is an SST v3 monorepo with TypeScript. The project uses bun workspaces for package management.
 
## Project Structure
 
- `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
 
## Code Standards
 
- 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/`
 
## Monorepo Conventions
 
- Import shared modules using workspace names: `@my-app/core/example`

ここではプロジェクト固有の指示を追加しており、これはチーム全体で共有されます。


Types

opencode は、複数の場所から AGENTS.md ファイルを読み込むこともサポートしています。そして、これらは異なる目的を果たします。

Project

プロジェクト固有のルールには、プロジェクトのルートに AGENTS.md を配置します。これらは、このディレクトリまたはそのサブディレクトリで作業しているときにのみ適用されます。

Global

~/.config/opencode/AGENTS.md ファイルにグローバルなルールを持たせることもできます。これはすべての opencode セッションに適用されます。

これは Git にコミットされたりチームと共有されたりしないため、LLM が従うべき個人的なルールを指定するのに使うことをおすすめします。

Claude Code Compatibility

Claude Code から移行するユーザー向けに、OpenCode はフォールバックとして Claude Code のファイル規約をサポートしています:

  • Project rules : プロジェクトディレクトリの CLAUDE.mdAGENTS.md が存在しない場合に使用)
  • Global rules : ~/.claude/CLAUDE.md~/.config/opencode/AGENTS.md が存在しない場合に使用)
  • Skills : ~/.claude/skills/ — 詳細は Agent Skills を参照

Claude Code との互換性を無効にするには、次の環境変数のいずれかを設定します:

export OPENCODE_DISABLE_CLAUDE_CODE=1        # Disable all .claude support
export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 # Disable only ~/.claude/CLAUDE.md
export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skills

Precedence

opencode は起動時に、次の順序でルールファイルを探します:

  1. ローカルファイル を現在のディレクトリから上に向かってたどります( AGENTS.mdCLAUDE.md
  2. グローバルファイル~/.config/opencode/AGENTS.md
  3. Claude Code ファイル~/.claude/CLAUDE.md 、無効化されていない限り)

各カテゴリで最初に一致したファイルが優先されます。例えば、AGENTS.mdCLAUDE.md の両方がある場合、AGENTS.md のみが使用されます。同様に、~/.config/opencode/AGENTS.md~/.claude/CLAUDE.md よりも優先されます。


Custom Instructions

opencode.json またはグローバルの ~/.config/opencode/opencode.json で、カスタム指示ファイルを指定できます。これにより、あなたとチームは既存のルールを AGENTS.md に複製する必要なく再利用できます。

例:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
}

リモート URL を使って、Web から指示を読み込むこともできます。

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "instructions": ["https://raw.githubusercontent.com/my-org/shared-rules/main/style.md"]
}

リモート指示は 5 秒のタイムアウトで取得されます。

すべての指示ファイルは、あなたの AGENTS.md ファイルと結合されます。


Referencing External Files

opencode は AGENTS.md 内のファイル参照を自動的に解析しませんが、2 つの方法で同様の機能を実現できます:

Using opencode.json

推奨されるアプローチは、opencode.jsoninstructions フィールドを使うことです:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "instructions": ["docs/development-standards.md", "test/testing-guidelines.md", "packages/*/AGENTS.md"]
}

Manual Instructions in AGENTS.md

AGENTS.md に明示的な指示を記述することで、opencode に外部ファイルを読み込むよう教えることができます。以下は実践的な例です:

AGENTS.md
# TypeScript Project Rules
 
## External File Loading
 
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
 
## Development Guidelines
 
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
 
## General Guidelines
 
Read the following file immediately as it's relevant to all workflows: @rules/general-guidelines.md.

このアプローチでは次のことができます:

  • モジュール化された再利用可能なルールファイルを作成する
  • シンボリックリンクや git サブモジュールを使ってプロジェクト間でルールを共有する
  • 詳細なガイドラインを参照しつつ AGENTS.md を簡潔に保つ
  • 特定のタスクで必要なときにのみ opencode がファイルを読み込むようにする

ヒント: モノレポや共有標準を持つプロジェクトでは、glob パターン(packages/*/AGENTS.md など)を使った opencode.json のほうが、手動の指示よりも保守しやすくなります。