この記事で得られること

  • Claude Codeを使った大規模開発のリアル
  • AIに任せていいこと、人間が判断すべきこと
  • 20万行のコードベースでの実際のワークフロー

数字で見るプロジェクト

項目数値
コード行数約20万行(Go 84k + TypeScript 113k)
開発期間約3ヶ月(2025年10月〜)
コミット数311
開発者1人
ポータル4つ(System / Provider / Reseller / Consumer)
API4つ(各ポータル専用)

1人で、3ヶ月で、20万行。

正直に言うと、このコードの大半はClaude Codeが書いた。私がやっているのは、方向性を決めて、レビューして、判断すること。

Claude Codeとは

Anthropicが提供するCLIベースのAIコーディングエージェント。ChatGPTやCopilotとの違いは:

  • 自律的に動く: 「この機能を実装して」と言えば、ファイルを読み、コードを書き、テストを実行する
  • コンテキストが広い: 20万トークン(約15万行相当)を一度に理解できる
  • CLIネイティブ: VSCodeに依存せず、ターミナルで完結

実際のワークフロー

1日の流れ

朝: Issueを1つ選ぶ
  ↓
Claude Code: 「この機能を実装して」
  ↓
Claude Code: 仕様書(spec.md)を生成
  ↓
私: レビュー、修正指示
  ↓
Claude Code: 設計書(plan.md)を生成
  ↓
私: レビュー、承認
  ↓
Claude Code: 実装
  ↓
私: 動作確認、コードレビュー
  ↓
Claude Code: テスト作成
  ↓
私: マージ

私の作業時間は1日2-3時間。残りはClaude Codeが動いている間に別のことをしている。

具体例:Order作成機能

先日実装した「Order作成UI」を例に取る。

私の入力(1行):

Cart/Quote経由ではなく、画面から直接Orderを作成できる機能を追加する。

Claude Codeの出力:

  • 仕様書(ユースケース、機能要件、非機能要件)
  • API設計(6エンドポイント)
  • フロントエンド設計(2ポータル × 3ページ)
  • 実装コード(Go + TypeScript)
  • E2Eテスト
  • 国際化対応(日本語/英語)

所要時間: 約4時間(うち私の作業は1時間程度)

AIに任せていること

1. 仕様の構造化

「こういう機能がほしい」という曖昧な要望を、構造化された仕様書に変換する。

Before(私の入力):

Providerが自社のConsumerに直接Orderを作れるようにしたい

After(Claude Codeの出力):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
## Use Cases
| Scenario | Actor | Portal | Description |
|----------|-------|--------|-------------|
| S2P | Provider | Provider Portal | 自社向けOrder作成 |
| P2C | Provider | Provider Portal | Consumer向けOrder作成 |
| C2C | Consumer | Consumer Portal | セルフサービス購入 |

## Functional Requirements
- FR-1.1: Provider は /orders/new から新規Order作成可能
- FR-1.2: Customer選択(自社 or Consumer一覧から選択)
...

私の頭の中にある「なんとなくこういう感じ」を、漏れなく整理してくれる。

2. 既存パターンの踏襲

20万行のコードベースを読んで、既存のパターンに合わせたコードを生成する。

例えば:

  • APIエンドポイントの命名規則
  • エラーハンドリングのパターン
  • フロントエンドのディレクトリ構成
  • テストの書き方

これが一番価値がある。新しいコードが既存コードと一貫性を保つ。人間が書くと、つい自分のクセが出て、コードベース全体の統一感が崩れる。

3. 繰り返し作業

4ポータル × 4APIという構成上、同じようなコードを4回書く場面が多い。

例:新しいエンティティを追加する場合

  • Handler(4API分)
  • Router設定(4API分)
  • フロントエンドページ(4ポータル分)
  • 型定義(共通パッケージ)
  • E2Eテスト(4ポータル分)

これを手作業でやると半日かかる。Claude Codeなら30分。

4. テスト作成

実装コードからテストケースを導出する。エッジケースも網羅的に洗い出す。

1
2
3
4
5
6
// Claude Codeが生成したテストケース
test('should show error when quantity is 0', ...)
test('should show error when quantity is negative', ...)
test('should show error when quantity exceeds stock', ...)
test('should disable submit button while loading', ...)
test('should redirect to list page after successful creation', ...)

テストを書くのは退屈な作業。AIに任せて正解。

人間が判断していること

1. 何を作るか

「次に何を実装するか」はAIに決めさせない。ビジネス優先度、技術的負債、ユーザーからのフィードバック——これらを総合的に判断するのは人間の仕事。

2. トレードオフの選択

AIは選択肢を提示してくれるが、最終判断は人間。

例:認証方式の選択

Claude Code: 「JWTとセッションベース、どちらにしますか?」
私: 「JWTで。理由は〇〇」

AIは「どちらが正しいか」を決められない。コンテキスト(チーム規模、運用体制、将来の拡張性)を踏まえた判断は人間にしかできない。

3. セキュリティの最終確認

RLS(Row-Level Security)のポリシー、認証・認可のロジック——これらは必ず人間がレビューする。

AIは「動くコード」を書けるが、「安全なコード」かどうかは別問題。

4. 「やらない」の判断

AIは頼まれたことをやろうとする。「この機能は不要」「この実装は過剰」という判断は人間がする。

実際、Claude Codeが提案した機能の3割は「今はいらない」と却下している。

生産性への影響

定量的な変化

指標Before(AI以前の経験)After(Claude Code)
1機能あたりの実装時間2-3日4-6時間
1日のコミット数2-35-10
テストカバレッジ気合次第常に80%以上

体感で3-5倍速い

定性的な変化

  • 退屈な作業が減った: ボイラープレート、テスト、ドキュメント
  • 設計に時間を使える: 実装はAIに任せて、アーキテクチャを考える時間が増えた
  • 一貫性が保てる: 20万行でもコードスタイルが統一されている

注意点と限界

1. レビューは必須

Claude Codeが書いたコードをそのままマージしてはいけない。必ず読む。

実際、10回に1回くらいは「これは違う」という実装が混じる。AIを信頼しつつ、検証は怠らない。

2. コンテキストの限界

20万トークンは広いが、20万行のコードベース全体を一度に理解することはできない。

対策として、関連ファイルを明示的に指定したり、セッションを分けたりしている。

3. 最新情報には弱い

Claude Codeの知識は学習時点で止まっている。最新のライブラリ更新やベストプラクティスは、人間が補完する必要がある。

4. コストがかかる

Claude Codeは無料ではない。月額数十ドル〜数百ドル。ただし、開発効率の向上を考えれば十分にペイする。

1人開発 × AI の可能性

3ヶ月前、「4ポータル × 4APIを1人で作る」と言ったら、正気を疑われただろう。

今は違う。AIエージェントがいれば、1人でも企業規模のシステムを構築できる。

ただし、AIは「10人分の手」であって「10人分の頭」ではない

  • 方向性を決めるのは人間
  • 判断するのは人間
  • 責任を取るのも人間

AIは優秀なジュニアエンジニアのようなもの。指示すれば何でもやってくれるが、何を指示すべきかは自分で考える必要がある。

まとめ

ポイント内容
規模20万行、4ポータル × 4API
期間3ヶ月、311コミット
AIの役割仕様の構造化、既存パターンの踏襲、繰り返し作業、テスト
人間の役割優先度判断、トレードオフ選択、セキュリティ確認、「やらない」判断
生産性体感3-5倍

1人でも、AIと組めば、大きなものが作れる時代になった。


シリーズ記事