(ch01)= # 第1章 Claude Code とは何か 本章では、Claude Code がどういう道具なのかを整理します。 まず、Claude Code がエージェント型のツールであるという発想を確認します(1.1)。 次に、コード補完やチャット型の AI との違いを見て(1.2)、周辺の概念を地図のように並べます(1.3)。 最後に、本書がどこまでを扱うのかを示します(1.4)。 ```{note} ここで細部まで覚える必要はありません。 まずは、Claude Code がこれまでの道具と何が違うのか、その輪郭をつかむことを優先してください。 ``` ```{figure} /_static/ch01/ch01-overview.jpeg :name: fig-ch01-overview :alt: 第1章の概要。1.1 エージェント型の発想、1.2 従来ツールとの違い、1.3 周辺概念の地図、1.4 本書で扱う範囲という流れ :width: 100% 図1-1 本章の概要 ``` ## 1.1 エージェント型コーディングツールという発想 ### 1.1.1 ターミナルに常駐しコードベースを理解する Claude Code は、ターミナルで動くコーディングのツールです。 起動すると、その場に常駐し、作業しているプロジェクトのファイル構成を読み取って、コードベースを理解します。 ここでいう理解とは、どこにどんなファイルがあり、それぞれがどう関わっているかを把握する、という意味です。 この性質は、実際の作業で効いてきます。 たとえば、ある関数を直したいとします。 このとき Claude Code は、その関数が定義されている場所だけでなく、その関数を呼び出している箇所も自分で探しにいきます。 特定のファイルを開いて見せなくても、必要なところを自分で見つけて読む、という動き方です。 つまり、Claude Code は「いま何のコードを相手にしているか」を把握したうえで応答します。 この点が、目の前の断片だけを見て答える道具との大きな違いです。 文脈を踏まえているので、周りとの整合を取りながら変更を進められます。 ただし、大きなコードベースでも全部を一度に読み込むわけではありません。 必要になったところを、そのつど読みにいきます。 どこまで読ませ、どこで止めるかは、後の章で扱う制御の話につながります。 ### 1.1.2 ファイル読み書き、コマンド実行、複数ステップの自律実行 Claude Code ができることは、文章で答えることだけではありません。 大きく分けて、3 つのことを行います。 ファイルを読み書きすること、コマンドを実行すること、そしてそれらを組み合わせて複数のステップを自分で進めることです。 一つずつ見ます。 ファイルの読み書きとは、コードの中身を読んで把握し、新しいファイルを作ったり既存のファイルを書き換えたりすることです。 コマンドの実行とは、テストやビルド、Git の操作のように、ターミナルで打つコマンドを自分で走らせることです。 複数ステップの自律実行とは、一つの依頼に対して、やるべきことを順に並べ、上から進めていくことです。 たとえば、ある機能の追加を頼んだとします。 このとき Claude Code は、関係するファイルを読み、変更を加え、テストを走らせ、結果を見て直す、という一連の流れを自分で進めようとします。 うまくいかなければ、結果を見てもう一度直す、というところまで自分で回します。 人が一手ずつ指示しなくても、ゴールに向けて複数の手を続けて打てる、という点がエージェント型の特徴です。 エージェントという言葉は、人の代わりに目的へ向かって自分で判断して動くもの、という意味で使われます。 次の一手をいちいち待たずに、自分で決めて進む。 この自分で進む力が、便利さの源であり、同時に注意のいる点でもあります。 ### 1.1.3 「指示する」から「任せて確認する」へ この性質は、人の関わり方を変えます。 一手ずつ細かく指示する関わり方から、ある程度の作業を任せて、出てきた結果を確認する関わり方へと移ります。 違いは、頼み方に表れます。 これまでは「このファイルのこの行を、こう変えてください」と、一手ずつ伝えていました。 Claude Code には「ログインの機能を追加してください」と、まとまりごとに頼めます。 細かい手順は、Claude Code の側が組み立てて進めます。 任せられるのは便利ですが、任せたぶん、確認の重みが増します。 任せた範囲が大きいほど、返ってくる変更も大きくなり、確かめるべき量も増えるからです。 何をどう任せ、どこを確認するかを決めることが、Claude Code を使ううえでの中心になります。 本書が「制御」という言葉で扱うのは、まさにこの任せ方と確認の仕方です。 任せるとは、丸投げすることではなく、任せる範囲を自分で選ぶことだと捉えてください。 ## 1.2 従来ツールとの違い ### 1.2.1 コード補完(Copilot 等)との違い コード補完のツールは、コードを書いている最中に、続きを提案してくれます。 カーソルの位置に対して、次の数行を差し出す、という関わり方です。 書くのはあくまで人で、ツールはその場の入力を助けます。 Claude Code はこれとは違い、入力の補助ではなく、タスクそのものを受け取って進めます。 「この機能を足してください」と頼めば、複数のファイルにまたがって変更を進めようとします。 補完が一行ずつの助けだとすれば、Claude Code は一仕事を任せる相手です。 両者は、効く粒度が違います。 補完は、いま書いている行のレベルで助けます。 Claude Code は、目的を達成するための作業のレベルで動きます。 この 2 つは対立するものではありません。 細かく手を動かすときは補完を使い、まとまった作業は Claude Code に任せる、という併用もできます。 ### 1.2.2 チャット型 AI との違い チャット型の AI は、質問に対して文章やコードを返します。 返ってきたコードは、人が読んで、自分のファイルに貼り付けて、動かして確かめます。 やり取りは会話の中で完結し、ファイルに手を入れるのは人です。 Claude Code は、応答を返すだけでなく、ファイルやコマンドに直接手を入れます。 貼り付けの手間がない代わりに、実際にファイルが書き換わります。 会話の中だけで終わるか、作業環境そのものに踏み込むか、という違いです。 ```{warning} Claude Code は、頼んだ作業のなかでファイルを実際に書き換えます。 だからこそ、変更を確認し、必要なら元に戻せる備えが大切になります。 この備えについては第3章で扱います。 ``` この違いから、向き不向きも見えてきます。 考えを整理したい、書き方を相談したいときは、チャット型が向きます。 手元のコードを実際に動かして変えたいときは、Claude Code が向きます。 場面に応じて使い分けると、それぞれの良さを生かせます。 ### 1.2.3 「エージェントである」ことの利点とリスク エージェントであることには、利点とリスクの両面があります。 利点は、まとまった作業を任せられることです。 人が一手ずつ指示しなくても、ゴールに向けて複数の手を続けて打てます。 リスクは、任せたものが意図からずれることがある点です。 頼んでいない機能まで作り込んだり、こちらが想定していない方向に進んだりすることがあります。 これは、自分で判断して進めるという自律性の裏返しです。 判断する余地があるからこそ、その判断が意図とずれることもあります。 たとえば、「少しだけ直してください」と頼んだつもりが、周辺まで大きく書き換えられることがあります。 あいまいな依頼を、Claude Code の側が補って解釈した結果です。 このずれをどう抑えるかが本書の主題であり、第2部から第4部にかけて、段階的に手立てを身につけていきます。 ## 1.3 周辺概念の地図 Claude Code の周りには、いくつかの概念があります。 ここでは、それぞれの役割だけを先に地図として並べておきます。 細かい使い方は、後の章でそのつど扱うので、いまは名前と役割の対応だけ押さえてください。 ```{figure} /_static/ch01/ch01-map.jpeg :name: fig-ch01-map :alt: 周辺概念の地図。Claude Code を中心に、スキル、プラグインとマーケットプレイス、MCP、CLAUDE.md の役割が並ぶ :width: 100% 図1-2 周辺概念の地図 ``` ### 1.3.1 スキル(Skill) スキルは、特定の作業のやり方をまとめた、追加できる能力です。 あるスキルを入れておくと、Claude Code はその作業を決まった手順で進められるようになります。 言い換えると、スキルは「やり方の型」を覚えさせる仕組みです。 何度も使う手順を、そのつど説明しなくても呼び出せるようになります。 たとえば、コードをレビューする、テストを書く、図を描くといった作業ごとに、専用のスキルを用意できます。 その作業に取りかかるときだけ呼び出せばよく、使わないあいだは表に出てきません。 必要な型を必要なときだけ持ち出せる、という点が、常に効かせておく設定との違いです。 本書の第4部で扱う gstack も、こうしたスキルの集まりとして導入します。 スキルそのものの仕組みは、第9章であらためて扱います。 ### 1.3.2 プラグインとマーケットプレイス スキルのような追加機能は、いくつかまとめてプラグインという形で配布されることがあります。 一つのスキルだけでなく、関連する機能をひとまとめにして受け渡せるようにしたもの、と考えるとわかりやすいです。 そうしたプラグインを探して入れる場が、マーケットプレイスです。 位置づけは、必要な機能を自分で一から作らずに取り入れられる、というものです。 すでに誰かが用意した型を持ってきて使う、つまり車輪を作り直さない、という発想です。 ### 1.3.3 MCP(外部ツール接続) MCP は、Claude Code を外部のツールやサービスにつなぐための仕組みです。 何も足していない Claude Code は、手元のファイルを読み書きし、コマンドを実行できます。 MCP を足すと、その範囲を超えて、外部のサービスやデータを扱えるようになります。 たとえば、データベースを読み書きする、課題管理のサービスを操作する、ブラウザを動かして画面を確かめる、といった使い方が考えられます。 ここで押さえておきたいのは、MCP が広げるのは Claude Code が何を扱えるかであって、どう振る舞うかではない、という点です。 振る舞いのほうは、次に挙げる CLAUDE.md が受け持ちます。 本書では MCP に深くは踏み込みませんが、外へつなぐ口があり、それが扱える範囲を広げるものだ、という点は押さえておいてください。 MCP の仕組みは、第9章でもう一度扱います。 ### 1.3.4 CLAUDE.md(行動指示ファイル) CLAUDE.md は、Claude Code の振る舞いを指示するファイルです。 ここに行動の規範を書いておくと、毎回のプロンプトでいちいち言わなくても、その方針が効きます。 たとえば、実装の前に前提を確かめてほしい、頼んでいない周辺まで書き換えないでほしい、といった約束を、一度書いておけます。 プロンプトとの違いは、効く範囲にあります。 プロンプトはその一回の依頼にだけ効きますが、CLAUDE.md は置いてある間、どの依頼にも効き続けます。 毎回言わずに済むぶん、同じ方針を言い忘れて結果がぶれる、ということが起きにくくなります。 本書では、プロンプトだけで使う素の Claude Code を制御の一段目、このファイルを二段目として扱います。 詳しい書き方と仕組みは、第3部でまとめて扱います。 ### 1.3.5 これらが本書のどこで登場するか いま並べた概念は、本書の各所で登場します。 行動規範をまとめる CLAUDE.md は、第3部で実際に使います。 スキルや MCP といった拡張の仕組みは第9章でまとめて扱い、スキルの集まりである gstack を第4部で使います。 プラグインやマーケットプレイスは、必要な場面でそのつど触れます。 ここで全部の使い方を覚える必要はありません。 それぞれの役割の違いが見えていれば十分です。 名前が出てきたら、この地図に戻って役割を確かめられるようにしておく、という使い方で構いません。 ## 1.4 本書で扱う範囲 ### 1.4.1 CLI 版を中心にすること Claude Code には、いくつかの使い方があります。 ターミナルで動く CLI 版のほか、エディタに組み込んで使う形などもあります。 本書では、このうち CLI 版を中心に扱います。 CLI 版を選ぶのは、ファイルの読み書きやコマンドの実行といった、エージェントとしての動きが素直に見えるからです。 何が起きているかが画面にそのまま出るので、制御の効き目も追いやすくなります。 ほかの使い方でも考え方は共通しますが、画面や操作は CLI 版を前提に進めます。 CLI 版で仕組みをつかんでおけば、ほかの形にも応用が利きます。 ### 1.4.2 扱う題材と扱わない題材 本書が扱うのは、Claude Code を制御して開発に使う、その進め方です。 題材としては、ToDo アプリと、後半のチーム向けタスク管理アプリを作ります。 一方で、特定のフレームワークの網羅的な解説や、Claude Code の全機能の一覧は扱いません。 機能の一覧は更新が速く、すぐに古くなるからです。 それよりも、制御して開発を進めるという考え方のほうが、道具が変わっても残ります。 だから本書は、個々の機能を追いかけるより、その一本の道筋に集中します。 ### 1.4.3 必要な前提知識 本書は、プログラミングそのものの入門書ではありません。 何らかの言語でコードを書いた経験があり、Git の基本的な操作がわかることを前提とします。 コミットや、ブランチの切り替えといった操作を、手元で一通り行える程度で十分です。 一方で、Claude Code や、本書で使うツールの知識は前提にしません。 それぞれ必要になった時点で、本書のなかで順に導入していきます。 いまは、Claude Code がエージェント型の道具で、任せて確認するという関わり方をする、という輪郭がつかめていれば十分です。 次章では、その Claude Code を実際に手元へ導入し、最初の起動と認証まで進めます。