料理ブログをClaude Codeで作っている初心者向け
料理ブログに新しいレシピ記事ファイルを1個追加したい時、テンプレを別プロジェクトに横展開したい時、旧フォーマットの記事を新フォーマットで丸ごと作り直したい時に呼ばれる。「ターミナルで空ファイルを作ってエディタで開いて中身を貼り付けて」の手順を、Claudeに「このパスにこの中身で」とまとめて頼むと Write が動いてファイルが完成する
噛み砕くと
ノートを1ページ用意して、最初から最後まで一気に書いて閉じる。これがWriteのイメージです。
途中までしか書いてない既存ページを開いて、ある行だけ消しゴムで消して書き直す、という器用なことはしません。1ページ全部、白紙にして書き直す動きをします。
だから新規ファイルを置く時は素直に強い。逆に既存ファイルを少しだけ直したい時に呼ぶと、本来触らなくていい部分まで全部書き換えてしまいます。
Write を呼ぶと画面に何が出るのか
料理ブログのフォルダで「すき焼きのレシピ記事を新規で追加して」とClaudeに頼むと、こういう動きをします。
● Write(~/projects/cooking-blog/content/recipes/sukiyaki.md)
⎿ Wrote 42 lines to ~/projects/cooking-blog/content/recipes/sukiyaki.md
---
title: すき焼き
category: 鍋料理
---
# すき焼きの作り方
...
「Write(パス)」が呼んだツール名と書き込む先、「Wrote 42 lines」が実際に書き出した行数。指定したパスにそのままファイルが作られて、中身が42行分入った状態になります。
同じパスに既存ファイルがあった場合、表示は「Wrote 42 lines」のままで、警告は特に出ません。中身は新しい42行に置き換わって、元の中身は消えます。これが事故の発火点になります。
料理ブログで「新規レシピ記事ファイル」を作る再現手順
「世界の鍋料理を紹介するブログ」を例に、すき焼きの記事を1本追加してみます。
ステップ1: 保存先のフォルダを先に用意する
Writeはファイルを書き出すツールであって、フォルダを作るツールではありません。フォルダがない場所にいきなり書こうとするとエラーになります。最初に手で作っておきます。
$ mkdir -p ~/projects/cooking-blog/content/recipes
mkdir -p は「途中のフォルダもまとめて作る」指定。recipes までの道が一発で揃います。
ステップ2: Claudeに記事の中身を伝える
ターミナルでClaude Codeを起動して、こう頼みます。
> ~/projects/cooking-blog/content/recipes/sukiyaki.md に
すき焼きのレシピ記事を書いて。
材料表は table 形式、手順は番号付きリストで。
保存先のパスと、記事の中身の組み方まで指定すると、Claudeは中身を組み立てて Write に渡します。
ステップ3: Claudeが Write を呼ぶ
Claudeの応答に「Write(...)」のブロックが出ます。
● Write(~/projects/cooking-blog/content/recipes/sukiyaki.md)
⎿ Wrote 38 lines to ~/projects/cooking-blog/content/recipes/sukiyaki.md
これでファイルが新規作成されました。指定パスにすき焼き記事が38行入った状態で置かれています。
ステップ4: できたファイルを目視で確認する
ブラウザのプレビュー、もしくはエディタでファイルを開いて、中身が想定通りか見ます。Claudeが書いた中身を最終確認するのは私の仕事です。
Editで済むのにWriteで全消し──新人がよくやる事故
これが一番ハマるところです。Writeは「ファイルの中身を丸ごと差し替える」動きをします。既存のレシピ記事の「材料表だけ表組みに直したい」みたいな小さな修正で Write を呼ぶと、本来触らなくていい本文・写真URL・前書きまで全部、Claudeが書き直した版に置き換わります。
「あれ、書いたつもりのない注釈が消えてる」「写真URLが微妙に違う」が起きるのは、ほぼこのパターンです。
使い分けの判断ライン:
- Write: ファイルがそもそも無い、または中身を100%作り直したい時。新規レシピを追加する、テンプレを横展開する、旧フォーマットから新フォーマットに丸ごと作り直す
- Edit: 既存ファイルの中の「ある1ヶ所」だけを変える時。タイトル行を直す、リンクを1個追加する、誤字を直す
- MultiEdit: 同じファイルの中で複数ヶ所をまとめて直す時。Editを5回呼ぶ代わりに1回で済む
Claudeも内部で「既存ファイルの編集はEditを優先、新規作成または完全リライトのみWrite」を推奨基準として動きます。明示的に「Writeで全部書き直して」と指示しない限り、既存ファイルの細かい修正でいきなり Write が選ばれることは少ないです。
ただ、依頼の言い回し次第で Claude が「全部書き直し」と解釈する場合があります。「整理して」「整えて」「リファクタして」だけだと範囲が読めない。「タイトル行だけ直して、他は触らないで」と限定したほうが事故が減ります。
料理ブログでの使いどころ
シナリオ1: 旧フォーマットのレシピ記事を新フォーマットで丸ごと作り直す
1年前に書いたレシピ記事は、材料が「醤油大さじ2、砂糖大さじ1、…」と段落の文章で書いてありました。新しい記事は材料表を <table> でまとめる方針に揃えたい。
Editで散文の1行を表に直そうとすると、置換対象の文字列が長くて壊れやすい。Read で旧記事の中身を読ませて、Write で新フォーマット版を一気に書き出す方が速くて事故も少ないです。
シナリオ2: テンプレを別の料理ブログプロジェクトに横展開
すでに動いているブログの .claude/settings.json を、もう1個立ち上げる別ジャンルのブログにそのまま持っていきたい。
Read で元プロジェクトの設定を読ませて、Write で新プロジェクト側のパスに同じ内容を書き出す。コピペでも済みますが、設定値の中の「料理ブログ専用」の部分だけClaudeに書き換えさせて Write、までやらせると手作業が消えます。
シナリオ3: README雛形をAIに作らせて新規作成
料理ブログのトップに置く README.md をまだ書いていない。「うちのブログのコンセプト・取り扱うジャンル・記事の探し方を200字くらいでまとめて」と頼むと、Claudeが原稿を組み立てて Write でファイルを作ります。新規ファイル作成は Write の本来の用途で、迷わず使える場面です。
初心者が踏みやすい落とし穴
- 保存先のフォルダがまだ無い状態で Write を呼ぶ。Writeはファイル本体は作りますが、途中のフォルダは作りません。先に
mkdir -pでフォルダを揃えてから頼む - 絶対パスじゃない書き方で頼む。
./recipes/sukiyaki.mdのような相対パスは受け付けません。~/projects/cooking-blog/content/recipes/sukiyaki.mdのように、家の住所で書く絶対パス形式に揃えます - 既存ファイルを Read せずに上書きする。Claude Codeは既存ファイルを Write で上書きする前に Read で中身を確認するのが基本動作です。「今すぐ Write で全部書き直して」と急かすと、元の中身を読まないまま上書きが走り、消したくなかった部分が消えます
- Editで済む小さな修正で Write を呼ぶ。タイトル1行だけ直したいのに「全部書き直して」と頼むと、本文・写真URL・前書きまで Claude の解釈で書き換わります。範囲を「タイトル行だけ」と明示する
- 「整理して」「整えて」だけで頼む。範囲が読めない依頼は Write で全消しに化けやすい。「材料表の部分だけ表組みにして、他は触らないで」のように、触る範囲・触らない範囲を分けて指定する
- 書き出し直後に内容確認をしない。Wrote 行数が表示されても、中身が想定通りかは別問題。ブラウザのプレビューやエディタで実物を1回開いて見る習慣が事故防止になります
関連するコマンド・ツールへの動線
- Read(リード) - ファイルの中身をClaudeに見せるツール。Writeで既存ファイルを上書きする前のセットで使う
- /init(イニット) - プロジェクト用の覚え書き
CLAUDE.mdの雛形を半自動で作るスラッシュコマンド。料理ブログを始めた初日に1回叩く - /memory(メモリー) -
CLAUDE.mdをエディタで開いて手で編集するスラッシュコマンド。Writeで作った設定の細かい調整に使う - CLAUDE.md(クロードドットエムディー) - プロジェクト用の覚え書きファイル本体。Writeで新規作成・全置換することもある
- /agents(エージェンツ) - 専門エージェントの管理画面を開くスラッシュコマンド。設定ファイルをWriteで書き出す動きが裏で走る
- /clear(クリア) - 会話履歴をリセットするスラッシュコマンド。Writeで一気に長文を書き出した後に呼ぶことが多い
- /compact(コンパクト) - 会話履歴を要約して圧縮するスラッシュコマンド。Writeで生成物を確定した後の整理に使う
- Skills(スキルズ) - 再利用できる作業手順をまとめておく仕組み。Writeでスキル定義ファイルを書き出す
- Hooks(フックス) - ツール実行の前後に処理を差し込む仕組み。Write実行の直前に検閲を走らせる用途で使われる
- MCP(エムシーピー) - Claude Codeに外部ツールを足す仕組み。Writeで MCP 設定ファイルを書き出す場面がある
参考リンク
書き方
Write(file_path, content) ─ 保存先のパスと書き込む中身の2つを指定して呼ぶ。file_path は絶対パス(家のどこから見ても同じ住所の書き方、例: <code>/home/user/projects/cooking-blog/content/recipes/sukiyaki.md</code>)が必須
やってみるとこうなる
入力
「~/projects/cooking-blog/content/recipes/sukiyaki.md にすき焼きのレシピ記事を書いて。材料表は table 形式で」と頼む
出力例
● Write(~/projects/cooking-blog/content/recipes/sukiyaki.md)
⎿ Wrote 38 lines to ~/projects/cooking-blog/content/recipes/sukiyaki.md
このページに出てきた言葉
- 絶対パス
- ファイルの場所を「家のどこから見ても同じ住所」で書く方式。例: <code>/home/aisola/projects/cooking-blog/content/recipes/sukiyaki.md</code>。Writeはこの形式しか受け付けない
- 相対パス
- 「ターミナルでいまいる場所からの道順」で書く方式。例: <code>./content/recipes/sukiyaki.md</code>。Writeでは使えない
- mkdir
- ターミナルで新しいフォルダを作るコマンド。<code>-p</code> をつけると、途中のフォルダもまとめて作ってくれる
- エディタ
- 文章を書いたり書き換えたりするためのアプリ。Windowsの「メモ帳」、Macの「テキストエディット」、VS Code、vim、nano など
- ターミナル
- 黒い画面で文字のコマンドを打ち込む画面。Windowsだと「コマンドプロンプト」「PowerShell」、Macだと「ターミナル」アプリ
- Edit
- 既存ファイルの「ある1ヶ所」だけを書き換えるツール。Writeと違って、それ以外の部分には一切触れない
- MultiEdit
- 同じファイルの中で複数ヶ所をまとめて書き換えるツール。Editを連打する代わりに1回で済ませる
- Read
- ファイルの中身をClaudeが読むためのツール。既存ファイルを Write で上書きする前は Read で中身を見せておくのが安全
- .claude/settings.json
- プロジェクトごとのClaude Code設定を入れておくファイル。許可するツール、無効化するツール、環境変数などをまとめて書く
- README.md
- プロジェクトの入り口に置く説明書ファイル。何のプロジェクトか、どう使うか、を書いておく場所