{"content_id":"9bufu7fxqw","slug":"claude-code-rules-skills-agents-guide","locale":"ja","schema_type":"HowTo","category":"tutorial","category_name":"チュートリアル","title":"Claude Code Rules・Skills・Agents実践ガイド","summary":"Claude CodeのRules、Skills、Agentsは、それぞれ継続的な指示、再利用可能な手順、分離されたタスクの委任を担います。正確なファイル構造と呼び出し方法、セキュリティおよびコンテキスト管理の原則を実践例で解説します。","sponsorship_disclosure":null,"author":{"name":"Injoys 編集部","url":"https://injoys.com/ko/about"},"key_points":["プロジェクトルートに`.claude`ディレクトリを作成し、共有設定と個人設定の適用範囲を区別します。","常に守る基準は`.claude/rules`のMarkdownファイルに分け、必要に応じて適用パスを制限します。","反復手順は`.claude/skills/\u003c이름\u003e/SKILL.md`に記述し、自動または明示的な呼び出し方法を設定します。","独立したコンテキストと役割が必要なタスクは、`.claude/agents/\u003c이름\u003e.md`のサブエージェントに委任します。","小規模な検証タスクでロード、ツール権限、結果の品質を確認してから、チームのリポジトリに反映します。"],"content_markdown":"Claude Codeの拡張機能は、すべて同じ種類のプロンプトではない。**Rulesは継続的に適用する指針**、**Skillsは繰り返し再利用する作業手順**、**Agentsは別のコンテキストで働く役割別の実行者**である。3つの機能を正確に区別すれば、プロンプトの繰り返しを減らしながら、メインの会話コンテキストを効率的に管理できる。\n\nこの文書では、プロジェクト単位の設定を基準に説明する。Claude Codeのバージョンによって、サポートされるメタデータや画面が異なる場合があるため、動作しないフィールドについては、インストールされているバージョンの公式ドキュメントで改めて確認する必要がある。\n\n## ステップ1：`.claude`ディレクトリと設定範囲を決める\n\nプロジェクトで共有するRules、Skills、Agentsは、一般的にリポジトリルートの`.claude`配下に置く。\n\n```text\nmy-project/\n├── .claude/\n│   ├── rules/\n│   │   ├── code-style.md\n│   │   └── api.md\n│   ├── skills/\n│   │   └── fix-issue/\n│   │       └── SKILL.md\n│   └── agents/\n│       ├── code-reviewer.md\n│       └── test-runner.md\n├── src/\n└── package.json\n```\n\nディレクトリは次のように作成できる。\n\n```bash\nmkdir -p .claude/rules\nmkdir -p .claude/skills/fix-issue\nmkdir -p .claude/agents\n```\n\n### `.claude`に関する2つの誤解\n\n1. `.claude`がClaude Codeのすべての指示に必須というわけではない。プロジェクトの指示は、ルートの`CLAUDE.md`または`.claude/CLAUDE.md`でも管理でき、ユーザー個人の設定はホームディレクトリの`~/.claude`配下に置くことができる。\n2. ファイル名は、オペレーティングシステムによって大文字と小文字が区別される。Skillのエントリーファイルは、公式形式に合わせて大文字の`SKILL.md`で作成するのが安全である。`skill.md`として保存すると認識されない場合がある。\n\n### プロジェクト設定と個人設定の選択基準\n\n| 範囲 | 適した内容 | 例 |\n|---|---|---|\n| プロジェクト共有 | すべてのコントリビューターが同じように従うべきルールと自動化 | テストコマンド、ディレクトリ構造、API規約 |\n| ユーザー個人 | 個人の好みやリポジトリで公開すべきでない設定 | 個人の作業方法、ローカルツールの選択 |\n| ローカル専用 | 特定のコンピューターでのみ有効なパスや実験的設定 | ローカルデータのパス、一時的なデバッグ手順 |\n\nチームで共用するファイルだけをGitにコミットする。秘密鍵、トークン、内部サーバーのパスワードは、RulesやSkillsに記録しない。\n\n## ステップ2：Rulesで継続的な指示を作成する\n\nRulesは、Claudeが作業するときに参照すべきプロジェクトの指示を、複数のMarkdownファイルに分けて管理する機能である。`.claude/rules`配下にあるルールのうち、`paths`条件がないファイルはプロジェクトの指示として読み込まれ、パス条件を指定したファイルは関連ファイルを扱うときに適用される。\n\n### 基本的なRuleの例\n\n`.claude/rules/code-style.md`は次のように作成できる。\n\n```markdown\n# コード作成の原則\n\n- 新しいアプリケーションコードはTypeScriptで作成する。\n- 公開関数では、入力値、戻り値、失敗条件を説明する。\n- 既存のテストを削除して失敗を隠さない。\n- 変更後に関連するテストと型チェックを実行する。\n- 説明は韓国語で作成するが、コードの識別子は既存の命名規則に従う。\n```\n\n良いRuleは検証できる。「コードを格好よく作成する」よりも、「変更後に`npm test`と`npm run typecheck`を実行する」のほうが明確である。\n\n### 特定のパスにのみ適用するRule\n\nフロントエンドとバックエンドのルールが異なる場合は、YAML front matterの`paths`で範囲を絞り込める。\n\n```markdown\n---\npaths:\n  - \"src/api/**/*.ts\"\n  - \"tests/api/**/*.ts\"\n---\n\n# APIルール\n\n- すべてのAPI入力をスキーマで検証する。\n- 認証失敗と権限不足を異なるエラーとして処理する。\n- エンドポイントを変更した場合は、対応するAPIテストも更新する。\n```\n\nパス別のルールは、不要な指示がすべての作業のコンテキストを占有する問題を軽減する。\n\n### Rulesに入れるべきでない内容\n\n- 一度だけ実行するマイグレーション手順\n- 特定のイシューにのみ必要な詳細要件\n- 互いに矛盾する絶対的な指示\n- すでにコードやリンター設定で強制されている内容を長々と繰り返す文章\n- パスワード、APIキー、顧客情報などの機密データ\n\nRulesは「必ず従わせる魔法の保証装置」ではない。曖昧または矛盾する指示があると結果が変わる可能性があるため、テスト、リンター、権限制御など、決定的な検証手段を併用する必要がある。\n\n## ステップ3：Skillsで反復手順を自動化する\n\nSkillは、説明、作業手順、必要なツール、補助資料を、1つの再利用可能な単位にまとめる。プロジェクトSkillの基本構造は`.claude/skills/\u003cskill-name\u003e/SKILL.md`であり、必要に応じて同じディレクトリにテンプレートやスクリプトを追加できる。\n\nRulesとは異なり、Skillは特定の作業で必要なときに使用される。ClaudeがSkillの説明を見て自動的に選択することも、ユーザーが`/\u003cskill-name\u003e`形式で明示的に呼び出すこともできる。必ず手動でのみ動作するわけではない。\n\n### イシュー修正Skillの例\n\n`.claude/skills/fix-issue/SKILL.md`の例は次のとおりである。\n\n```markdown\n---\nname: fix-issue\ndescription: バグを再現して原因を絞り込んだ後、最小限の修正と回帰テストを実施する。\ndisable-model-invocation: true\nallowed-tools: Read, Grep, Glob, Edit, Bash(npm test:*)\n---\n\n# イシュー修正手順\n\n対象イシュー：$ARGUMENTS\n\n1. 関連するコードと既存のテストを調査する。\n2. 修正前に再現方法と期待される動作を整理する。\n3. 根本原因を1つの段落で説明する。\n4. 影響範囲が最も小さい修正を適用する。\n5. 回帰テストを追加するか、既存のテストが問題を検証しているか確認する。\n6. 許可されたテストを実行し、結果を要約する。\n7. 変更ファイル、残存リスク、手動確認項目を報告する。\n```\n\nこのSkillは次のように呼び出せる。\n\n```text\n/fix-issue ログイン後にプロフィール写真が更新されない問題\n```\n\n`disable-model-invocation: true`は、Claudeが任意にこのSkillを実行せず、ユーザーが直接呼び出すよう制限するときに役立つ。サポートされるfront matterのフィールドは、Claude Codeのバージョンによって異なる場合がある。\n\n### 設計優先Skillの例\n\nすぐにコーディングするのではなく、先に設計文書を作成させる場合は、次の流れをSkillに入れられる。\n\n1. 要件と曖昧な部分を分ける。\n2. 既存の構造と再利用可能なモジュールを調査する。\n3. データフロー、インターフェース、失敗条件を設計する。\n4. `docs/design/`配下に設計文書を作成する。\n5. ユーザーの承認または明示された承認条件を確認してから実装する。\n6. テストとロールバック方法を提示する。\n\n### 良いSkillの条件\n\n- 入力と最終成果物が明確である。\n- 手順の順序と中断条件が明示されている。\n- 必要なツールのみを許可する。\n- 長い参考資料は別ファイルに分ける。\n- 失敗したときに任意で続行せず、報告するようにする。\n- 1つのSkillに過度に多くの目的を持たせない。\n\nコミット作成、コードレビュー、リリース確認、API設計のように、繰り返し行われ、開始と終了が明確な作業がSkillに適している。\n\n## ステップ4：Agentsで役割とコンテキストを分離する\n\nClaude Codeのサブエージェントは、別のコンテキストで特定の役割を実行し、結果をメインの会話に返す。大量の検索結果やテストログをすべてメインコンテキストに蓄積したくない場合に役立つ。\n\nプロジェクトエージェントは、一般的に`.claude/agents/\u003cagent-name\u003e.md`に定義する。`/agents`コマンドを通じてエージェントを確認または管理でき、自然言語で特定のエージェントに委任するよう依頼することもできる。\n\n### コードレビューエージェントの例\n\n`.claude/agents/code-reviewer.md`は次のように作成できる。\n\n```markdown\n---\nname: code-reviewer\ndescription: 変更されたコードの不具合、セキュリティリスク、テスト漏れを検討する、読み取り中心のレビュアー\ntools: Read, Grep, Glob, Bash\nmodel: sonnet\n---\n\nあなたはコードレビュー専任のエージェントである。\n\n次の優先順位でレビューする。\n\n1. 実際の障害やデータ損失を引き起こす可能性がある不具合\n2. 認証、権限、入力検証に関連するセキュリティ問題\n3. 並行性、トランザクション、エラー処理の問題\n4. 要件を検証できないテスト漏れ\n5. 保守性を大幅に低下させる構造\n\n各指摘事項には、ファイルパス、根拠、発生条件、最小限の修正方針を含める。\n根拠のないスタイル上の好みは、不具合として報告しない。\nコードを直接修正せず、レビュー結果のみを返す。\n```\n\n次のように依頼できる。\n\n```text\ncode-reviewerエージェントに現在のブランチの変更内容をレビューさせて。\n```\n\n### SkillとAgentの違い\n\n| 基準 | Rules | Skills | Agents |\n|---|---|---|---|\n| 主な目的 | 継続的な指示の提供 | 反復手順の再利用 | 役割別の作業委任 |\n| 適用タイミング | 常時またはパス条件に応じて | 自動選択または明示的な呼び出し | Claudeによる委任またはユーザーの依頼 |\n| コンテキスト | メイン作業に指示として含まれる | 主に現在の作業フローで実行 | 別のコンテキストで実行後に結果を返す |\n| 代表例 | コーディング標準 | イシュー修正手順 | コードレビュアー |\n| 保存場所 | `.claude/rules/*.md` | `.claude/skills/\u003c名前\u003e/SKILL.md` | `.claude/agents/*.md` |\n\n### AgentsとAgent Teamsは異なる\n\n通常のサブエージェントが別のコンテキストを使用するという事実は、エージェント同士が自由に会話するという意味ではない。一般的なサブエージェントは、割り当てられた作業を実行し、結果をメインエージェントに返す委任構造である。複数の独立したセッションが互いにメッセージをやり取りするAgent Teams機能は別の機能であり、サポート状況と有効化条件を公式ドキュメントで確認する必要がある。\n\nエージェントが別のエージェントを連鎖的に作成し続けることを前提にワークフローを設計すると、バージョンや権限の制約により失敗する可能性がある。まずはメインエージェントが役割別のサブエージェントに作業を分け、結果を統合する単純な構造から始めるほうが安全である。\n\n## ステップ5：読み込み・権限・品質を検証する\n\n設定ファイルを作成したからといって、意図どおりに動作すると想定してはならない。小さな作業を使って、各コンポーネントを個別に検証する。\n\n### 推奨される検証順序\n\n1. **Rulesの確認：** ルールが適用されるファイルと適用されないファイルをそれぞれ依頼し、パス条件を確認する。\n2. **Skillsの確認：** 明示的にSkillを呼び出し、入力引数、成果物、中断条件が機能するか確認する。\n3. **Agentsの確認：** 読み取り専用のレビューなど、リスクの低い作業を任せて結果形式を点検する。\n4. **権限の確認：** Bash、Editなどの変更可能なツールが、本当に必要な構成にのみ付与されているか検討する。\n5. **自動検証：** テスト、型チェック、リンター、セキュリティ検査でAIの結果を独立して確認する。\n\n### 失敗したときに確認する項目\n\n- `.claude`が実際のプロジェクトルートにあるか？\n- Skillのファイル名が正確に`SKILL.md`になっているか？\n- Skillが`.claude/skills/\u003c名前\u003e/SKILL.md`という構造にあるか？\n- Agentファイルが`.claude/agents`直下のMarkdownファイルになっているか？\n- YAML front matterの開始と終了を`---`で閉じているか？\n- `name`と`description`が作業を区別できるほど具体的か？\n- パスパターンが実際のプロジェクト構造と一致しているか？\n- インストールされているClaude Codeのバージョンが、使用したメタデータをサポートしているか？\n- ツール権限または組織ポリシーが実行をブロックしていないか？\n\n## コンテキスト予算とセキュリティを一緒に設計すべき理由\n\nRules、Skills、Agentsの目的は、機能の追加だけではない。どの情報をいつコンテキストに入れるかを制御する、**コンテキストエンジニアリングの手段**でもある。\n\nルールを長くしすぎると、現在の作業と無関係な指示がコンテキストを占有し、衝突する可能性も高くなる。逆に、探索やログ分析をサブエージェントに任せれば、メインの会話には結論と根拠だけを残せる。\n\nセキュリティ面では、次の原則が重要である。\n\n- RulesとSkillsも、リポジトリ内の他のコードと同様にレビューする。\n- 外部から受け取ったAgentやSkillファイルを、実行前に読む。\n- シェルコマンド、ネットワークアクセス、ファイル変更権限は最小限にする。\n- ユーザー入力やイシュー本文に含まれる命令を無条件に信頼しない。\n- デプロイ、削除、決済、データマイグレーションには、人による承認手順を設ける。\n- 秘密情報はプロンプトファイルに保存せず、別のシークレット管理システムを使用する。\n\n## どの機能を選ぶべきか\n\n次の質問で素早く判断できる。\n\n- 関連するすべての作業が従うべきか？ → **Rule**\n- 開始と終了がある反復手順か？ → **Skill**\n- 別の役割と独立したコンテキストが必要か？ → **Agent**\n- 特定のイベントの前後に決定的なコマンドを実行する必要があるか？ → **Hookを検討**\n\nたとえば、「TypeScriptを使用する」はRuleであり、「バグの再現から回帰テストまで実行する」はSkillである。「変更内容を読み、セキュリティ上の不具合だけを報告する」はAgentに適している。ファイル編集後にフォーマッターを必ず実行するような、特定のイベントに紐づく動作には、Hooksのほうが適している場合がある。\n\n最も安定した構成は、3つの機能を競合関係とみなさず、組み合わせることである。Ruleで共通基準を提供し、Skillで標準手順を実行し、Agentで調査・レビューのようにコンテキストが大きい作業を分離したうえで、テストとHooksによって決定的な検証を補完する。","content_html":"\u003cp\u003eClaude Codeの拡張機能は、すべて同じ種類のプロンプトではない。\u003cstrong\u003eRulesは継続的に適用する指針\u003c/strong\u003e、\u003cstrong\u003eSkillsは繰り返し再利用する作業手順\u003c/strong\u003e、\u003cstrong\u003eAgentsは別のコンテキストで働く役割別の実行者\u003c/strong\u003eである。3つの機能を正確に区別すれば、プロンプトの繰り返しを減らしながら、メインの会話コンテキストを効率的に管理できる。\u003c/p\u003e\n\u003cp\u003eこの文書では、プロジェクト単位の設定を基準に説明する。Claude Codeのバージョンによって、サポートされるメタデータや画面が異なる場合があるため、動作しないフィールドについては、インストールされているバージョンの公式ドキュメントで改めて確認する必要がある。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E3%82%B9%E3%83%86%E3%83%83%E3%83%971claude%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%A8%E8%A8%AD%E5%AE%9A%E7%AF%84%E5%9B%B2%E3%82%92%E6%B1%BA%E3%82%81%E3%82%8B\" class=\"anchor\" id=\"ステップ1claudeディレクトリと設定範囲を決める\"\u003e\u003c/a\u003eステップ1：\u003ccode\u003e.claude\u003c/code\u003eディレクトリと設定範囲を決める\u003c/h2\u003e\n\u003cp\u003eプロジェクトで共有するRules、Skills、Agentsは、一般的にリポジトリルートの\u003ccode\u003e.claude\u003c/code\u003e配下に置く。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003emy-project/\n\u003c/span\u003e\u003cspan\u003e├── .claude/\n\u003c/span\u003e\u003cspan\u003e│   ├── rules/\n\u003c/span\u003e\u003cspan\u003e│   │   ├── code-style.md\n\u003c/span\u003e\u003cspan\u003e│   │   └── api.md\n\u003c/span\u003e\u003cspan\u003e│   ├── skills/\n\u003c/span\u003e\u003cspan\u003e│   │   └── fix-issue/\n\u003c/span\u003e\u003cspan\u003e│   │       └── SKILL.md\n\u003c/span\u003e\u003cspan\u003e│   └── agents/\n\u003c/span\u003e\u003cspan\u003e│       ├── code-reviewer.md\n\u003c/span\u003e\u003cspan\u003e│       └── test-runner.md\n\u003c/span\u003e\u003cspan\u003e├── src/\n\u003c/span\u003e\u003cspan\u003e└── package.json\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eディレクトリは次のように作成できる。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003emkdir\u003c/span\u003e\u003cspan\u003e -p\u003c/span\u003e\u003cspan\u003e .claude/rules\n\u003c/span\u003e\u003cspan\u003emkdir\u003c/span\u003e\u003cspan\u003e -p\u003c/span\u003e\u003cspan\u003e .claude/skills/fix-issue\n\u003c/span\u003e\u003cspan\u003emkdir\u003c/span\u003e\u003cspan\u003e -p\u003c/span\u003e\u003cspan\u003e .claude/agents\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003e\n\u003ca href=\"#claude%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B2%E3%81%A4%E3%81%AE%E8%AA%A4%E8%A7%A3\" class=\"anchor\" id=\"claudeに関する2つの誤解\"\u003e\u003c/a\u003e\u003ccode\u003e.claude\u003c/code\u003eに関する2つの誤解\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003ccode\u003e.claude\u003c/code\u003eがClaude Codeのすべての指示に必須というわけではない。プロジェクトの指示は、ルートの\u003ccode\u003eCLAUDE.md\u003c/code\u003eまたは\u003ccode\u003e.claude/CLAUDE.md\u003c/code\u003eでも管理でき、ユーザー個人の設定はホームディレクトリの\u003ccode\u003e~/.claude\u003c/code\u003e配下に置くことができる。\u003c/li\u003e\n\u003cli\u003eファイル名は、オペレーティングシステムによって大文字と小文字が区別される。Skillのエントリーファイルは、公式形式に合わせて大文字の\u003ccode\u003eSKILL.md\u003c/code\u003eで作成するのが安全である。\u003ccode\u003eskill.md\u003c/code\u003eとして保存すると認識されない場合がある。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E8%A8%AD%E5%AE%9A%E3%81%A8%E5%80%8B%E4%BA%BA%E8%A8%AD%E5%AE%9A%E3%81%AE%E9%81%B8%E6%8A%9E%E5%9F%BA%E6%BA%96\" class=\"anchor\" id=\"プロジェクト設定と個人設定の選択基準\"\u003e\u003c/a\u003eプロジェクト設定と個人設定の選択基準\u003c/h3\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e範囲\u003c/th\u003e\n\u003cth\u003e適した内容\u003c/th\u003e\n\u003cth\u003e例\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"範囲\"\u003eプロジェクト共有\u003c/td\u003e\n\u003ctd data-label=\"適した内容\"\u003eすべてのコントリビューターが同じように従うべきルールと自動化\u003c/td\u003e\n\u003ctd data-label=\"例\"\u003eテストコマンド、ディレクトリ構造、API規約\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"範囲\"\u003eユーザー個人\u003c/td\u003e\n\u003ctd data-label=\"適した内容\"\u003e個人の好みやリポジトリで公開すべきでない設定\u003c/td\u003e\n\u003ctd data-label=\"例\"\u003e個人の作業方法、ローカルツールの選択\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"範囲\"\u003eローカル専用\u003c/td\u003e\n\u003ctd data-label=\"適した内容\"\u003e特定のコンピューターでのみ有効なパスや実験的設定\u003c/td\u003e\n\u003ctd data-label=\"例\"\u003eローカルデータのパス、一時的なデバッグ手順\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eチームで共用するファイルだけをGitにコミットする。秘密鍵、トークン、内部サーバーのパスワードは、RulesやSkillsに記録しない。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E3%82%B9%E3%83%86%E3%83%83%E3%83%972rules%E3%81%A7%E7%B6%99%E7%B6%9A%E7%9A%84%E3%81%AA%E6%8C%87%E7%A4%BA%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B\" class=\"anchor\" id=\"ステップ2rulesで継続的な指示を作成する\"\u003e\u003c/a\u003eステップ2：Rulesで継続的な指示を作成する\u003c/h2\u003e\n\u003cp\u003eRulesは、Claudeが作業するときに参照すべきプロジェクトの指示を、複数のMarkdownファイルに分けて管理する機能である。\u003ccode\u003e.claude/rules\u003c/code\u003e配下にあるルールのうち、\u003ccode\u003epaths\u003c/code\u003e条件がないファイルはプロジェクトの指示として読み込まれ、パス条件を指定したファイルは関連ファイルを扱うときに適用される。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AArule%E3%81%AE%E4%BE%8B\" class=\"anchor\" id=\"基本的なruleの例\"\u003e\u003c/a\u003e基本的なRuleの例\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e.claude/rules/code-style.md\u003c/code\u003eは次のように作成できる。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003e# コード作成の原則\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e- 新しいアプリケーションコードはTypeScriptで作成する。\n\u003c/span\u003e\u003cspan\u003e- 公開関数では、入力値、戻り値、失敗条件を説明する。\n\u003c/span\u003e\u003cspan\u003e- 既存のテストを削除して失敗を隠さない。\n\u003c/span\u003e\u003cspan\u003e- 変更後に関連するテストと型チェックを実行する。\n\u003c/span\u003e\u003cspan\u003e- 説明は韓国語で作成するが、コードの識別子は既存の命名規則に従う。\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e良いRuleは検証できる。「コードを格好よく作成する」よりも、「変更後に\u003ccode\u003enpm test\u003c/code\u003eと\u003ccode\u003enpm run typecheck\u003c/code\u003eを実行する」のほうが明確である。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%91%E3%82%B9%E3%81%AB%E3%81%AE%E3%81%BF%E9%81%A9%E7%94%A8%E3%81%99%E3%82%8Brule\" class=\"anchor\" id=\"特定のパスにのみ適用するrule\"\u003e\u003c/a\u003e特定のパスにのみ適用するRule\u003c/h3\u003e\n\u003cp\u003eフロントエンドとバックエンドのルールが異なる場合は、YAML front matterの\u003ccode\u003epaths\u003c/code\u003eで範囲を絞り込める。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003e---\n\u003c/span\u003e\u003cspan\u003epaths:\n\u003c/span\u003e\u003cspan\u003e  - \"src/api/\u003c/span\u003e\u003cspan\u003e**/\u003c/span\u003e\u003cspan\u003e*.ts\"\n\u003c/span\u003e\u003cspan\u003e  - \"tests/api/\u003c/span\u003e\u003cspan\u003e**/\u003c/span\u003e\u003cspan\u003e*.ts\"\n\u003c/span\u003e\u003cspan\u003e---\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e# APIルール\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e- すべてのAPI入力をスキーマで検証する。\n\u003c/span\u003e\u003cspan\u003e- 認証失敗と権限不足を異なるエラーとして処理する。\n\u003c/span\u003e\u003cspan\u003e- エンドポイントを変更した場合は、対応するAPIテストも更新する。\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eパス別のルールは、不要な指示がすべての作業のコンテキストを占有する問題を軽減する。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#rules%E3%81%AB%E5%85%A5%E3%82%8C%E3%82%8B%E3%81%B9%E3%81%8D%E3%81%A7%E3%81%AA%E3%81%84%E5%86%85%E5%AE%B9\" class=\"anchor\" id=\"rulesに入れるべきでない内容\"\u003e\u003c/a\u003eRulesに入れるべきでない内容\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e一度だけ実行するマイグレーション手順\u003c/li\u003e\n\u003cli\u003e特定のイシューにのみ必要な詳細要件\u003c/li\u003e\n\u003cli\u003e互いに矛盾する絶対的な指示\u003c/li\u003e\n\u003cli\u003eすでにコードやリンター設定で強制されている内容を長々と繰り返す文章\u003c/li\u003e\n\u003cli\u003eパスワード、APIキー、顧客情報などの機密データ\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRulesは「必ず従わせる魔法の保証装置」ではない。曖昧または矛盾する指示があると結果が変わる可能性があるため、テスト、リンター、権限制御など、決定的な検証手段を併用する必要がある。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E3%82%B9%E3%83%86%E3%83%83%E3%83%973skills%E3%81%A7%E5%8F%8D%E5%BE%A9%E6%89%8B%E9%A0%86%E3%82%92%E8%87%AA%E5%8B%95%E5%8C%96%E3%81%99%E3%82%8B\" class=\"anchor\" id=\"ステップ3skillsで反復手順を自動化する\"\u003e\u003c/a\u003eステップ3：Skillsで反復手順を自動化する\u003c/h2\u003e\n\u003cp\u003eSkillは、説明、作業手順、必要なツール、補助資料を、1つの再利用可能な単位にまとめる。プロジェクトSkillの基本構造は\u003ccode\u003e.claude/skills/\u0026lt;skill-name\u0026gt;/SKILL.md\u003c/code\u003eであり、必要に応じて同じディレクトリにテンプレートやスクリプトを追加できる。\u003c/p\u003e\n\u003cp\u003eRulesとは異なり、Skillは特定の作業で必要なときに使用される。ClaudeがSkillの説明を見て自動的に選択することも、ユーザーが\u003ccode\u003e/\u0026lt;skill-name\u0026gt;\u003c/code\u003e形式で明示的に呼び出すこともできる。必ず手動でのみ動作するわけではない。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E3%82%A4%E3%82%B7%E3%83%A5%E3%83%BC%E4%BF%AE%E6%AD%A3skill%E3%81%AE%E4%BE%8B\" class=\"anchor\" id=\"イシュー修正skillの例\"\u003e\u003c/a\u003eイシュー修正Skillの例\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e.claude/skills/fix-issue/SKILL.md\u003c/code\u003eの例は次のとおりである。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003e---\n\u003c/span\u003e\u003cspan\u003ename: fix-issue\n\u003c/span\u003e\u003cspan\u003edescription: バグを再現して原因を絞り込んだ後、最小限の修正と回帰テストを実施する。\n\u003c/span\u003e\u003cspan\u003edisable-model-invocation: true\n\u003c/span\u003e\u003cspan\u003eallowed-tools: Read, Grep, Glob, Edit, Bash(npm test:\u003c/span\u003e\u003cspan\u003e*)\n\u003c/span\u003e\u003cspan\u003e---\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e# イシュー修正手順\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e対象イシュー：$ARGUMENTS\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e1. 関連するコードと既存のテストを調査する。\n\u003c/span\u003e\u003cspan\u003e2. 修正前に再現方法と期待される動作を整理する。\n\u003c/span\u003e\u003cspan\u003e3. 根本原因を1つの段落で説明する。\n\u003c/span\u003e\u003cspan\u003e4. 影響範囲が最も小さい修正を適用する。\n\u003c/span\u003e\u003cspan\u003e5. 回帰テストを追加するか、既存のテストが問題を検証しているか確認する。\n\u003c/span\u003e\u003cspan\u003e6. 許可されたテストを実行し、結果を要約する。\n\u003c/span\u003e\u003cspan\u003e7. 変更ファイル、残存リスク、手動確認項目を報告する。\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eこのSkillは次のように呼び出せる。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003e/fix-issue ログイン後にプロフィール写真が更新されない問題\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003edisable-model-invocation: true\u003c/code\u003eは、Claudeが任意にこのSkillを実行せず、ユーザーが直接呼び出すよう制限するときに役立つ。サポートされるfront matterのフィールドは、Claude Codeのバージョンによって異なる場合がある。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E8%A8%AD%E8%A8%88%E5%84%AA%E5%85%88skill%E3%81%AE%E4%BE%8B\" class=\"anchor\" id=\"設計優先skillの例\"\u003e\u003c/a\u003e設計優先Skillの例\u003c/h3\u003e\n\u003cp\u003eすぐにコーディングするのではなく、先に設計文書を作成させる場合は、次の流れをSkillに入れられる。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e要件と曖昧な部分を分ける。\u003c/li\u003e\n\u003cli\u003e既存の構造と再利用可能なモジュールを調査する。\u003c/li\u003e\n\u003cli\u003eデータフロー、インターフェース、失敗条件を設計する。\u003c/li\u003e\n\u003cli\u003e\n\u003ccode\u003edocs/design/\u003c/code\u003e配下に設計文書を作成する。\u003c/li\u003e\n\u003cli\u003eユーザーの承認または明示された承認条件を確認してから実装する。\u003c/li\u003e\n\u003cli\u003eテストとロールバック方法を提示する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E8%89%AF%E3%81%84skill%E3%81%AE%E6%9D%A1%E4%BB%B6\" class=\"anchor\" id=\"良いskillの条件\"\u003e\u003c/a\u003e良いSkillの条件\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e入力と最終成果物が明確である。\u003c/li\u003e\n\u003cli\u003e手順の順序と中断条件が明示されている。\u003c/li\u003e\n\u003cli\u003e必要なツールのみを許可する。\u003c/li\u003e\n\u003cli\u003e長い参考資料は別ファイルに分ける。\u003c/li\u003e\n\u003cli\u003e失敗したときに任意で続行せず、報告するようにする。\u003c/li\u003e\n\u003cli\u003e1つのSkillに過度に多くの目的を持たせない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eコミット作成、コードレビュー、リリース確認、API設計のように、繰り返し行われ、開始と終了が明確な作業がSkillに適している。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E3%82%B9%E3%83%86%E3%83%83%E3%83%974agents%E3%81%A7%E5%BD%B9%E5%89%B2%E3%81%A8%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E5%88%86%E9%9B%A2%E3%81%99%E3%82%8B\" class=\"anchor\" id=\"ステップ4agentsで役割とコンテキストを分離する\"\u003e\u003c/a\u003eステップ4：Agentsで役割とコンテキストを分離する\u003c/h2\u003e\n\u003cp\u003eClaude Codeのサブエージェントは、別のコンテキストで特定の役割を実行し、結果をメインの会話に返す。大量の検索結果やテストログをすべてメインコンテキストに蓄積したくない場合に役立つ。\u003c/p\u003e\n\u003cp\u003eプロジェクトエージェントは、一般的に\u003ccode\u003e.claude/agents/\u0026lt;agent-name\u0026gt;.md\u003c/code\u003eに定義する。\u003ccode\u003e/agents\u003c/code\u003eコマンドを通じてエージェントを確認または管理でき、自然言語で特定のエージェントに委任するよう依頼することもできる。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E3%82%B3%E3%83%BC%E3%83%89%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%81%AE%E4%BE%8B\" class=\"anchor\" id=\"コードレビューエージェントの例\"\u003e\u003c/a\u003eコードレビューエージェントの例\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e.claude/agents/code-reviewer.md\u003c/code\u003eは次のように作成できる。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003e---\n\u003c/span\u003e\u003cspan\u003ename: code-reviewer\n\u003c/span\u003e\u003cspan\u003edescription: 変更されたコードの不具合、セキュリティリスク、テスト漏れを検討する、読み取り中心のレビュアー\n\u003c/span\u003e\u003cspan\u003etools: Read, Grep, Glob, Bash\n\u003c/span\u003e\u003cspan\u003emodel: sonnet\n\u003c/span\u003e\u003cspan\u003e---\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eあなたはコードレビュー専任のエージェントである。\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e次の優先順位でレビューする。\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e1. 実際の障害やデータ損失を引き起こす可能性がある不具合\n\u003c/span\u003e\u003cspan\u003e2. 認証、権限、入力検証に関連するセキュリティ問題\n\u003c/span\u003e\u003cspan\u003e3. 並行性、トランザクション、エラー処理の問題\n\u003c/span\u003e\u003cspan\u003e4. 要件を検証できないテスト漏れ\n\u003c/span\u003e\u003cspan\u003e5. 保守性を大幅に低下させる構造\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e各指摘事項には、ファイルパス、根拠、発生条件、最小限の修正方針を含める。\n\u003c/span\u003e\u003cspan\u003e根拠のないスタイル上の好みは、不具合として報告しない。\n\u003c/span\u003e\u003cspan\u003eコードを直接修正せず、レビュー結果のみを返す。\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e次のように依頼できる。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003ecode-reviewerエージェントに現在のブランチの変更内容をレビューさせて。\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003e\n\u003ca href=\"#skill%E3%81%A8agent%E3%81%AE%E9%81%95%E3%81%84\" class=\"anchor\" id=\"skillとagentの違い\"\u003e\u003c/a\u003eSkillとAgentの違い\u003c/h3\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e基準\u003c/th\u003e\n\u003cth\u003eRules\u003c/th\u003e\n\u003cth\u003eSkills\u003c/th\u003e\n\u003cth\u003eAgents\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"基準\"\u003e主な目的\u003c/td\u003e\n\u003ctd data-label=\"Rules\"\u003e継続的な指示の提供\u003c/td\u003e\n\u003ctd data-label=\"Skills\"\u003e反復手順の再利用\u003c/td\u003e\n\u003ctd data-label=\"Agents\"\u003e役割別の作業委任\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"基準\"\u003e適用タイミング\u003c/td\u003e\n\u003ctd data-label=\"Rules\"\u003e常時またはパス条件に応じて\u003c/td\u003e\n\u003ctd data-label=\"Skills\"\u003e自動選択または明示的な呼び出し\u003c/td\u003e\n\u003ctd data-label=\"Agents\"\u003eClaudeによる委任またはユーザーの依頼\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"基準\"\u003eコンテキスト\u003c/td\u003e\n\u003ctd data-label=\"Rules\"\u003eメイン作業に指示として含まれる\u003c/td\u003e\n\u003ctd data-label=\"Skills\"\u003e主に現在の作業フローで実行\u003c/td\u003e\n\u003ctd data-label=\"Agents\"\u003e別のコンテキストで実行後に結果を返す\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"基準\"\u003e代表例\u003c/td\u003e\n\u003ctd data-label=\"Rules\"\u003eコーディング標準\u003c/td\u003e\n\u003ctd data-label=\"Skills\"\u003eイシュー修正手順\u003c/td\u003e\n\u003ctd data-label=\"Agents\"\u003eコードレビュアー\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"基準\"\u003e保存場所\u003c/td\u003e\n\u003ctd data-label=\"Rules\"\u003e\u003ccode\u003e.claude/rules/*.md\u003c/code\u003e\u003c/td\u003e\n\u003ctd data-label=\"Skills\"\u003e\u003ccode\u003e.claude/skills/\u0026lt;名前\u0026gt;/SKILL.md\u003c/code\u003e\u003c/td\u003e\n\u003ctd data-label=\"Agents\"\u003e\u003ccode\u003e.claude/agents/*.md\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003ch3\u003e\n\u003ca href=\"#agents%E3%81%A8agent-teams%E3%81%AF%E7%95%B0%E3%81%AA%E3%82%8B\" class=\"anchor\" id=\"agentsとagent-teamsは異なる\"\u003e\u003c/a\u003eAgentsとAgent Teamsは異なる\u003c/h3\u003e\n\u003cp\u003e通常のサブエージェントが別のコンテキストを使用するという事実は、エージェント同士が自由に会話するという意味ではない。一般的なサブエージェントは、割り当てられた作業を実行し、結果をメインエージェントに返す委任構造である。複数の独立したセッションが互いにメッセージをやり取りするAgent Teams機能は別の機能であり、サポート状況と有効化条件を公式ドキュメントで確認する必要がある。\u003c/p\u003e\n\u003cp\u003eエージェントが別のエージェントを連鎖的に作成し続けることを前提にワークフローを設計すると、バージョンや権限の制約により失敗する可能性がある。まずはメインエージェントが役割別のサブエージェントに作業を分け、結果を統合する単純な構造から始めるほうが安全である。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E3%82%B9%E3%83%86%E3%83%83%E3%83%975%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E6%A8%A9%E9%99%90%E5%93%81%E8%B3%AA%E3%82%92%E6%A4%9C%E8%A8%BC%E3%81%99%E3%82%8B\" class=\"anchor\" id=\"ステップ5読み込み権限品質を検証する\"\u003e\u003c/a\u003eステップ5：読み込み・権限・品質を検証する\u003c/h2\u003e\n\u003cp\u003e設定ファイルを作成したからといって、意図どおりに動作すると想定してはならない。小さな作業を使って、各コンポーネントを個別に検証する。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E6%8E%A8%E5%A5%A8%E3%81%95%E3%82%8C%E3%82%8B%E6%A4%9C%E8%A8%BC%E9%A0%86%E5%BA%8F\" class=\"anchor\" id=\"推奨される検証順序\"\u003e\u003c/a\u003e推奨される検証順序\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cstrong\u003eRulesの確認：\u003c/strong\u003e ルールが適用されるファイルと適用されないファイルをそれぞれ依頼し、パス条件を確認する。\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSkillsの確認：\u003c/strong\u003e 明示的にSkillを呼び出し、入力引数、成果物、中断条件が機能するか確認する。\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAgentsの確認：\u003c/strong\u003e 読み取り専用のレビューなど、リスクの低い作業を任せて結果形式を点検する。\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e権限の確認：\u003c/strong\u003e Bash、Editなどの変更可能なツールが、本当に必要な構成にのみ付与されているか検討する。\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e自動検証：\u003c/strong\u003e テスト、型チェック、リンター、セキュリティ検査でAIの結果を独立して確認する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E5%A4%B1%E6%95%97%E3%81%97%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AB%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E9%A0%85%E7%9B%AE\" class=\"anchor\" id=\"失敗したときに確認する項目\"\u003e\u003c/a\u003e失敗したときに確認する項目\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003ccode\u003e.claude\u003c/code\u003eが実際のプロジェクトルートにあるか？\u003c/li\u003e\n\u003cli\u003eSkillのファイル名が正確に\u003ccode\u003eSKILL.md\u003c/code\u003eになっているか？\u003c/li\u003e\n\u003cli\u003eSkillが\u003ccode\u003e.claude/skills/\u0026lt;名前\u0026gt;/SKILL.md\u003c/code\u003eという構造にあるか？\u003c/li\u003e\n\u003cli\u003eAgentファイルが\u003ccode\u003e.claude/agents\u003c/code\u003e直下のMarkdownファイルになっているか？\u003c/li\u003e\n\u003cli\u003eYAML front matterの開始と終了を\u003ccode\u003e---\u003c/code\u003eで閉じているか？\u003c/li\u003e\n\u003cli\u003e\n\u003ccode\u003ename\u003c/code\u003eと\u003ccode\u003edescription\u003c/code\u003eが作業を区別できるほど具体的か？\u003c/li\u003e\n\u003cli\u003eパスパターンが実際のプロジェクト構造と一致しているか？\u003c/li\u003e\n\u003cli\u003eインストールされているClaude Codeのバージョンが、使用したメタデータをサポートしているか？\u003c/li\u003e\n\u003cli\u003eツール権限または組織ポリシーが実行をブロックしていないか？\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E4%BA%88%E7%AE%97%E3%81%A8%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%82%92%E4%B8%80%E7%B7%92%E3%81%AB%E8%A8%AD%E8%A8%88%E3%81%99%E3%81%B9%E3%81%8D%E7%90%86%E7%94%B1\" class=\"anchor\" id=\"コンテキスト予算とセキュリティを一緒に設計すべき理由\"\u003e\u003c/a\u003eコンテキスト予算とセキュリティを一緒に設計すべき理由\u003c/h2\u003e\n\u003cp\u003eRules、Skills、Agentsの目的は、機能の追加だけではない。どの情報をいつコンテキストに入れるかを制御する、\u003cstrong\u003eコンテキストエンジニアリングの手段\u003c/strong\u003eでもある。\u003c/p\u003e\n\u003cp\u003eルールを長くしすぎると、現在の作業と無関係な指示がコンテキストを占有し、衝突する可能性も高くなる。逆に、探索やログ分析をサブエージェントに任せれば、メインの会話には結論と根拠だけを残せる。\u003c/p\u003e\n\u003cp\u003eセキュリティ面では、次の原則が重要である。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRulesとSkillsも、リポジトリ内の他のコードと同様にレビューする。\u003c/li\u003e\n\u003cli\u003e外部から受け取ったAgentやSkillファイルを、実行前に読む。\u003c/li\u003e\n\u003cli\u003eシェルコマンド、ネットワークアクセス、ファイル変更権限は最小限にする。\u003c/li\u003e\n\u003cli\u003eユーザー入力やイシュー本文に含まれる命令を無条件に信頼しない。\u003c/li\u003e\n\u003cli\u003eデプロイ、削除、決済、データマイグレーションには、人による承認手順を設ける。\u003c/li\u003e\n\u003cli\u003e秘密情報はプロンプトファイルに保存せず、別のシークレット管理システムを使用する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E3%81%A9%E3%81%AE%E6%A9%9F%E8%83%BD%E3%82%92%E9%81%B8%E3%81%B6%E3%81%B9%E3%81%8D%E3%81%8B\" class=\"anchor\" id=\"どの機能を選ぶべきか\"\u003e\u003c/a\u003eどの機能を選ぶべきか\u003c/h2\u003e\n\u003cp\u003e次の質問で素早く判断できる。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e関連するすべての作業が従うべきか？ → \u003cstrong\u003eRule\u003c/strong\u003e\n\u003c/li\u003e\n\u003cli\u003e開始と終了がある反復手順か？ → \u003cstrong\u003eSkill\u003c/strong\u003e\n\u003c/li\u003e\n\u003cli\u003e別の役割と独立したコンテキストが必要か？ → \u003cstrong\u003eAgent\u003c/strong\u003e\n\u003c/li\u003e\n\u003cli\u003e特定のイベントの前後に決定的なコマンドを実行する必要があるか？ → \u003cstrong\u003eHookを検討\u003c/strong\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eたとえば、「TypeScriptを使用する」はRuleであり、「バグの再現から回帰テストまで実行する」はSkillである。「変更内容を読み、セキュリティ上の不具合だけを報告する」はAgentに適している。ファイル編集後にフォーマッターを必ず実行するような、特定のイベントに紐づく動作には、Hooksのほうが適している場合がある。\u003c/p\u003e\n\u003cp\u003e最も安定した構成は、3つの機能を競合関係とみなさず、組み合わせることである。Ruleで共通基準を提供し、Skillで標準手順を実行し、Agentで調査・レビューのようにコンテキストが大きい作業を分離したうえで、テストとHooksによって決定的な検証を補完する。\u003c/p\u003e\n","tags":["コンテキストエンジニアリング","Claude Code","AIコーディング","エージェントスキル","コーディングエージェント"],"faqs":[{"question":"Claude Codeでは`.claude`フォルダが必ず必要ですか？","answer":"プロジェクト用のRules、Skills、Agentsを標準構造で管理する際に使用しますが、すべての指示に必ず必要なわけではありません。プロジェクトの指示はルートの`CLAUDE.md`または`.claude/CLAUDE.md`にも配置でき、個人設定は`~/.claude`以下で管理できます。"},{"question":"Rulesと`CLAUDE.md`にはどのような違いがありますか？","answer":"`CLAUDE.md`は、プロジェクトの中核となる指示を1つの文書で提供するのに適しています。`.claude/rules`は、トピック別のファイル分割やパスごとの条件適用に適しているため、プロジェクトが大きくなるほどルールのモジュール化に役立ちます。"},{"question":"Skillのファイル名は`skill.md`ですか、それとも`SKILL.md`ですか？","answer":"公式のAgent Skills構造に準拠したエントリーファイル名は、大文字の`SKILL.md`です。プロジェクトのSkillは`.claude/skills/\u003cskill-name\u003e/SKILL.md`に配置するのが安全であり、大文字と小文字を区別するオペレーティングシステムでは、`skill.md`は別のファイルとして扱われます。"},{"question":"Claude CodeのSkillは、ユーザーが呼び出したときだけ実行されますか？","answer":"必ずしもそうではありません。ClaudeがSkillの説明を確認し、適切なタスクで自動的に選択することがあり、ユーザーが`/\u003cskill-name\u003e`で呼び出すこともできます。自動呼び出しを防ぐ必要がある場合は、対応しているバージョンで`disable-model-invocation`設定を検討できます。"},{"question":"SkillとAgentのどちらを使用すべきですか？","answer":"現在のワークフローで反復的な手順を実行する場合は、Skillが適しています。大規模な調査、テスト分析、コードレビューのように、別の役割と分離されたコンテキストが必要な場合は、Agentが適しています。共通のコーディング基準のように継続的に適用する内容は、Ruleとして分離します。"},{"question":"サブエージェント同士で直接会話したり、別のエージェントを呼び出したりできますか？","answer":"一般的なClaude Codeのサブエージェントは、別のコンテキストで作業した後、結果をメインエージェントに返す仕組みです。複数の独立したセッションによる直接的な連携は、別のAgent Teams機能と区別する必要があり、使用中のバージョンの対応状況と制限を確認する必要があります。"},{"question":"Rulesを作成すれば、Claudeは指示を常に完璧に守りますか？","answer":"いいえ。Rulesは継続的に提供される指示ですが、決定的な強制手段ではありません。指示の競合や曖昧さによって漏れる可能性があるため、リンター、型チェック、テスト、Hooks、コードレビューと併用する必要があります。"},{"question":"外部から入手したSkillやAgentをそのまま使用しても安全ですか？","answer":"すぐに実行しないことをお勧めします。ファイルに含まれる指示、シェルコマンド、許可されたツール、ネットワークおよびファイルへのアクセス範囲を先に確認し、最小権限で試す必要があります。秘密情報の送信や危険なファイル変更を誘導する内容がないかどうかも確認する必要があります。"}],"sources":[{"url":"https://code.claude.com/docs/en/memory","title":"Claude Code ドキュメント：Claudeのメモリを管理する","type":"source"},{"url":"https://code.claude.com/docs/en/skills","title":"Claude Code ドキュメント：スキルでClaudeを拡張する","type":"source"},{"url":"https://code.claude.com/docs/en/sub-agents","title":"Claude Code ドキュメント：カスタムサブエージェントを作成する","type":"source"},{"url":"https://code.claude.com/docs/en/settings","title":"Claude Code ドキュメント：Claude Codeの設定","type":"source"}],"images":[{"id":767,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6OTgyOSwicHVyIjoiYmxvYl9pZCJ9fQ==--8ba3d33d24232863ea1d744998bca1e2dbb088c6/ai-7c680af1.webp","is_representative":true,"generation_method":"ai_photo","license":"ai_generated","mime_type":"image/webp","translations":{"ko":{"alt":"책상에서 노트북의 개발 워크플로 대시보드를 살펴보는 사람","caption":"개발자가 노트북에서 프로젝트 파일과 자동화 작업 상태를 확인하고 있다.","description":null},"en":{"alt":"Person viewing a development workflow dashboard on a laptop at a desk","caption":"A developer reviews project files and automation task statuses on a laptop.","description":null},"ja":{"alt":"デスクでノートパソコンの開発ワークフローダッシュボードを見る人","caption":"開発者がノートパソコンでプロジェクトファイルと自動化タスクの状態を確認している。","description":null},"es":{"alt":"Persona viendo un panel de flujo de desarrollo en un portátil sobre un escritorio","caption":"Un desarrollador revisa archivos del proyecto y estados de tareas automatizadas en un portátil.","description":null},"id":{"alt":"Seseorang melihat dasbor alur kerja pengembangan di laptop pada meja","caption":"Seorang pengembang memeriksa berkas proyek dan status tugas otomatis di laptop.","description":null},"pt":{"alt":"Pessoa visualizando um painel de fluxo de desenvolvimento em um notebook","caption":"Um desenvolvedor verifica arquivos do projeto e o status de tarefas automatizadas no notebook.","description":null},"zh-hant":{"alt":"坐在書桌前查看筆電開發工作流程儀表板的人","caption":"開發者正在筆電上檢查專案檔案與自動化任務狀態。","description":null},"de":{"alt":"Person betrachtet ein Dashboard für Entwicklungsabläufe auf einem Laptop am Schreibtisch","caption":"Ein Entwickler prüft Projektdateien und den Status automatisierter Aufgaben auf einem Laptop.","description":null}}},{"id":768,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6OTgzNSwicHVyIjoiYmxvYl9pZCJ9fQ==--458d876e5a3cb0d4581f0909c6198e47789eda8b/ai-54d6eb4e.webp","is_representative":false,"generation_method":"ai_image","license":"ai_generated","mime_type":"image/webp","translations":{"ko":{"alt":"폴더, 필터, 자동화 단계, AI 작업 공간, 보안 및 검증 흐름을 연결한 워크플로 다이어그램","caption":"규칙과 자동화 단계가 보안 계층을 거쳐 테스트와 검증으로 이어지는 구조를 보여준다.","description":null},"en":{"alt":"Workflow diagram linking folders, filters, automation steps, an AI workspace, security, and validation","caption":"Rules and automated steps flow through a security layer into testing and validation.","description":null},"ja":{"alt":"フォルダー、フィルター、自動化工程、AI作業環境、セキュリティ、検証を結ぶワークフロー図","caption":"ルールと自動化工程がセキュリティ層を経てテストと検証へ進む構成を示している。","description":null},"es":{"alt":"Diagrama de flujo con carpetas, filtros, automatización, espacio de IA, seguridad y validación","caption":"Las reglas y los pasos automatizados pasan por una capa de seguridad hasta las pruebas y la validación.","description":null},"id":{"alt":"Diagram alur folder, filter, tahap otomatisasi, ruang kerja AI, keamanan, dan validasi","caption":"Aturan dan tahapan otomatis mengalir melalui lapisan keamanan menuju pengujian dan validasi.","description":null},"pt":{"alt":"Diagrama de fluxo com pastas, filtros, automação, ambiente de IA, segurança e validação","caption":"Regras e etapas automatizadas passam por uma camada de segurança até os testes e a validação.","description":null},"zh-hant":{"alt":"連結資料夾、篩選器、自動化步驟、AI 工作區、安全與驗證的流程圖","caption":"規則與自動化步驟經過安全層後，進入測試與驗證流程。","description":null},"de":{"alt":"Workflow mit Ordnern, Filtern, Automatisierung, KI-Arbeitsplatz, Sicherheit und Validierung","caption":"Regeln und automatisierte Schritte führen über eine Sicherheitsebene zu Tests und Validierung.","description":null}}}],"published_at":"2026-08-19T16:14:05+09:00","updated_at":"2026-08-19T16:14:05+09:00","license":"cc_by","translation_status":"reviewed","available_locales":["ko","en","ja","es"],"data_locales":["ko","en","ja","es","id","pt","zh-hant","de"],"url":"https://injoys.com/ja/articles/claude-code-rules-skills-agents-guide"}