料理ブログをClaude Codeで作っている初心者向け
Claudeにファイルの内容を踏まえて何かをしてほしいとき(例: 既存のレシピ記事を初心者向けにリライトしてほしい、料理写真のスクショを見てスマホ表示の改善点を指摘してほしい、PDFの食材成分表から数字を抜き出してほしい)に呼ぶ。Edit ツールでファイルの一部を書き換えてもらう前にも、同じファイルを必ず先に Read しておく必要がある
噛み砕くと、料理人にレシピを見せてから直してもらうのと同じ
料理人に「うちのカレーレシピをもうちょっと辛くしたい」と頼むとき、レシピそのものを見せずに口頭だけで頼んだら、たぶんめちゃくちゃな改変が返ってきます。
Claude Codeも同じで、ファイルの中身を見せていない状態で「直して」と言うと、ファイル名から内容を推測しに行きます。これが事故の温床。
Readは、レシピを目の前に広げる動作です。広げてから「ここの分量を倍に」「ここの手順を入れ替えて」と頼めば、ちゃんと現物に基づいた変更が返ってきます。
Readを呼ぶと画面に何が出てくるのか
Claudeが Read を呼ぶと、画面には「Read(ファイルパス)」という1行と、その下に行番号付きの中身が出てきます。
たとえば ~/projects/cooking-blog/content/curry-recipe.md を読ませると、こんな感じで返ってきます。
1 # 基本のチキンカレー
2
3 ## 材料(4人分)
4 - 鶏もも肉 400g
5 - 玉ねぎ 2個
6 - カレー粉 大さじ2
7 ...
左の数字が行番号。これがあるから、Claudeは「6行目のカレー粉の量を倍にして」みたいな指示を正確に拾えるわけです。
地味だけど、行番号が振ってあるかどうかで作業精度がまるで変わります。
料理ブログで「既存レシピ記事のリライト前にRead」する再現手順
もう書いてある curry-recipe.md を、「もっと初心者向けに、調理時間の目安も入れて書き直してほしい」と頼みたい場面を想定します。
ステップ1: Claude Codeを起動して、料理ブログのフォルダに入る。
$ cd ~/projects/cooking-blog
$ claude
ステップ2: Claudeに直接こう頼みます。
content/curry-recipe.md を読んで、初心者向けに調理時間の目安を入れた版に書き直して。
ステップ3: するとClaudeはまず Read を呼びます。画面には「Read(content/curry-recipe.md)」の行が出て、行番号付きで中身が表示される。
ここでClaudeはようやく現物の構成を把握します。「材料リストはこういう順、手順は7ステップ、写真キャプションは入ってない」みたいな情報が頭に入る。
ステップ4: Read が終わると、Claudeは続けて Edit ツールを呼びに行きます。「3行目の見出し直後に調理時間の目安を入れる」「手順4のあとに『焦げそうになったら火を弱める』を追加」のような部分修正が、行単位で確実に入る。
ここで初心者がやりがちな勘違いがある。
「直接 Edit から始めればいいんじゃないの?」と思って、Claudeに「Edit でこの行を変えて」と頼みたくなる。でも Edit ツールは内部的に「先に同じファイルを Read していること」を要求していて、Read していないと弾かれます。安全装置です。
5000行ある記事から該当章だけを読ませたい時のやり方
料理ブログの下書きで、5000行近い長文ドラフト book-draft.md を書いているとします。
「第3章のスパイス解説のところだけ整理し直してほしい」みたいな場面で、5000行を全部読ませる必要はないし、そもそも一度に全部は読めません。Read はそのまま呼ぶと先頭から最大2000行までしか取らないからです。
そこで使うのが offset と limit の2つの設定項目。
offset- 何行目から読み始めるかの指定(例: 1500なら1500行目から)limit- 何行ぶん読むかの指定(例: 300なら300行ぶん)
第3章が book-draft.md の 1500行目あたりから始まっているなら、Claudeにこう頼みます。
book-draft.md の 1500行目から 300行ぶんだけ読んで、第3章のスパイス解説を整理し直してほしい。
Claudeは Read を offset=1500, limit=300 で呼んでくれて、必要な範囲だけ画面に出る。長文ドラフトを扱うときの定番ワザ。
料理ブログでの使いどころ
シーン1: 完成記事のスクリーンショットを見せて、スマホ表示の指摘をもらう
料理ブログの完成ページをスマホで開いて、画面のスクリーンショットを /mnt/c/Users/user/Desktop/screen.png に保存する。Claudeにこう頼みます。
~/Desktop/screen.png を読んで、スマホで見たときに改善できそうなところを指摘して。
Claudeが Read を画像ファイルに対して呼ぶと、その場で画像の中身を解釈して返してきます。「メイン写真の下のボタンがスマホ幅で2行に折り返してる」「材料リストの行間が詰まりすぎて読みづらい」みたいな視覚的指摘が返ってくる。
テキストだけじゃなく画像も読めるのが Read の強み。
シーン2: 食材データのPDFから栄養成分を抜き出す
「鶏もも肉100gあたりのタンパク質は何g?」みたいな数字を、農林水産省や食品メーカーのPDF資料から抜き出して記事に書きたいとき。
PDFを保存して、ファイルパスを Read に渡せば、PDFの中身もテキストとして拾ってくれます。10ページを超える大きいPDFなら、ページ範囲を指定することもできる。
~/Downloads/nutrition-data.pdf の3ページから5ページを読んで、鶏もも肉の栄養成分を抜き出して。
シーン3: 写真フォルダの中身をざっくり確認する
recipes/photos/ フォルダに料理写真が200枚入っていて、「サムネに使えそうな引きの絵だけピックアップしたい」場合。
Read 単体ではフォルダは読めないので、まずClaudeに Glob や Bash で写真の一覧を取ってもらい、その中の数枚を Read で見せて、どれが当たりっぽいかを判断してもらう、という流れになる。
初心者が踏みやすい落とし穴
- 相対パスを渡してエラーになる。
./recipe.mdやrecipes/curry.mdのような略記は受け付けません。~/projects/cooking-blog/content/curry-recipe.mdのように、ホームディレクトリから完全に書いた形(あるいは/home/user/...始まり)で渡す - フォルダを指定して読もうとする。
Readはファイルしか読めません。「フォルダの中身一覧」が欲しいときはGlobやBashのlsを使う - 5000行のファイルをそのまま読ませようとする。
Readはデフォルトで先頭2000行まで。長いファイルはoffsetとlimitで切って読ませるか、検索目的ならGrepを先に呼んでもらう - Read を飛ばして Edit をいきなり頼む。
Editツールは「先に同じファイルを Read 済みであること」を要求する仕様で、Read を通っていないと弾かれます。直そうとしているファイルは必ず先に Read - 同じファイルを何度もReadする。1セッションで一度Readすればしばらく内容は把握済み。同じファイルを毎回Readさせるとコンテキストが膨らんで会話の精度が落ちる
- 10ページを超えるPDFをページ指定なしで渡す。
ReadはそういうPDFを拒否する仕様で、ページ範囲(例:3-5)を必ず指定する必要がある
関連するコマンドへの動線
/init- プロジェクト初日にCLAUDE.mdの雛形を作るスラッシュコマンド。料理ブログのフォルダに入って最初に叩く/memory-CLAUDE.mdを後から編集するスラッシュコマンド。記事の文体ルールを Claude に覚えさせる場所を開く/clear- コンテキストをまっさらにリセット。長く Read しすぎて会話が膨らんだときの掃除用/compact- 会話の要点を残しつつ圧縮するスラッシュコマンド。/clearまでは消したくないけど重い、というときに/agents- 専門サブエージェントを呼び出して、特定の作業(レシピ整形・記事監査など)を任せる仕組み- Skills - 繰り返し使うワークフローを再利用可能な形でまとめておく仕組み。Read からの定型処理をパッケージ化したいときに
- Hooks - ツール実行の前後にカスタム処理を差し込む仕組み。Read 後に自動で何かさせたい時に
- MCP - 外部サービス(食材DBやレシピAPIなど)をClaude Codeから呼べるようにする仕組み
CLAUDE.md- プロジェクトごとのルールを書き留めるファイル。Read された内容に対して何をしてほしいかを事前に書いておくと、毎回の指示が短くて済む
参考リンク
書き方
Read(file_path="絶対パス", offset=数字, limit=数字, pages="ページ範囲") ※ Read はClaudeが裏で呼ぶツールなので、人間がコマンドとして直接打つわけではない。指示は「~/projects/cooking-blog/content/curry-recipe.md を読んで」のように自然言語で渡せばよい
やってみるとこうなる
入力
content/curry-recipe.md を読んで、初心者向けに調理時間の目安を入れた版に書き直して。
出力例
Read(content/curry-recipe.md)
1 # 基本のチキンカレー
2
3 ## 材料(4人分)
4 - 鶏もも肉 400g
5 - 玉ねぎ 2個
6 - カレー粉 大さじ2
...
このページに出てきた言葉
- ファイルパス
- ファイルやフォルダの場所を表す文字列。例: <code>~/projects/cooking-blog/content/curry-recipe.md</code>
- 絶対パス
- ルート(一番上の階層)からスタートしてファイルにたどり着くまでの全経路を書いたパス。Read ツールはこれが必須で、<code>./recipe.md</code> のような略記は受け付けない
- 行番号付き出力
- ファイルの各行の頭に1, 2, 3…と番号が振られた状態で表示される形式。Linuxの <code>cat -n</code> コマンドと同じ見た目
- offset
- Read に書き足せる設定項目で、ファイルの何行目から読み始めるかを指定する数字
- limit
- Read に書き足せる設定項目で、何行ぶん読み込むかを指定する数字。指定しないと最大2000行まで自動で読み込む
- Edit
- ファイルの一部分だけをピンポイントで書き換えるためのツール。実行前に同じファイルを Read しておく必要がある
- コンテキスト
- Claudeが今の会話で覚えている内容の総量。長いファイルを何度も Read させると膨らんで、後半の応答精度が落ちる