Create custom subagents
概要
特定種類のタスクを専用のコンテキストウィンドウで処理する AI アシスタント。独自のシステムプロンプト、ツールアクセス、権限を持ち、結果の要約だけをメイン会話へ返す。
仕様
組み込み subagent
いずれも親会話の permission を継承する。多くは制限されたツールセットで動く。
| Agent | モデル | ツール | 用途 |
|---|---|---|---|
| Explore | メイン会話から継承(Claude API では Opus が上限) | read-only。Write と Edit は拒否 | ファイル探索、コード検索、コードベース調査 |
| Plan | メイン会話から継承 | read-only。Write と Edit は拒否 | plan mode 中の調査 |
| General-purpose | メイン会話から継承 | subagent が使えるすべてのツール | 探索と実行の両方を要する複雑・多段のタスク |
| claude | 継承 | subagent が使えるすべてのツール | より専門的な agent に当てはまらないタスクの受け皿。dispatch されたバックグラウンドセッションの既定 agent |
| statusline-setup | Sonnet | — | /statusline 実行時 |
| claude-code-guide | Haiku | — | Claude Code の機能について質問したとき |
- Explore と Plan は CLAUDE.md と親セッションの git status を読み込まない。他の組み込みとカスタム subagent は両方を読み込む
- v2.1.198 以降、Explore は常に Haiku ではなくメイン会話のモデルを継承する。Claude API では Opus が上限。他プロバイダでは直接継承する
Exploreという名前の user / project subagent は組み込みを上書きし、自身のmodelフィールドを保つ- Explore 呼び出し時、Claude は thoroughness を指定する: quick / medium / very thorough
組み込みの制限:
- 特定の組み込み型をブロックするには
permissions.denyに追加する - どの subagent にも委譲させないには
Agentツール自体をpermissions.denyで拒否する - 組み込みの
ExploreとPlanのみを外すにはCLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1(v2.1.198 以降) - 非対話モードと Agent SDK では
CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1ですべての組み込み型を外せる
配置場所と優先順位
| 場所 | スコープ | 優先度 |
|---|---|---|
| Managed settings | 組織全体 | 1(最高) |
--agents CLI フラグ | 現在のセッション | 2 |
.claude/agents/ | 現在のプロジェクト | 3 |
~/.claude/agents/ | 自分の全プロジェクト | 4 |
plugin の agents/ ディレクトリ | plugin が有効な場所 | 5(最低) |
- project subagent は作業ディレクトリから上へ辿り、リポジトリルートまでの各
.claude/agents/が走査される。v2.1.178 以降、ネストしたディレクトリが同じnameを定義している場合は作業ディレクトリに最も近い定義が使われる --add-dirで追加したディレクトリ内の.claude/agents/も project subagent と並んで読み込まれる.claude/agents/と~/.claude/agents/は再帰的に走査される。サブディレクトリのパスは識別・呼び出しに影響しない(identity はnamefrontmatter のみから来る)- 同一
.claude/agents/配下(サブフォルダを含む)で 2 つのファイルが同じ名前を宣言すると、ファイルシステムの読み取り順で片方だけが読み込まれる。/doctorは同一ディレクトリ内の名前重複を報告する - plugin の
agents/も再帰走査され、サブフォルダは scoped identifier の一部になる(agents/review/security.mdはmy-plugin:review:security) - CLI 定義(
--agents)は JSON で渡し、そのセッションのみ存在しディスクに保存されない。ファイルベースと同じフィールド(description,prompt,tools,disallowedTools,model,permissionMode,mcpServers,hooks,maxTurns,skills,initialPrompt,memory,effort,background,isolation,color)を受け付ける。promptがシステムプロンプト - plugin subagent は
hooks/mcpServers/permissionModeの frontmatter フィールドをサポートしない(読み込み時に無視される)
ファイルの書き方
- YAML frontmatter + markdown のシステムプロンプト
- subagent が受け取るのは、このシステムプロンプトと作業ディレクトリなどの基本的な環境情報だけで、Claude Code の完全なシステムプロンプトではない
- Claude Code は
~/.claude/agents/と.claude/agents/を監視する。ファイルを追加・編集すると数秒以内に検出され、次の委譲から反映される。ただしセッション開始時に存在しなかったagentsディレクトリの初回作成時と、--disable-slash-commandsで起動したセッションでは再起動が必要 - 非対話モードでは
--append-subagent-system-promptがネストしたものを含む全 subagent のシステムプロンプト末尾にテキストを追記する(v2.1.205 以降) - subagent はメイン会話の現在の作業ディレクトリで開始する。subagent 内の
cdは Bash / PowerShell ツール呼び出し間で持続せず、メイン会話の作業ディレクトリにも影響しない
frontmatter フィールド
必須は name と description のみ。
| フィールド | 必須 | 説明 |
|---|---|---|
name | はい | 小文字とハイフンによる一意な識別子。hooks はこの値を agent_type として受け取る。ファイル名と一致する必要は無い。plugin スコープ用に予約された : は使えず、含むファイルは読み込まれずデバッグログにエラーが出る(v2.1.218 以降) |
description | はい | Claude がこの subagent に委譲すべき場面 |
tools | いいえ | 使えるツール。省略時は subagent が使えるすべてを継承する。リストのどのエントリもツールに解決されない場合、通常は起動に失敗しエントリ名を挙げたエラーになる。Skills をコンテキストへ preload するには Skill を並べるのではなく skills フィールドを使う |
disallowedTools | いいえ | 拒否するツール。継承または指定したリストから取り除かれる |
model | いいえ | sonnet / opus / haiku / fable、完全なモデル ID、または inherit。既定は inherit |
permissionMode | いいえ | default / acceptEdits / auto / dontAsk / bypassPermissions / plan、および default のエイリアス manual(v2.1.200 以降)。plugin subagent では無視される |
maxTurns | いいえ | 停止するまでの agentic turn の最大数 |
skills | いいえ | 起動時にコンテキストへ preload する skill。description だけでなく全内容が注入される。列挙していない project / user / plugin の skill も Skill ツール経由で呼べる |
mcpServers | いいえ | この subagent が使える MCP サーバー。設定済みサーバーを参照する名前、またはインライン定義。plugin subagent では無視される |
hooks | いいえ | この subagent にスコープしたライフサイクル hook。plugin subagent では無視される |
memory | いいえ | 永続メモリのスコープ(user / project / local) |
background | いいえ | true で、Claude が結果を即座に必要とする場合でも常にバックグラウンドタスクとして動かす。未設定なら Claude が選ぶ(v2.1.198 以降は既定でバックグラウンド) |
effort | いいえ | この subagent がアクティブな間の effort level。セッションの effort を上書きする |
isolation | いいえ | worktree で一時的な git worktree 内で動かす。既定ブランチから分岐する(親セッションの HEAD ではない)。変更が無ければ worktree は自動削除される |
color | いいえ | タスク一覧とトランスクリプトでの表示色(red / blue / green / yellow / purple / orange / pink / cyan) |
initialPrompt | いいえ | --agent または agent 設定でこの agent がメインセッションとして動くとき、最初のユーザーターンとして自動送信される。コマンドと skill が処理される。ユーザー入力のプロンプトの前に置かれる |
モデルの解決順
CLAUDE_CODE_SUBAGENT_MODEL環境変数(モデルエイリアスまたはモデル ID のとき)- 呼び出しごとの
modelパラメータ - subagent 定義の
modelfrontmatter - メイン会話のモデル
- v2.1.196 以降、
CLAUDE_CODE_SUBAGENT_MODELをinheritにすることは未設定と同じ。以前は強制的にメイン会話のモデルにし、他の 2 つを無視していた - これらの値は組織の
availableModelsallowlist と照合される。ブロックされた値がopusのようなファミリーエイリアスの場合、allowlist が許すそのファミリーの最新版で動く。それ以外の場合は継承モデルで動く - 呼び出しごとの
modelパラメータは、subagent を resume したりフォローアップを送ったりしたときにも適用される(v2.1.211 以降) - v2.1.198 以降、subagent はメイン会話の extended thinking 設定を継承する。subagent ごとの thinking 設定は無い
使えるツール
subagent はメイン会話の組み込みツールと MCP ツールを継承し、2 つのフィルタで絞られる。fork は両方のフィルタを飛ばして親の正確なツールプールを受け取る。
第 1 フィルタ(tools に列挙しても取り除かれる):
Agent(subagent が depth limit にいるとき。fork ではツールは残るが spawn の代わりにエラーを返す)AskUserQuestionEndConversationEnterPlanModeExitPlanMode(permissionModeがplanの場合を除く)ScheduleWakeupTaskOutputWaitForMcpServersWorkflow
第 2 フィルタ(バックグラウンド実行の subagent): MCP ツールはすべて残るが、組み込みツールは次のみになる。Read, Grep, Glob, Bash, PowerShell, Edit, Write, NotebookEdit, WebFetch, WebSearch, TodoWrite, Skill, ToolSearch, EnterWorktree, ExitWorktree, Monitor, TaskStop, SendMessage, Artifact。
- agent team の teammate はさらに
TaskCreate,TaskGet,TaskList,TaskUpdate,CronCreate,CronDelete,CronListを保つ toolsとdisallowedToolsの両方を設定した場合、disallowedToolsが先に適用され、残ったプールに対してtoolsが解決される。両方に列挙されたツールは取り除かれる- 両フィールドとも MCP のサーバー単位パターンを受け付ける(
mcp__<server>/mcp__<server>__*)。disallowedToolsではmcp__*が全サーバーの全 MCP ツールを取り除く
spawn できる subagent の制限
claude --agentでメインスレッドとして動く agent は Agent ツールで subagent を spawn できる。toolsにAgent(worker, researcher)の形で書くと allowlist になるAgentを括弧なしで書くと制限なしに spawn できる。toolsからAgentを省くと一切 spawn できないAgent(agent_type)の allowlist 構文が効くのはclaude --agentのメインスレッドのみ。subagent 定義ではAgentを書くと depth limit の範囲で spawn できるが、括弧内の型リストは無視される- version 2.1.63 で Task ツールは Agent に改名された。既存の
Task(...)参照はエイリアスとして動く
permission mode
| モード | 挙動 |
|---|---|
default | 標準の permission チェックとプロンプト |
acceptEdits | 作業ディレクトリまたは additionalDirectories 内のパスへのファイル編集と一般的なファイルシステムコマンドを自動承認 |
auto | バックグラウンドの classifier がコマンドと protected directory への書き込みをレビューする |
dontAsk | permission prompt を自動拒否する |
bypassPermissions | permission prompt を飛ばす |
plan | plan mode(read-only の探索) |
- 親が
bypassPermissionsまたはacceptEditsの場合それが優先され、上書きできない - 親が auto mode の場合、subagent は auto mode を継承し frontmatter の
permissionModeは無視される
永続メモリ
| スコープ | 場所 |
|---|---|
user | ~/.claude/agent-memory/<name-of-agent>/ |
project | .claude/agent-memory/<name-of-agent>/ |
local | .claude/agent-memory-local/<name-of-agent>/ |
- subagent memory は auto memory の一部。
autoMemoryEnabledやCLAUDE_CODE_DISABLE_AUTO_MEMORYで auto memory を切るとmemoryフィールドは効かない - 有効時、subagent のシステムプロンプトにメモリディレクトリの読み書き手順が含まれ、メモリディレクトリの
MEMORY.mdの先頭 200 行または 25KB(早い方)が含まれる - Read / Write / Edit ツールが自動的に有効になる
hooks
- frontmatter の hooks はその subagent がアクティブな間のみ動き、終了時に片付けられる
settings.jsonのセッション全体の hooks も subagent 内で発火する。PreToolUse/PostToolUseは subagent のツール呼び出しでも動き、SubagentStart/SubagentStopは subagent の開始・終了で動く- project レベルの subagent の frontmatter hooks を動かすには、agent ファイルを含むフォルダの workspace trust ダイアログを承認する。
~/.claude/agents/の user レベルと--agentsで渡した定義は不要。承認するまで subagent は動くが frontmatter hooks はスキップされ、デバッグログにエラーが記録される(v2.1.218 以降) - agent が subagent として呼ばれたとき、frontmatter の
Stophook は実行時にSubagentStopイベントへ変換される SubagentStart/SubagentStopの matcher は agent の frontmattername、plugin subagent ではmy-plugin:db-agentのような scoped identifier。scoped 名はコロンを含むため anchor されない正規表現として評価される(^my-plugin:db-agent$のように anchor する)db-agentのようなハイフン付き matcher は v2.1.195 以降で完全一致する。それ以前は anchor されない正規表現として評価されprod-db-agentにも発火した
明示的な呼び出し
- 自然言語: プロンプトで subagent 名を挙げる。委譲するかは Claude が判断する
- @-mention:
@を入力して typeahead から選ぶ。その subagent が確実に動く。メッセージ全体は Claude に届き、Claude がタスクプロンプトを書く。手入力では@agent-<name>、plugin subagent は@agent-my-plugin:code-reviewer - セッション全体:
claude --agent <name>でメインスレッド自体がその subagent のシステムプロンプト・ツール制限・モデルを引き受ける。システムプロンプトは既定の Claude Code システムプロンプトを完全に置き換える(--system-promptと同じ)。CLAUDE.mdとプロジェクトメモリは通常のメッセージフローで読み込まれる。agent 名は起動ヘッダーに@<name>として表示される- セッションを resume してもこの選択は持続する。resume 時に agent が存在しなければ既定のツールとシステムプロンプトで継続し、agent 名を挙げた警告を出す
- 複数の plugin が同名の agent を提供する場合は scoped 名で曖昧さを解消する
- プロジェクトの既定にするには
.claude/settings.jsonにagentを設定する。CLI フラグは設定を上書きする
フォアグラウンド / バックグラウンド
- フォアグラウンド: 完了までメイン会話をブロックする。permission prompt はそのまま渡される
- バックグラウンド: 並行して動く。v2.1.186 以降、permission が必要なツール呼び出しに達するとメインセッションにプロンプトが出て、どの subagent が求めているかを示す。承認すると継続し、Esc でその 1 回のツール呼び出しだけを拒否する(subagent は止まらない)。v2.1.186 より前はプロンプトが必要な呼び出しを自動拒否していた
- v2.1.198 以降、既定でバックグラウンド実行。Claude は結果が必要なときにフォアグラウンドで動かす
- バックグラウンドの結果は後のターンで完了通知として Claude に届く。Claude はその通知を待ってから結果を報告する
- Ctrl+B で実行中のタスクをバックグラウンド化できる
- 完了したバックグラウンド subagent は
/tasksに done として残り、実行中の作業の下に並ぶ。失敗または停止した subagent は一覧から消える CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1ですべてのバックグラウンドタスク機能を無効化できるCLAUDE_CODE_FORK_SUBAGENT=1のとき、すべての subagent がバックグラウンドで動き frontmatter のbackgroundは効かない。CLAUDE_CODE_DISABLE_BACKGROUND_TASKSはフォークモードより優先される
ネストと同時実行の制限
- 既定でメイン会話の 3 層下まで subagent が自分の subagent を spawn できる。depth limit では fork を除く全 subagent から
Agentツールが取り除かれる - 上限は
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTHで変更する。1でネストを無効にする - v2.1.172〜v2.1.216 は既定 5 層で変更不可、v2.1.217〜v2.1.218 は既定 1、v2.1.219 で既定 3 になった
- 同時実行の既定上限は 20。超えると Agent ツールでの spawn が
Concurrent subagent limit reachedで失敗し、再試行しないよう Claude に伝える。CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTSで変更する。ultracode がアクティブなセッションは対象外。v2.1.217 以降が必要 - セッション全体で spawn できる総数に制限は無い
/subtaskで始めたセッション内 fork はスロットを占めるが、この上限でブロックされない。完了済み subagent の resume は上限を確認せず新しいスロットを取る
起動時に読み込まれるもの(fork 以外)
- System prompt: agent 自身のプロンプトと Claude Code が付ける環境情報
- Task message: 委譲時に Claude が書くプロンプト
- CLAUDE.md files: メイン会話が読み込む CLAUDE.md 階層のすべて。Explore と Plan はスキップする
- Git status: 親セッション開始時のスナップショット。git リポジトリでない場合や
includeGitInstructionsがfalseの場合は無い。Explore と Plan は常にスキップする - Preloaded skills:
skillsフィールドに挙げた skill の全内容。組み込み agent は preload しない - Sibling roster:
mainとセッション内の他の名前付き agent を列挙する system reminder。SendMessageのtoに使える。v2.1.206 以降が必要。subagent のツールにSendMessageが含まれ、他に名前付き agent が 1 つ以上あるときのみ現れる。subagent 起動時のスナップショット
メイン会話から届かないもの:
- Output style: subagent は独自のシステムプロンプトで動く(fork を除く)
- Auto memory: メイン会話の auto memory は読み込まれない
- Context window size: subagent のコンテキストウィンドウは親ではなく自身のモデルで決まる
subagent の resume
- 各呼び出しは新しいインスタンスを作る。既存の作業を続けるには Claude に resume を依頼する
- resume された subagent は過去のツール呼び出し・結果・推論を含む会話履歴全体を保つ
- 完了時に Claude は agent ID を受け取る。組み込みの Explore と Plan は one-shot で agent ID を返さないため resume できない
- Claude は
SendMessageツールに agent の ID または名前をtoとして渡す。SendMessageに agent teams の有効化は不要(shutdown_requestなどの構造化チームプロトコルメッセージのみ必要) - 完了した subagent が
SendMessageを受け取ると、新しいAgent呼び出しなしにバックグラウンドで自動 resume される。TaskStopで Claude が止めた subagent も同様 - v2.1.191 以降、
/tasksのxや SDK のstop_taskで自分が止めた subagent は自動 resume しない。SendMessageは拒否を返す。subagent パネルのトランスクリプトに入力すると自分で resume でき、stop が解除される - resume は同じ ID で新しい run を開始するため、失敗・完了していた subagent がタスク一覧で再び running になる
- v2.1.199 以降、
SendMessageは名前が会話内で以前到達したのと同じ agent を指しているかを確認する。新しい agent が名前を取っていた場合は送信を拒否し、その名前が現在どの agent に届くかを報告する。このチェックは現在の会話にスコープされ/clearでリセットされる - v2.1.198 以降、subagent は自分を起動した agent からのメッセージを通常のタスク指示(途中の方向修正を含む)として扱い、自身の permission 設定の範囲で行動する。ただし、どの agent からのメッセージも保留中の permission prompt への承認にはならず、subagent の permission 設定・
CLAUDE.md・構成を変えることもできない - agent ID はトランスクリプトファイル
~/.claude/projects/{project}/{sessionId}/subagents/agent-{agentId}.jsonlでも確認できる - subagent のトランスクリプトはメイン会話の compaction の影響を受けず、別ファイルに保存される。セッション内で持続し、同じセッションを resume すれば Claude Code 再起動後も subagent を resume できる。
cleanupPeriodDays(既定 30 日)の保持期間後に削除される - subagent はメイン会話と同じロジックで自動 compaction をサポートする。
CLAUDE_AUTOCOMPACT_PCT_OVERRIDEも適用される。compaction イベントはcompact_boundaryとしてトランスクリプトに記録され、preTokensが compaction 前のトークン数を示す
API エラー
v2.1.199 以降、API エラー(使用量上限、繰り返されるサーバーエラーなど)で終わった subagent は、エラーテキストを findings として返すのではなく失敗として報告する。
- フォアグラウンド: 既にテキスト出力を出していた場合、Agent ツールはその部分出力に「打ち切られ、タスクを完了しなかった」旨の注記を付けて返す。何も出力していない、またはツール呼び出しのみだった場合は
Agent terminated early due to an API errorとエラー詳細で失敗する - バックグラウンド: subagent は failed としてマークされ、Claude が受け取るメッセージに API エラー名と subagent の最後の出力が含まれる
subagent 出力のスキャン
Claude が読む前に、Claude Code が各 subagent の最終レポートをスキャンする。v2.1.210 以降が必要。
- Backslash insertion:
<system-reminder>タグやHuman:/Assistant:で始まる行など、Claude Code 自身の出力を模した文字列にバックスラッシュを挿入する - Marker line:
<system-reminder>のようなタグを模している場合や、bypassPermissions/--dangerously-skip-permissionsなどの permission 設定に言及している場合、[harness: subagent output matched instruction-shaped pattern(s):で始まる行を先頭に付ける - スキャンは内容の削除も言い換えも行わず、悪意の有無も判定しない。レポート内の指示が Claude に行わせるツール呼び出しは、引き続きセッションの permission チェックと sandboxing を通る
fork
- fork は新規のコンテキストではなく、それまでの会話全体を継承する subagent。メインセッションと同じシステムプロンプト・ツール・モデル・メッセージ履歴を見る
- fork 自身のツール呼び出しは会話に入らず、最終結果だけが返る
/subtask <task>で開始する(v2.1.212 以降。v2.1.161〜v2.1.211 では/fork)。agent view が無効な場合/subtaskは使えず/forkが forked subagent を開始するCLAUDE_CODE_FORK_SUBAGENTを1で明示的に有効、0で無効にする。対話モード、SDK、claude -pで有効- フォークモードを有効にすると、Claude が
forksubagent 型を明示的に要求して fork を spawn できるようになり、fork か named subagent かを問わずすべての subagent がバックグラウンドで動く。Claude が型を要求しなかった場合は従来どおり general-purpose subagent になり、Explore などの named subagent もこれまでどおり spawn される - Claude 自身に fork を spawn させる機能は experimental で、将来のリリースで変更されうる。 段階的ロールアウトの一環として、対話セッションでもこの機能が有効化されることがある
- fork はさらに fork を spawn できない
- Claude が Agent ツールで fork を spawn するとき
isolation: "worktree"を渡せる
| Fork | Named subagent | |
|---|---|---|
| コンテキスト | 会話履歴全体 | 渡したプロンプトによる新規コンテキスト |
| システムプロンプトとツール | メインセッションと同じ | 定義ファイルから(バックグラウンド実行時はフィルタされる) |
| モデル | メインセッションと同じ | model フィールドから |
| Permissions | ターミナルにプロンプトが出る | バックグラウンド実行時はメインセッションにプロンプトが出る |
| Prompt cache | メインセッションと共有 | 別キャッシュ |
実行中の fork のパネル操作:
| キー | 動作 |
|---|---|
↑ / ↓ | 行間の移動 |
Enter | 選択した fork のトランスクリプトを開きフォローアップを送る |
x | 完了した fork を消す、または実行中のものを止める。メインセッション行、または Enter で開いた fork の行では代わりにプロンプトへ入力される |
Esc | プロンプト入力へフォーカスを戻す |
- fork / subagent のトランスクリプトを開いている間、フォローアップメッセージと skill はその agent に届くが、組み込みコマンドはメイン会話で動く。v2.1.199 以降、そのビューで
/modelや/fastを打つと、閲覧中の agent ではなくメイン会話に対する変更である旨の通知が出る
設定
---
name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet
---
You are a code reviewer. When invoked, analyze the code and provide
specific, actionable feedback on quality, security, and best practices.
---
name: browser-tester
description: Tests features in a real browser using Playwright
mcpServers:
- playwright:
type: stdio
command: npx
args: ["-y", "@playwright/mcp@latest"]
- github
---
{
"permissions": {
"deny": ["Agent(Explore)", "Agent(my-custom-agent)"]
}
}
{
"env": {
"CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH": "2"
}
}
{
"agent": "code-reviewer"
}
制約・注意点
/agentsは v2.1.198 以降、対話的な作成ウィザードを開かず、Claude に依頼するか.claude/agents/を直接編集するようリマインダーを出すdisable-model-invocation: trueの skill は preload できない(bundled の/verifyと/code-reviewを含む)。存在しない・無効な skill は skip され、デバッグログに警告が出るisolation: worktreeの subagent は Bash / PowerShell コマンドを worktree 内で実行する。作業ディレクトリがメイン checkout に解決されるコマンドはエラーで失敗する。このチェックは、Claude Code を起動したディレクトリを含むリポジトリ全体を対象とする(v2.1.210 以降)- 多数の subagent がそれぞれ詳細な結果を返すと、メイン会話のコンテキストを大きく消費する
関連
facts/claude-code/skills.mdfacts/claude-code/hooks.mdfacts/claude-code/permissions.mdfacts/claude-code/permission-modes.mdfacts/claude-code/mcp.mdfacts/claude-code/model-config.mdfacts/claude-code/worktrees.mdfacts/claude-code/tools-reference.mdfacts/claude-code/memory.mdfacts/claude-code/settings.mdfacts/claude-code/env-vars.mdfacts/claude-code/context-window.md