Claude Codeを毎日使う私の、仕事の任せ方と確かめ方

7分で読めます

2026年10月27日更新

今、私が何かを作るとき、コードを打つ作業の大半はClaude Codeがやっています。私の担当は、タスクの両端に移りました。始める前に、何をしてほしいのか、何をもって完了とするのかをはっきり伝えること。終わったあとに、その証拠を確かめること。真ん中はエージェントに任せています。

このサイトもホームラボも、Claude Codeで管理しています(自分の手でコードを書きたいときは、今でもCursorを開きますが)。

タスクは新しいメンバーへのチケットのように書く

エージェントは速く、言われたとおりに動きます。でも、なぜそれが必要なのかは何も知りません。だから私は、優秀な新メンバーにチケットを書くつもりでタスクを渡します。目的、対象の場所、制約、触ってはいけないところ、そして何をもって完了とするか。

<URL> の登壇を src/content/speaking.ts に追加してください。
日付はアップロード日ではなく、イベントの開催日です。
ほかのファイルは触らないでください。
`npm run check` が通り、/speaking に表示されたら完了です。

一番効くのは最後の行です。自分で確かめられるゴールがあると、エージェントはチェックを自分で実行し、通るまで作業を続けます。コードがそれらしく見えた時点で止まってしまうことがなくなります。

ちょっとした修正を超える作業なら、まず計画を出してもらい(Claude Codeにはそのためのプランモードがあります)、ファイルが1つも変わらないうちに読みます。計画の修正ならメッセージ1通で済みますが、終わった作業の修正はそうはいきません。

ルールは一度だけ書く:CLAUDE.mdとAGENTS.md

Claude Codeは、セッションを始めるたびにリポジトリのCLAUDE.mdを読み込みます。このサイトのCLAUDE.mdは @AGENTS.md の1行だけで、共通のAGENTS.mdを読み込むようにしています。これで、どのエージェントも人間も、同じガイドを読むことになります。

ガイドは、完了の条件を含むTL;DRから始まり、コマンドの一覧表、ソースツリーの地図、よくある作業のレシピ(「登壇を追加する」なら、ファイル1つにオブジェクトを1つ足すだけ)、規約、そしてハマりどころの一覧と続きます。一番役に立つのはハマりどころで、どれにも理由が書いてあります。たとえばフォントをセルフホストしているのは、ネットワークのないサンドボックスではビルドが失敗するからです。過去のアップグレードでは、そのせいでフォントがいつの間にか消えていました。理由を知っているエージェントなら、それを「直して」元に戻したりはしません。

リンターでは絶対にチェックできないルールもあります。ここは実在する人物についての公開サイトなので、渡された履歴書に書いてあっても、プライベートな情報は載せないこと。

ゼロから始めるなら、これくらいでも十分役に立ちます。

## 完了と言う前に

- `npm run check`(lint、typecheck、build)を実行し、必ず通す。
- UIの変更は、アプリを起動してライトとダーク、390pxと1280pxで確認する。
- 依存パッケージを追加するときは理由を書く。
- シークレット、トークン、個人情報は絶対にコミットしない。

1文書いてあれば防げたはずの間違いをエージェントがしたら、その1文を書き足しましょう。

仕事の大部分は検証です

エージェントの「終わりました」は、あくまで自己申告です。私もそのつもりで扱います。このサイトでは、npm run check がlint、型チェック、本番ビルドをCIとまったく同じように実行します。続いて npm run smoke が起動中のサイトをクロールし、すべてのページが200を返すかどうかに加えて、フィード、OGP画像、サイトマップ、404ページまで確認します。CIはプルリクエストのたびに両方を実行するので、エージェントのブランチも私のブランチも同じ扱いです。

見た目は、目で見るしかありません。AGENTS.mdにはUIを変えたときに開くページのチェックリストがあり、両方のテーマ、スマホとデスクトップの幅、モバイルメニューやコマンドパレットまで含まれています。このサイトをTailwind CSS v4に上げたときの基準は「見た目の変化ゼロ」でした。全ルートをライトとダーク、モバイルとデスクトップで撮った62枚のスクリーンショットで確認し、旧ビルドとピクセル単位で一致しています。

