Developer Foundations ドメイン3: Claude Code(3.1%)
この章で学ぶこと: Claude Code の中心になる部品(Rules、Skills、Commands、Agents、Agent Memory)と、セッション管理、スラッシュコマンド、ヘッドレスモード、ストリーミングモード、auto mode、CLAUDE.md の階層、リポジトリの初期化、settings.json。
| スキル | 配点 |
|---|---|
| Claude Code の操作(Claude Code Operation) | 3.1% |
本番の53問のうち約2問の小さいドメインです。ただし Architect Foundations では Claude Code が20%を占めるので、ここで土台を作っておきます。
前の章とつながる部分:
- CLAUDE.md の範囲と settings.json の優先順位 → ドメイン2 第6節
/clear、/compact、/rewindなどのセッションの衛生管理 → ドメイン2 第5.4節- サブエージェントの考え方、権限モードの一覧、フック → ドメイン1
注意: Claude Code は更新が速く、コマンドやフラグが変わります。この教材は2026年11月時点の公式ドキュメントにもとづきます。
1. 中心になる部品
| 部品 | 置き場所 | 何をするか | いつ読み込まれるか |
|---|---|---|---|
| Rules(ルール) | .claude/rules/*.md |
トピック別の決まりごと | 起動時。paths を書いたものは、合うファイルを扱うときだけ |
| Skills(スキル) | .claude/skills/<名前>/SKILL.md |
手順や知識のまとまり。/名前 で呼べる |
説明だけ先に読み込み、使うときに本文を読む |
| Commands(コマンド) | .claude/commands/<名前>.md |
/名前 で呼ぶ手順。今はスキルに統合された古い形式 |
呼んだとき |
| Agents(サブエージェント) | .claude/agents/<名前>.md |
専用のプロンプトとツールを持つ別のエージェント | Claude が任せると決めたとき、または名前で頼んだとき |
| Agent Memory(メモリ) | ~/.claude/projects/<project>/memory/ など |
Claude が自分で書くメモ(auto memory) | 毎セッション |
使い分けの目安(公式の説明より): いつも必要な決まりは CLAUDE.md かルール。特定の作業のときだけ必要な手順はスキル。スキルは呼ばれたときか、関係があると Claude が判断したときだけ読み込まれるので、コンテキストを節約できます。
2. CLAUDE.md の階層と読み込み
範囲(組織・ユーザー・プロジェクト・ローカル)はドメイン2 第6.1節の表のとおりです。ここでは読み込まれ方をおぼえます。
- 起動したディレクトリと、その上のすべてのディレクトリの
CLAUDE.mdとCLAUDE.local.mdを起動時に読み込む - 見つかったファイルは上書きではなく、つなげて使われる。順番はファイルシステムのルートから起動したディレクトリへ。例:
foo/bar/で起動すると、foo/CLAUDE.mdの後にfoo/bar/CLAUDE.mdが入る - 起動したディレクトリより下のサブディレクトリの
CLAUDE.mdは、起動時ではなく、Claude がそのサブディレクトリのファイルを扱ったときに読み込まれる - ブロック単位の HTML コメント(
<!-- メモ -->)は、コンテキストに入る前に取り除かれる。人向けのメモに使える --add-dirで追加したディレクトリのCLAUDE.mdは、初期設定では読み込まれない@path/to/fileで別のファイルを読み込める
リポジトリの初期化: /init
/init を実行すると、Claude がコードベースを調べ、ビルドのコマンド、テストのやり方、プロジェクトの決まりを書いた最初の CLAUDE.md を作ります。すでにある場合は上書きせず、改善案を出します。その後 /memory で中身を整えます。
3. Rules(.claude/rules/)
大きなプロジェクトでは、1つの大きな CLAUDE.md の代わりに、トピックごとのファイルに分けます。
your-project/
├── .claude/
│ ├── CLAUDE.md
│ └── rules/
│ ├── code-style.md
│ ├── testing.md
│ └── security.md
.claude/rules/の.mdファイルは、サブディレクトリも含めてすべて見つけられるpathsを書かないルールは、起動時に.claude/CLAUDE.mdと同じ優先度で読み込まれるpaths(glob パターン)を YAML frontmatter に書くと、合うファイルを扱うときだけ読み込まれる
---
paths:
- "src/api/**/*.ts"
---
API のハンドラーでは、エラーを必ず共通の形式で返すこと。
4. Skills と Commands
4.1 コマンドはスキルに統合された
公式ドキュメントの説明: カスタムコマンドはスキルに統合されました。.claude/commands/deploy.md と .claude/skills/deploy/SKILL.md は、どちらも /deploy を作り、同じように動きます。古い .claude/commands/ のファイルもそのまま使えます。新しく作るならスキルが勧められています(補助ファイルを置くフォルダーや、呼び出しの制御などが使えるため)。同じ名前のスキルとコマンドがあると、スキルが優先されます。
4.2 スキルの置き場所
| 場所 | パス | 使える範囲 |
|---|---|---|
| 組織(Enterprise) | 管理設定のディレクトリの .claude/skills/<名前>/SKILL.md |
組織が配った全員 |
| 個人 | ~/.claude/skills/<名前>/SKILL.md |
このマシンの自分の全プロジェクト |
| プロジェクト | .claude/skills/<名前>/SKILL.md |
このリポジトリ。コミットするとチームも使える |
| プラグイン | <plugin>/skills/<名前>/SKILL.md |
プラグインが有効な場所。/プラグイン名:スキル名 で呼ぶ |
4.3 SKILL.md の書き方
---
name: summarize-changes
description: コミットしていない変更を要約し、危ない部分を指摘する。変更点を聞かれたとき、コミットメッセージを作るとき、差分のレビューを頼まれたときに使う。
argument-hint: "[対象のディレクトリ]"
allowed-tools: Bash(git diff *) Read
---
1. `git diff` で $ARGUMENTS の変更を確認する
2. 変更を3行以内で要約する
3. 危ない変更があれば理由と一緒に挙げる
おもな frontmatter の項目:
| 項目 | 意味 |
|---|---|
name |
/ で打つ名前。省略するとディレクトリ名 |
description |
何をするか、いつ使うか。Claude はこれを見て使うか決める(推奨) |
argument-hint |
補完のときに見せる引数のヒント |
disable-model-invocation: true |
Claude が自分で呼ばないようにする。手動で /名前 を打ったときだけ動く(デプロイなど) |
user-invocable: false |
/ メニューに出さず、Claude だけが使う(背景知識など) |
allowed-tools |
このスキルを呼んだターンだけ、確認なしで使えるツール |
context: fork |
別のサブエージェントのコンテキストで実行する |
paths |
合うファイルを扱うときだけ自動で読み込む |
model、effort |
このターンだけモデルや推論の深さを変える |
引数: $ARGUMENTS に、呼んだときの引数がすべて入ります。
5. Agents(Claude Code のサブエージェント)
サブエージェントの考え方はドメイン1で学びました。Claude Code での置き場所と優先順位:
| 場所 | 範囲 | 優先順位 |
|---|---|---|
| 管理設定 | 組織全体 | 1(いちばん高い) |
--agents CLI フラグ(JSON) |
そのセッション | 2 |
.claude/agents/ |
このプロジェクト | 3 |
~/.claude/agents/ |
自分の全プロジェクト | 4 |
プラグインの agents/ |
プラグインが有効な場所 | 5(いちばん低い) |
組み込みのサブエージェント:
- Explore: コードベースを変更せずに調べる。調べた結果をメインの会話に入れずにすむ
- Plan: 計画づくりの調査
- general-purpose: 汎用
- Explore と Plan は、速く安く調べるため、CLAUDE.md と git の状態を読み込まずに始まる
作り方: Claude に「サブエージェントを作って」と頼むか、.claude/agents/ に Markdown ファイルを直接書きます。
6. Agent Memory(auto memory)
| CLAUDE.md | auto memory | |
|---|---|---|
| 書く人 | 自分 | Claude |
| 中身 | 指示と決まり | 学んだことやパターン |
| 範囲 | プロジェクト、ユーザー、組織 | リポジトリごと(worktree をまたいで共有) |
| 読み込み | 毎セッション | 毎セッション(最初の200行 または 25KB) |
auto memory の4種類のメモ:
| 種類 | 中身 |
|---|---|
user |
利用者の役割、得意分野、好み |
feedback |
利用者からの修正や、良いと言われたやり方 |
project |
コードや git の履歴からわからない、進行中の作業、締め切り、決めたこと |
reference |
プロジェクトの外の情報の場所(課題管理、ダッシュボードなど) |
- コードから読み取れること(構成、ファイルパス、デバッグの修正)や、CLAUDE.md に書いてあることは保存しない
- 保存先:
~/.claude/projects/<project>/memory/。同じリポジトリの worktree やサブディレクトリは1つを共有する - ローカルのセッションでは初期設定で有効。
/memoryで有効・無効を切り替えられる(autoMemoryEnabled)
サブエージェントのメモリ: サブエージェントの定義に memory を書くと、会話をまたいで残るディレクトリを持てます。
memory の値 |
場所 | 使う場面 |
|---|---|---|
user |
~/.claude/agent-memory/<エージェント名>/ |
全プロジェクトで覚えておきたい |
project |
.claude/agent-memory/<エージェント名>/ |
プロジェクト固有で、Git でチームと共有したい |
local |
.claude/agent-memory-local/<エージェント名>/ |
プロジェクト固有だが、Git に入れたくない |
auto memory を無効にすると、サブエージェントの memory も効かなくなります。
7. セッション管理
| 操作 | 意味 |
|---|---|
claude --continue |
このディレクトリの最新のセッションを開き直す |
claude --resume |
セッションの一覧から選ぶ |
claude --resume <名前> |
名前を付けたセッションを直接再開する |
/resume |
セッションの中から、別のセッションに切り替える |
--fork-session |
再開するとき、元を変えずに新しいセッション ID で分ける(--resume か --continue と一緒に使う) |
/rename [名前] |
今のセッションに名前を付ける |
/branch [名前] |
今の時点で会話を分け、別の方向を試す。元の会話は残る |
/clear、/compact、/rewind |
ドメイン2 第5.4節を参照 |
/context |
コンテキストの使われ方を色つきの表で見る |
8. スラッシュコマンド
組み込みのコマンドの例:
| コマンド | 働き |
|---|---|
/init |
最初の CLAUDE.md を作る |
/memory |
CLAUDE.md を編集する、auto memory を切り替える |
/clear |
新しい会話を始める |
/compact [指示] |
会話を要約して空きを作る |
/context |
コンテキストの使われ方を見る |
/resume |
別のセッションに切り替える |
/rewind |
会話やコードを前の時点に戻す |
/model |
モデルを切り替える |
/permissions |
許可・確認・拒否のルールを管理する |
/config |
設定画面を開く |
/hooks |
フックの設定を見る |
/mcp |
MCP サーバーの接続を管理する |
/plugin |
プラグインを管理する |
/agents |
サブエージェントの作り方を案内する(新しい版) |
/usage |
セッションの費用や利用状況を見る(/cost は別名) |
/help |
ヘルプを見る |
カスタムのスラッシュコマンドは、スキル(第4節)として作ります。コマンドはメッセージの先頭にあるときだけ認識され、後ろの文は引数になります。
9. ヘッドレスモード(-p)
-p(--print)を付けると、Claude Code が対話なしで動き、結果を出して終わります。スクリプトや CI で使います。公式ドキュメントはこれを「CLI から使う Agent SDK」と説明しています。
claude -p "auth.py のバグを見つけて直して" --allowedTools "Read,Edit,Bash"
| オプション | 意味 |
|---|---|
--allowedTools |
確認なしで使ってよいツール |
--output-format |
text(初期値)、json(結果、セッション ID、メタデータ)、stream-json(改行区切りの JSON をリアルタイムで) |
--json-schema |
最後に、JSON Schema に合う検証済みの JSON を出す |
--max-turns |
ターン数の上限(初期値は上限なし) |
--continue / --resume |
前の会話を続ける |
--bare |
フック、スキル、サブエージェント、プラグイン、MCP サーバー、auto memory、CLAUDE.md の自動読み込みを飛ばして速く起動する |
--bare について(公式の説明): スクリプトや SDK からの呼び出しでは --bare が推奨で、将来 -p の初期値になる予定です。--bare なしの -p は、まだ信頼していないフォルダーでも、そのプロジェクトの .claude/settings.json のフックを実行し、.mcp.json のサーバーに接続します。このとき信頼の確認画面は出ません。知らないリポジトリで -p を動かすときは注意します。
10. ストリーミングモード
試験ガイドの「streaming mode」が何を指すかは、詳しい説明がありません。ここでは、-p で結果を少しずつ受け渡すしくみ(stream-json)と解釈してまとめます(解釈であることに注意)。
| オプション | 意味 |
|---|---|
--output-format stream-json |
出力を改行区切りの JSON で、届いたそばから流す |
--input-format stream-json |
入力も改行区切りの JSON で流し込む(-p のときだけ。選べるのは text か stream-json) |
--include-partial-messages |
生成途中のストリーミングイベントも出す。-p と --output-format stream-json が必要 |
claude -p --input-format stream-json --output-format stream-json --verbose
API のストリーミング(SSE)はドメイン2 第3.3節を参照してください。
11. auto mode
auto mode は権限モードの1つです(一覧はドメイン1)。
- ふだんの確認なしで動く。シェルコマンドやネットワーク要求などの前に、別のモデル(分類器、classifier)が許可するか止めるかを判断する
- Claude Code v2.1.283 以降では、対話型のターミナルと VS Code のセッションの、組み込みの開始モード
- 使える条件を満たさないとき(対応していないモデルなど)は、Manual(
default)で始まる - 組織に HIPAA 構成が適用されていると、組み込みの開始モードは auto ではなく Manual になる
- CLI では Shift+Tab でモードを切り替えられる。起動時に指定するなら
claude --permission-mode auto - サンドボックスやコンテナを組み合わせると、さらに守りが固くなる
12. settings.json
範囲と優先順位はドメイン2 第6.2節のとおりです(管理 → コマンドライン → ローカルプロジェクト → 共有プロジェクト → ユーザー)。
settings.json によく書くもの:
| 項目 | 例 |
|---|---|
permissions |
allow、ask、deny のルール(例: "Bash(npm run test *)") |
hooks |
フックの設定(ドメイン1) |
env |
セッションで使う環境変数 |
model |
初期値のモデル |
autoMemoryEnabled |
auto memory の有効・無効 |
チームで共有したい権限やフックは .claude/settings.json に書いてコミットし、自分だけの上書きは .claude/settings.local.json に書きます。
13. 試験に向けたまとめ
| 問われ方 | 答え |
|---|---|
チーム全員が使う /コマンド |
.claude/skills/<名前>/SKILL.md(または古い形式の .claude/commands/)をコミット |
| 自分だけのスキル | ~/.claude/skills/ |
| 勝手に動いてほしくないスキル | disable-model-invocation: true |
| ファイルの種類ごとの決まり | .claude/rules/ に paths 付きで |
| 最初の CLAUDE.md | /init |
| 名前で前のセッションを再開 | claude --resume <名前>。元を残して分けるなら --fork-session |
| CI で対話なしに動かす | claude -p。機械で読むなら --output-format json、スクリプトなら --bare |
| プロジェクト固有でチーム共有のサブエージェントの記憶 | memory: project |
| 確認なしで動かしつつ安全も保つ | auto mode(分類器が判断) |
14. 用語集
| 用語 | 意味 |
|---|---|
| ヘッドレスモード | -p で対話なしに動かすこと |
stream-json |
改行区切りの JSON を少しずつ流す形式 |
| auto memory | Claude が自分で書いて次のセッションに残すメモ |
| auto mode | 分類器が操作を判断し、確認なしで動く権限モード |
| frontmatter | ファイルの先頭の --- で囲んだ YAML の設定 |
| Explore | 組み込みの調査用サブエージェント |
出典
- Memory(Claude Code Docs): CLAUDE.md の読み込み方、
.claude/rules/、paths、auto memory - Skills(Claude Code Docs): コマンドとスキルの統合、置き場所、frontmatter、
$ARGUMENTS - Commands(Claude Code Docs): 組み込みのコマンド一覧
- Subagents(Claude Code Docs): 置き場所と優先順位、組み込みのサブエージェント、
memory - Sessions(Claude Code Docs):
--continue、--resume、/resume - CLI reference(Claude Code Docs):
--fork-session、--output-format、--input-format、--include-partial-messages、--json-schema、--max-turns - Run Claude Code programmatically(Claude Code Docs):
-p、--bare、出力形式 - Permission modes(Claude Code Docs): auto mode、Shift+Tab、開始モード
- Settings(Claude Code Docs): 設定ファイルと優先順位
第10節の「ストリーミングモード」の解釈は筆者によるものです。内容は上の出典を要約・言い換えたものです(ライセンスに配慮して書き直しています)。