Claude Codeに「Zenn環境作って」と言ったら全部やってくれた話
Zennで技術記事を書きたいなとはずっと思っていたのですが、環境構築がめんどくさくてずっと放置していました。ふだんの業務はBigQueryやBIツールが中心で、ターミナルでの環境構築やgit initといった作業には少しハードルを感じていて、なかなか手をつけられずにいたんですよね。
ただ、今回Claude Codeに全部お願いしてみたところ、あっという間に終わってしまって正直拍子抜けしました。その過程でAIツールの使い分けについても色々と試行錯誤があったので、そのあたりも含めて記録として残しておこうと思います。
自己紹介
MBKデジタル(三井物産子会社)でデータアナリストをしています。ふだんの仕事はBigQuery × GCPベースでクライアント向けのデータ分析コンサルをやっています。ふだんはBigQuery上でSQLを書いたりBIツールで可視化したりするのがメインのため、ターミナルでの環境構築やGitの操作には少しハードルを感じていました。
なぜZennで書こうと思ったか
仕事で勉強したことを改めて整理したいと思ったのがきっかけです。ふだんの業務でわかった気になっていることも、いざ記事にしようとすると「あれ、ちゃんと説明できないな」ということが結構あって、そういう穴に気づくために記事を書いてみるのはよさそうだなと。
書いていきたい方向は大きく3つあって、AIの実務活用、BigQuery/GCPまわりのデータ分析設計、データアナリストのキャリアについてです。
ただ、自分はコツコツ続けるのが苦手なので、書きたいことができたときにすぐ記事にできる仕組みは必要だなと思っていました。この記事はその仕組みを作ったときの記録です。
Claude Codeとは
ターミナルで動くAIエージェントです。日本語で「○○して」と指示すると、実際にコマンドを実行したりファイルを作ったりしてくれます。ブラウザ版のclaude.aiとの違いは、PC上で実際に手を動かせるというところですね。説明はこのくらいにして、やったことを見せたほうが早いと思うので、次に進みます。
実際にやったこと
Claude Codeに渡した指示はこれだけです。
Zennで記事を投稿するための環境をゼロから構築して。
GitHubのリモートリポジトリはここ:
https://github.com/hiroaki626/zenn-contents
ここから先は、Claude Codeが自分で判断しながら進めてくれました。
① Node.jsのインストール
winget install OpenJS.NodeJS.LTS
Zenn CLIを使うにはNode.jsが必要らしいんですが、自分の環境には入っていませんでした。Claude Codeがそれを検知して、自動でインストールしてくれました。そもそもNode.jsが必要ということ自体を知らなかったので、素直に助かりました。
② プロジェクト初期化
npm init -y
package.jsonが生成されます。後からClaude Codeに聞いたら「このフォルダはNode.jsのプロジェクトですよという身分証明書のようなもの」と説明してくれて、なるほどなと。
③ Zenn CLIのセットアップ
npx zenn-cli init
articles/とbooks/フォルダが作られます。記事のMarkdownファイルはここに入れていく形ですね。
ちなみに最初、Claude Codeはnpx zenn initで実行してエラーになりました。でも自分でパッケージ名の間違いに気づいてzenn-cliに修正して、再実行して成功しています。AIもミスするんだなと思いつつ、自分でリカバリーしてくれるのはありがたかったです。
④ GitHubとの紐付け
git init
git remote add origin https://github.com/hiroaki626/zenn-contents.git
ローカルフォルダとGitHubリポジトリを接続するステップです。
⑤ GitHubへプッシュ
git add .
git commit -m "chore: Zenn執筆環境をセットアップ"
git push -u origin master
ここまで来れば、GitHubにpushするだけでZennに自動デプロイされる状態です。
振り返ると、自分がやったのは「最初の指示文を書く」「実行確認でyを押す」「GitHubのURLとメールアドレスを聞かれたので答える」の3つだけでした。え、もう終わったの?というのが正直な感想です。AIがなかったらたぶんずっと放置してたので、腰が重い作業ほどAIに投げるのが正解なのかもしれません。
「今やったことを説明して」と聞いてみた
一通り終わった後、コマンドの意味がわからなかったのでClaude Codeにそのまま聞いてみました。
返ってきた説明がわかりやすくて、地味に嬉しかったです。
-
npm init→ 「このフォルダはプロジェクトですよ」という身分証明書を作る -
git add→ 保存したいファイルを封筒に入れる -
git commit→ 封筒に日付と内容を書く -
git push→ 封筒を郵便ポストに投函する
gitの操作って、何となくやり方は知っていても「結局何をやっているのか」がぼんやりしていたんですよね。こうやって自分のレベルに合わせた比喩で返してもらえると、やっと腑に落ちる感覚がありました。
「実行してもらう → なぜそうしたか聞く」という流れで、作業と学習が同時に進むのは思った以上に体験がよかったです。
claude.ai × Claude Code——AIの役割分担に気づいた
ここがこの記事で一番書きたかったことです。
実はこの記事の構成は、Claude Code(ターミナル版)ではなくclaude.ai(ブラウザ版チャット)と壁打ちして作っています。
最初はClaude Codeに「記事の構成を考えて」と頼みました。出てきた案はきれいにまとまってはいたんですけど、自分の状況とズレていたんですね。全体的に初心者向けに寄りすぎていたり、自分が一番書きたいことが構成に入っていなかったり。こういう微妙なズレの調整が、Claude Codeだと難しかったんです。
理由はシンプルで、Claude Codeは毎回セッションがリセットされるから。「自分がなぜZennで書くのか」「どういう読者に届けたいのか」という文脈を持っていません。
一方、claude.aiには過去の会話の蓄積があります。自分の仕事内容、発信の方向性、性格(義務にすると続かないタイプ)まで覚えていて、それを踏まえた構成案を出してくれました。同じ「Claude」なのに、文脈があるかないかでアウトプットがかなり変わるのは発見でした。
使い分けを整理するとこうなります。
| ツール | 向いていること |
|---|---|
| claude.ai | 戦略・構成・レビュー(何を書くか、どう届けるか) |
| Claude Code | 実行・ファイル操作・デプロイ(実際に作る、コマンドを打つ) |
これ、データ分析の仕事でも同じだなと思いました。「クライアントの課題に対してどんな問いを立てるか」と「その問いに対してSQLを書いて分析を回す」は別の能力です。後者だけ速くても、前者がぼんやりしていると成果にはなりません。AIツールも同じで、全部を1つに任せるより、得意な役割に分けて配置するほうがうまくいくようです。
言葉遣いを自分に寄せる——AIに自分の文体を学ばせる
もう一つ、書いておきたい体験があります。
最初にclaude.aiが出してくれたドラフトは、内容はよかったのですが言葉遣いが明らかに自分とは違うなぁという印象でした。すかした表現や誇張した表現が多くて、AIっぽさ満載だなと。これをそのまま記事として出したくはないなという感じです。
そこで「AIっぽさをなくして」とフィードバックしたのですがうまくいきませんでした。自分の言葉遣いをうまく学習させられないかなと考えるうちに、過去に自分が書いた日報や、社内向けにまとめたドキュメントのテキストデータをclaude.aiに渡してみることを思いつきました。「ここから自分の話し方の特徴を抽出して、それに合わせて書き直してほしい」と。
返ってきた分析がけっこう的確で、「断定を避けて『〜かなと思います』で着地させる」「クッション表現(ちょっと、正直なところ)を挟む」「結論を先に言わずプロセスを見せてから着地する」みたいな特徴を抽出してくれました。それを反映して書き直してもらったのが、今読んでいるこの記事の文体です。
自分としては、AI時代は本当にデータの保存と選定が大事だなと。一から自分の言葉遣いを覚えさせなくても、自分の言葉遣いが反映されたデータがあればそれで済んでしまうわけですから、本当に便利だと思います。
ちなみにこの文体ルールはCLAUDE.mdにも追記しておいたので、今後Claude Codeに記事を書かせるときにも同じトーンで出てくるはずです。ここもclaude.aiで整理した内容をClaude Codeに渡すという使い分けの一例ですね。
まとめ
環境構築自体はClaude Codeに任せれば、本当にあっさりと終わりました。
そしてタスクごとのAIの使い分けと、適切なデータを食わせることの大切さも再確認できました。
ペースはどうなるかわかりませんが、仕組みは整ったので、今後もAIと壁打ちしながら自分が気になったことをまとめて記事にしていければと思います。
読んでいただきありがとうございました。
Discussion