(ch00)= # 序章 本書の読み方 本書には、はっきりした背骨があります。 同じ ToDo アプリを 3 回作り、制御の仕方を一段ずつ変えていく、という構成です。 この序章では、その背骨と、本書の読み方を先に共有します。 ここを読んでおくと、各章が全体のどこに位置するのかが見えやすくなります。 まず本書が目指すものを確認し(0.1)、三段階の背骨を説明します(0.2)。 そのあと、手を動かすためのサンプルリポジトリ(0.3)と、ツールのバージョンとの付き合い方(0.4)を見ます。 ```{figure} /_static/ch00/ch00-overview.svg :name: fig-ch00-overview :alt: 本書の全体像。素の Claude Code、CLAUDE.md、gstack の三段階で同じ ToDo アプリを 3 回作り、後半で実用的なタスク管理アプリを作り上げる流れ :width: 100% 図0-1 制御を一段ずつ強めながら同じ ToDo アプリを 3 回作り、後半で実用的なタスク管理アプリを作り上げる ``` ## 0.1 本書が目指すもの Claude Code を紹介する本や記事は、すでにたくさんあります。 その多くは、インストールして、こう話しかければ、こう動く、という最初の一歩を案内するものです。 これはこれで大切な入り口です。 本書が目指すのは、そこから一歩進んだところです。 Claude Code を、ただ動かすのではなく、こちらの意図どおりに制御して、実際の開発に使えるようにすることです。 「使ってみる」と「制御して開発に使う」のあいだには、はっきりした段差があります。 本書は、その段差をのぼるための本です。 では、ここでいう制御とは何を指すのでしょうか。 Claude Code は、エージェント型のツールです。 ファイルを読み書きし、コマンドを実行し、複数のステップを自分で進めます。 この自律性は強力ですが、放っておくと、頼んでいない方向に進むこともあります。 制御とは、その自律性を縛りつけることではありません。 作る前に前提を確かめ、進め方の規範を与え、工程ごとに確認できる形にすることです。 本書では、この進め方を制御されたエージェント駆動開発と呼びます。 エージェントの自律性を生かしながら、出てくるものが意図からずれないようにする、という考え方です。 本書を読み終えると、こうした制御の手立てを、自分の手で使えるようになります。 行動規範をまとめた CLAUDE.md を用意し、開発プロセスを支える gstack を組み合わせ、一連のスプリントを回せるようになります。 制御の段階ごとに何がどう変わるかを、観察表という形で見比べられるようにもなります。 最後には、その手立てを使って、実用的なアプリを一つ作り上げます。 ## 0.2 本書の背骨は同じ ToDo アプリを 3 回作ること 本書の背骨は、同じ ToDo アプリを 3 回作り直すことです。 同じお題を繰り返すのは、遠回りに見えるかもしれません。 それでも 3 回作るのは、制御の仕方による違いだけを取り出して見比べるためです。 作るものを毎回変えてしまうと、結果が変わった原因が題材の違いなのか制御の違いなのか、区別できなくなります。 お題を ToDo アプリに固定しておけば、変わるのは制御の仕方だけになります。 その効果が、そのまま結果の差として現れます。 3 回の作り直しは、制御を一段ずつ強める三段階に対応します。 一段目は素の Claude Code で、設定をほとんど足さずに作ります。 二段目は CLAUDE.md を置き、振る舞いの行動規範を与えて作ります。 三段目は gstack を組み合わせ、開発プロセス全体に仕組みを持ち込んで作ります。 この三段階は、プロンプト、行動規範、開発プロセスという、効かせる層の違いに対応しています。 一段ずつ層を足していくことで、それぞれの層が何を担うのかが見えてきます(図0-2)。 ```{figure} /_static/ch00/ch00-02.svg :alt: 効かせる層が積み上がる図。土台のプロンプトの上に行動規範(CLAUDE.md)が重なり、その上に開発プロセス(gstack)が重なる。右へ進むほど制御が強まり、下の層を含んだまま上の層が一段ずつ足される :width: 100% 図0-2 効かせる層が一段ずつ積み上がる ``` 三段階の違いを見比べるために、本書では観察表という小さな装置を使います。 プロンプトの回数や、人が手で直した箇所、生成されたコードの量といった項目を、三段階それぞれについて記録します。 「なんとなく良くなった」で終わらせず、何がどれだけ変わったかを目に見える形で残すための表です。 観察表のひな形は第5章で定義し、素の段階の結果をそこに記入します。 そのあと、第7章で CLAUDE.md の段階を、第11章で gstack の段階を、同じ表に書き足していきます。 最後に三段階を並べることで、制御を強めると何が変わるのかが、ひと目でわかるようになります。 ## 0.3 サンプルリポジトリの全体像 本書で作るアプリのコードは、サンプルリポジトリで公開しています。 https://github.com/h3adeu/claude-dojo-src リポジトリには、三段階それぞれの ToDo アプリと、本書の後半で作るタスク管理アプリが入っています。 三段階の ToDo アプリは、素の状態、CLAUDE.md を足した状態、gstack を足した状態に対応します。 読み進めながら、手元のコードと見比べられるようにしてあります。 第5部のタスク管理アプリには、実装の段階ごとにタグを付けてあります。 タグを切り替えると、その段階のコードを手元で再現できます。 また、Claude Code とのやり取りを残したセッションログも置いています。 本文の画面とあわせてログを見ると、どのプロンプトでどう動いたのかを追えます。 入手は、リポジトリを手元に複製するところから始めます。 動かし方は、ToDo アプリならブラウザでファイルを開くだけのものが中心で、特別なビルドは要りません。 ```{seealso} 詳しいディレクトリ構成と動かし方は、付録D にまとめています。 まずは全体像だけつかんでおき、必要になったら付録D を見れば十分です。 ``` ## 0.4 ツールのバージョンと情報の鮮度 本書で示す名称や挙動は、執筆時点のものです。 Claude Code も、本書で使う gstack のようなツールも、更新が速い領域にあります。 ```{warning} 本書の画面やコマンドは、手元の最新版と完全には一致しないことがあります。 これは本書の誤りではなく、ツールの更新によるものです。 表示が少しくらい違っても、戸惑わずに読み進めてください。 ``` 特にコマンド名は変わりやすい部分です。 そこで本書では、コマンドそのものより、それがどんな役割を呼び出すのかを主語にして説明します。 役割の考え方がわかっていれば、コマンド名が変わっても対応できます。 実際の名称や最新の情報は、各ツールの公式リポジトリで確かめてください。 もう一つ心に留めておきたいのは、Claude Code の出力は実行のたびに少しずつ変わる、という点です。 ```{warning} 同じプロンプトを送っても、まったく同じ応答が返るとは限りません。 そのため、本書のコードや画面と手元の結果が細部で違っても、それは異常ではありません。 ``` 慌てる必要はありません。 大事なのは、一字一句を一致させることではなく、どういう流れで進んでいるかをつかむことです。 細部が違っても、流れが追えていれば問題ありません。 この心構えを持って、次の第1章から読み進めてください。