そのうえで差分を読みます。ファイル名は毎回すべて確認し、設定、依存パッケージ、認証、ネットワークに関わるものは1行残らず読みます。見ているのは、差分に入っているべきではないファイル、削除やスキップされたテスト、緩められた型、紛れ込んだ any、新しい依存パッケージ、計算で出すべきなのにハードコードされた数字、そしてAGENTS.mdで理由を説明しているハマりどころをこっそり「直して」いるところです。

MCP:コンテキストは貼るよりつなぐ

MCPサーバーを使うと、Claude Codeはターミナルの外にあるツールも扱えるようになります。課題管理、ホスティングのダッシュボード、データベース、ブラウザなどです。エラーログをチャットに貼り付けなくても、エージェントがログのある場所で直接読んでくれます。Anthropic、Raycast、Supabaseと共同開催したTokyo AI Hackathonで、多くのチームが1日かけて作っていたのも、このMCP連携でした。

まずは読み取り専用から始めます。MCPサーバーは、渡した認証情報でそのまま動くからです。そして、サーバーは1つずつ追加します。つなぐツールが増えるほど、エージェントが「使おう」と判断するものも増えます。

長時間の自律実行と、その確かめ方

アップグレード、移行、何十ものファイルにまたがる同じ変更。長時間の自律実行は、エージェントが一番時間を節約してくれる場面です。ただし、エージェントが自分で確かめられるゴールがあって初めてうまくいきます。だから始める前に決めておきます。通すべきコマンド、欲しいスクリーンショット、触ってはいけないところ。

作業が終わって戻ってきたとき、コードを読むのは最後です。まず証拠を見ます。何を実行して何を飛ばしたかのまとめ、コミットの一覧、CIの結果、スクリーンショット。まとめに「このチェックは飛ばしました」とあれば、真っ先にそれを自分で実行し直します。差分を開くのはそのあとで、一番リスクの高いファイルから読みます。

ホームラボと、Mac miniで動くDiscordアシスタント

ホームラボも同じやり方で回しています。シンクライアントに作り替えた古いノートPC、Immich、Jellyfin、Paperless、Home Assistantが動くNAS、そして家じゅうのマシンの状態がひと目で分かる、エヴァンゲリオン風のNext.jsダッシュボードが2つあります。ダッシュボードは普通のNext.jsアプリなので、このサイトと同じように確認します。それ以外にはCIがないので、Uptime Kumaがスモークテストの代わりです。変更のせいでどこかのサービスが応答しなくなれば、すぐに分かります。

少し毛色が違うのが、Claudeを使ったDiscordアシスタントです。モニターなしで常時稼働しているMac miniでセルフホストしています。ここでのClaudeは私の代わりにコードを書く役ではなく、Claudeそのものが動いているプログラムです。こういうものを作るなら、チェックリストも変わります。必要なツールだけを渡す、何をしたかのログを残す、キーはリポジトリの外に置く。

任せないことと、信頼のしかた

何を作るか、なぜ作るかは任せません。エージェントが得意なのは「どう作るか」の方です。シークレットや、インターネットへの公開範囲を変えるものも任せません(うちのマシン同士はTailscaleでつながっていて、ポートは1つも開けていません。そこをエージェントに変えさせることはありません)。マージも任せません。プルリクエストを作るのはエージェントでも構いませんが、それを出すと決めるのは私の仕事です。

それ以外は、新しいメンバーへの信頼と同じで、作業の種類ごとに実績で積み上がっていきます。このサイトのコンテンツ編集は、checkとsmokeを通ってきた実績が長いので、ざっと目を通すだけです。依存パッケージのアップグレードはまだ実績が浅いので、しっかり読みます。認証やネットワークに関わるものは、毎回ゼロからです。

実行がうまくいかなかったときは、2か所を直します。コードと、AGENTS.mdの1行です。次のセッションは、それを知った状態で始まります。

最新情報を受け取る

新しい記事を公開したときにお知らせします。配信はいつでも解除できます。