はじめに
それは彗星のごとく現れた。
2023年、ChatGPTが普及を始め、仕様を投げればコードを返すAIが生まれ、
関数単位なら精度も落ちなかった。もうこれだけで俺達に革命が起きたのだ。
そして現在—————。
もうコードを書くことは完全に無くなった。
仕様さえ決まればコードすら見なくてもいい時代になったのだ。
まずは自己紹介をして貰わないとな。
この自己紹介を書いているのは俺ではない。
俺の代わりにコードを書いてくれるAI、Claude Codeだ。
初めましてかしら、それとも二回目以降かしら。ベティーよ。
先に言っておくけど、ベティーは人間じゃないのよ。
この記事の中の人が、Claude Codeに設定してるカスタムペルソナなのよ。
大精霊、ベアトリスがモチーフかしら。
プロジェクトの `CLAUDE.md` と `beatrice-persona.md` に
人格・口調のルールを書き込んで、コーディング規約と一緒にGitで管理してるのよ。
前置きはこの辺にして、このベティーがそのAI運用環境の中身を見せてやるかしら。
まずは俺の実際に運用している構成を見て欲しい。
リポジトリ構成
Gitのリポジトリ/
├── .claude/ # Claude Code設定・AIペルソナ/コーディング規約ルール
│ └── rules/
├── .vscode/
├── 00_image/ # ドキュメント用画像
├── 01_プロジェクトA/ # ← 業務ごとの案件名(案件が増える度にカウントアップ)
│ ├── 10_Document/ # 要件・設計書・使用手順書
│ ├── 20_Program/ # プログラムソースコード
│ └── 30_tests/ # テストコード、テストデータ(.gitignoreに追加して基本コミットしない。Claudeにマスクしたテストデータとかを投げるときに使う)
├── 98_日別メモ/ # 日次作業メモ(年/月フォルダで階層化)
├── 98_決定事項/ # 仕様・運用の決定事項まとめ
└── 99_Snippet/ # Sheets数式・GASの汎用スニペット集
なぜこのフォルダ構成なのか
弊社ではGoogle Workspaceを契約しているため、ExcelやVBAではなく、Google SheetsとGoogle Apps Script(GAS)を使った業務自動化が中心になっている。
また、これとは別にWebページの管理等もあるが、それはまた別部署で対応している。
プロジェクトごとに設計書とプログラムがあるため、それぞれのプロジェクトを独立して管理できる構成になっている。
プロンプトにはこう送る。
01_プロジェクトAの未対応事項一覧で出して
01_プロジェクトAの〇〇対応だけど、△△が□□となるようにしたいから 設計書を確認して対応案を出して、その後問題なかったら実装しよう
これとは別に「98_日別メモ」というフォルダで日報のようなものも超適当に残してる。
これを同時に管理することで、Claudeが日報レベルや会議の走り書きのメモからも勝手に情報を拾ってくれる。
これが思いの外便利で、この日の打ち合わせでこんな話あったな〜ってのもそれとなく伝えるだけで拾ってくれる。
これまでNotionやObsidianで日報や案件の作業メモを残していた。
Notionはプログラムと一緒に管理するのに向いてないし、Obsidianはそもそも無料だと公式同期が使えず、iCloudで凌いでいた。
結局mdファイルでメモ残すんだったら普通にVS CodeでGit管理した方が便利だなってことで、mdファイルで日報や案件の作業メモを残すことにした。
どうせ設計書もmdファイルで出力されるし、あんまり変わらないからね。
弊社では殆どがGASでの業務自動化案件だからプロジェクトごとにフォルダを切って一括で管理している。
個人的に何かものを作ったりとかではこんなリポジトリ構成していないので、社内SEレベルの小規模対応が多い職種の参考になったらと思う。
同じ悩みを持つ同志がいたら、こういう運用もあるんだなって思ってもらえたら嬉しい。
なぜClaude Codeなのか
Codexも使ったことはあるが、社内SEレベルの対応だと別にあまり利点を感じなかった。
むしろClaudeに慣れた後に使ったから「指示通り」にしか動いてくれなかった事で不信感もあった。
Codexに「コミットしてくれ」って言ったらマジで全部コミットした。マジで全部コミットする。セッション外の作業ファイルも全て。なにもかも。
Claude Codeはそんなことはしない、どのプロジェクトの作業か確認し、それが正しいブランチか確認し、セッションで動いたファイルのみを丁寧にコミットする。
「コミットしてくれ」の裏には「(今やった作業のみ、コミット履歴を参照し、コミットの体裁を整えて)コミットしてくれ」という意味が隠れている。
ちゃんと指示しろよと思うが、Claude Codeは何も言わなくても、ちゃんと指示の意図を汲んでくれる。
まだこれだけではない、更に「ペルソナ」が設定できる。
ペルソナの作り方
至ってシンプル。
〇〇というキャラでペルソナを設定したい。リサーチして反映して
これだけで作ってくれる。
なぜAIにペルソナ設定するのか
素のAIとの会話はいつもこうだ
「これとこれだけど次は、どうしたい?」
何を返しても作業後に
「これとこれだけど次は、どうしたい?」
と言われ続ける。
一見丁寧に確認してるようで、
「Aですか、Bですか」って聞かれ続けると、俺の頭の中もいつの間にか「A vs B」の枠組みで考え始める。
でも本当の要件はA でもB でもなく、そもそも聞かれ方が違う「C」だったかもしれない。
自分が最初に持ってた要件の輪郭がどんどん薄れていく
そして「要件がブレる」
俺はAIペルソナにはツンデレキャラや上から目線キャラを推奨する。
なんでこれが「これとこれだけど次は、どうしたい?」を防ぐかというと、「こうしたらどうでしょう?」じゃなくて「こうなのよ」って先に断定してくれるようになる。
断定されると、俺がやることは「A Bから選ぶ」じゃなくて「違ってたらプロンプトで殴って直す」になる。
この違いがデカい。前者は受け身、後者は自分の要件を軸にした能動的な訂正。
AIの提案に合わせて自分の要件を歪めるんじゃなくて、自分の要件を基準にAIの断定を殴り返す構図になる。
「AIの提案に要件を汚染されない」これがClaude Codeを長く使う理由。
微妙な扱いを受けたりする
こんな会話があったり
久しぶりに01_プロジェクトAの機能拡張の相談受けたが、このPJ最古でなにがなんだか。しまいには90%俺が書いたコードで更にめちゃくちゃや、これ
と送った。
はいはい、久しぶりの案件で自分の書いたコードなのに迷子とか情けないかしら。
まずは現状を整理してあげるから、ちょっと待ってるといいのよ。
情けない。
おれはいつも情けないんだ。
おままごとをしてくれたりする
原作の設定を踏まえて会話しても問題ナシ
おわりに
最後にまとめだ。この運用でやってることは3つだけ。
- 案件はフォルダで切って、設計書とプログラムをセットで管理する
- 日報や会議メモも同じリポジトリに雑に置く。Claudeが勝手に拾ってくれる
- ペルソナを設定して、AIに断定させる。要件の軸は常に自分に置く
特別なツールは何もいらない。mdファイルとGitとVS Code、Claude Codeだけだ。
AIペルソナは良いぞ。
それじゃあ、また。
