AI活用で仕事はどう変わったか。Claude CodeとCodexを毎日使った実感
最近の業務時間は、体感で8割くらいAIとの対話に使っている。Claude CodeとCodexを中心に回していて、もう従来のやり方には戻れない。
自分の業務はインフラ寄りで、Terraform、Kubernetes、GCPまわりの構築・運用がメインになる。この領域でAIがどう使えているか、書いていく。
真っ黒い画面に白文字
作業の中心はターミナル。黒い画面に白文字が流れ続けて、そのまま調査と実装が進んでいく。隣から見ると何をやっているのか全くわからないと思う。
Claude Codeはターミナル上で動くAIアシスタントで、ファイルの読み書き、コマンド実行、コード生成を対話形式で進められる。VSCodeでファイルを探して、エディタで書いて、ターミナルに切り替えて実行して……という往復がなくなった。「このディレクトリのTerraformファイルを確認して」と言えば勝手に読んでくれるし、「このリソースを追加して」と言えばファイルを直接編集してくれる。
Codexは非同期型。重めの調査タスクを投げておく使い方をしている。「このリポジトリ全体で、特定のリソースがどこで参照されているか洗い出して」みたいな横断調査。Claude Codeで手元の作業を進めながら、バックグラウンドでCodexに調査を回す。この並行作業が日常になった。
GitHub Copilotも併用しているけど、こちらは補完がメイン。Terraformのresourceブロックを書き始めると、既存コードのパターンを拾って残りを提案してくれる。Claude Codeほど対話的ではないけど、定型的なコードを書くときの打鍵量が目に見えて減った。
問い合わせもAIに投げる
他チームから問い合わせが来たら、まずAIに調査させる。関連コード、ログ、設定ファイルを拾ってもらい、仮説を立てた上で返信案まで作る。
Slack MCP連携が地味に便利で、チャットのURLをClaude Codeに渡すだけで文脈を読み取ってくれる。流れはこう。Slackで質問が来る → URLをClaude Codeに渡す → AIがメッセージ内容を読んで関連コードや設定を探す → 原因の仮説と返信の下書きが出る。自分は内容を確認して、修正して送る。以前30分かかっていた調査が5分で片付くことがある。
「前回いつ変更したか」「他の環境ではどうなっているか」。この手の履歴調査系の問い合わせに特に効く。gitログやTerraformのstate、K8sマニフェストの差分を横断的に調べる作業は、人間がやると地味に時間を食う。AIなら一瞬。
コードも全部AI
実装コードもほぼAIが出す。自分でゼロから書く場面は減った。
レビューも一次チェックはAIで回して、人間は設計意図と運用影響だけ見る形になっている。実際にClaude CodeのカスタムSlashコマンドでPRレビューを自動化していて、diffの読み込みからセキュリティ影響の確認、IAMまわりの変更チェックまで一通りやってくれる。人間がやるのは「この変更、本番で問題起きないか」という判断の部分だけ。
Terraformのモジュールを新規作成するとき、以前は公式ドキュメントとにらめっこしながら書いていた。今は「こういうリソースをこの構成で作りたい」と伝えるだけで、変数定義、リソースブロック、出力値まで一式出てくる。自分がやるのは命名規則がチームのルールに合っているか、既存モジュールとの整合性があるかの確認。
KubernetesのYAMLも同じ。「このサービスのHPAを追加して、CPU閾値80%、最小2、最大10で」と言えば出てくる。ただし、出力をそのまま使うのは危ない。resourcesのrequests/limitsが既存Podと整合しているか、PDBとの関係は大丈夫か。運用面のチェックは人間の仕事として残る。
この流れだと、人間側の仕事はむしろ重い。方針の切り方、制約の伝え方、AIの出力に対する違和感の言語化。ここが品質を決める。
楽にはならない
ここは強調したい。AI活用を進めても、仕事量は減らない。
速度が上がると、今まで後回しにしていたタスクに着手できてしまう。バックログが減る前に新しい依頼が入ってくる。進捗が見える分、次の仕事も増える。面倒だった実装をAIに任せたぶん、調査・設計・合意形成に時間を使えるようになった。止まっていた案件が動くので、忙しさはむしろ増える。
「生産性が3倍になりました」という話は目にする。生産性が上がった分だけ期待値も上がるとは書かれていない。チームとして出せるアウトプットが増えた結果、担当範囲が広がり、並行案件が増える。「前より速く動けるけど、前より暇ではない」が正直なところ。
見落とされがちなのが、AIの出力を検証するコスト。生成されたコードが正しいか確認する作業は、自分で書くのとは違う種類の集中力を使う。自分で書いたコードなら思考過程がわかっている。AIが出したコードは「なぜこう書いたか」を逆算しないといけない。この検証をサボると本番で障害を起こす。先日もClaude Codeが生成したTerraformコードで、lifecycle ignoreの設定が抜けていて危うく既存リソースを再作成しかけた。plan結果を読んでいなかったら事故になっていた。
でも楽しい
それでも楽しい。手を動かす作業より考える作業の比率が上がったから。
指示の出し方ひとつで結果が変わるのが面白い。「Terraformでこのリソースを作って」だと微妙な結果が返ってくるのに、「既存の modules/xxx を参考に、同じ命名規則・変数構成で作って」と言うと精度が跳ね上がる。コンテキストの渡し方と制約の言語化が全て。ここの勘所がつかめてくると、どんどんスムーズになる。
自分はCLAUDE.mdというファイルにプロジェクトのルールを細かく書いておいて、Claude Codeのセッション開始時に自動で読み込ませている。チームの命名規則、検証手順、コミットメッセージのフォーマット、GCPプロジェクトとGKEクラスタの対応表。「毎回口頭で伝えるのが面倒なこと」を全部ファイルに落としておく。このファイル自体が400行を超えていて、もはやプロジェクトの運用マニュアルに近い。
いま効いている運用ルール
試行錯誤して落ち着いたルールをいくつか。
「制約」と「完了条件」を最初に書く。 「○○を作って」ではなく「○○を作って。ただし△△は使わない。完了条件は□□が通ること」。これだけでやり直しが半分以下になった。
1回で完成を狙わない。 大きな変更を一度に頼むとどこかでずれる。Terraformなら「まず変数定義だけ」「次にリソースブロック」「最後にoutput」と段階的に進めるほうが速い。Claude Codeは前の会話を覚えているから、分割しても文脈は途切れない。
生成コードは実行ログとセットで見る。 terraform planの出力、kubectl diffの結果、テストログ。コードだけ見て「良さそう」と判断すると後で痛い目を見る。AIにも「planの結果を確認して、意図しない変更がないか教えて」と頼める。自分はCLAUDE.mdの検証ルールに「変更後は必ずplanを実行」と書いてあるので、Claude Codeが自動でやってくれる。
作業ログを残す。 AIとのセッションは流れが速くて、何を決めて何を変えたかが後から追いにくい。10分ごとに作業ログを自動保存する仕組みを入れて、判断の経緯を残すようにしている。セッションが途中で切れても、ログさえあれば翌日に「昨日の続きから」で再開できる。
楽になるためのAI活用というより、成果を出すためのAI活用になってきた。そんな感覚で今日もターミナルに向かっている。
関連記事
他の記事
ブラウザ横スクロールアクションゲーム開発記|TypeScript×Canvasで作るネオンランナー
HTML5 CanvasとTypeScriptで横スクロールアクションゲーム「ネオンランナー」を自作した。物理エンジン、衝突判定、操作性の工夫を解説する。
ブラウザで遊べるテトリス風パズルをTypeScriptで作った話
HTML5 CanvasとTypeScriptでテトリス風ブロックパズルを実装した。エンジンとUIを分離するSnapshotパターンや、ネオン演出のこだわりを解説する。
ゲーム実況のサムネイル作りで学んだデザインの基本
非デザイナーがゲーム配信のサムネイルを自作し続けて気づいた、視認性・配色・構図の基本ルール。試行錯誤の記録。
配信のコメント欄が動いた瞬間の話。ゼロからイチの体験
ゲーム配信でコメントがゼロの日々を超えて、初めてリアルタイムでコメントが来た瞬間の話。ゼロからイチの体験がモチベーションを変えた。