Claude Codeで効率的に開発を進めるために最も重要なのは「事前準備」です。AIに曖昧な指示を出すと、意図しない方向に進んでしまい、大量の修正が必要になります。

この記事では、実際のWordPressプラグイン開発を例に、Claude Codeで高品質なコードを生成するための要件定義・設計管理の具体的な手順をご紹介します。

🎯 なぜ事前準備が重要なのか?

Claude Code使用時の典型的な問題

  • 曖昧な指示: 「プラグインを作って」→ 何を作るか分からない
  • WordPress エラー: Fatal Error でサイトが動かなくなる
  • 仕様の迷走: 途中で要件変更 → 大幅な作り直し

事前準備の効果

  • 明確な指示: 具体的な仕様でピンポイントな実装
  • 一貫性: 統一された設計思想
  • 品質保証: セキュリティ・パフォーマンス要件の事前定義

📁 Step 1: プロジェクト構造の準備

1.1 推奨ディレクトリ構造

[プロダクト名]/                        # GitHubリポジトリルート
├── dist/                                   # ビルド成果物(.gitignoreで除外)
│   └── [プロダクト名]/                    # プラグイン本体
│       ├── [プラグイン].php               # メインプラグインファイル
│       ├── uninstall.php                  # アンインストール処理
│       ├── readme.txt                     # WordPress.org用README
│       ├── LICENSE                        # GPLv2ライセンス
│       ├── includes/                      # 内部処理クラス
│       ├── admin/                         # 管理画面関連
│       ├── public/                        # フロントエンド関連
│       └── languages/                     # 多言語対応ファイル
├── src/                                    # アプリケーションソースコード
├── tests/                                  # テストスイート
├── config/                                 # 設定ファイルディレクトリ
├── README.md                               # プロジェクト説明
├── docs/                                   # 開発ドキュメント
│   ├── 01_requirements.md                 # 要件定義書
│   ├── 02_architecture.md                 # システム設計書
│   ├── 03_development-workflow.md         # 開発/テスト方針(段階的テストとログ記録の徹底)
│   ├── 04_database.md                     # データベース設計書(必要な場合)
│   ├── 05_api.md                          # API設計書
│   ├── 06_errors.md                       # エラーハンドリング設計
│   ├── 07_setup.md                        # 開発環境セットアップ
│   ├── 08_design.md                       # デザインシステム定義(必要な場合)
│   ├── 09_frameworks-guide.md             # CSSフレームワーク(必要な場合)
│   └── 10_tasks.md                        # 開発タスク・ロードマップ
├── logs/                                   # 動的開発記録 + Vibe Logger
│   ├── CHANGELOG.md                       # 開発進捗記録
│   ├── ERRORLOG.md                        # エラー・問題記録
│   ├── PATTERNS.md                        # コーディングパターン・知見記録
│   └── vibe/                              # Vibe Logger出力
│        └── vibe_20250709.log
├── CLAUDE.md                               # Claude Code設定(統括ファイル)
├── .claude/                                # Claude Code設定(Git管理対象外)
├── .git/                                   # Git管理
└── .gitignore                              # Git設定

重要: WordPressプラグインの場合はdist/内に配置し、隠しファイルと完全分離する

📋 Step 2: 01_requirements.md(要件定義書) の作成

2.1 現状の問題の明確化

実例)WP Analytics Tag Check Plugin

何が不便か?

  • WordPressプラグイン「ExUnit」等は1つのタグしか設定できない
  • 自社と広告代理店等の複数タグ管理に別途システムが必要
  • タグの発火状況を手動確認する必要があり、問題発見が遅れる

2.2 解決したい範囲を決める

対象機能(スコープ内)

  • 複数アナリティクスタグの一元管理
  • 自動監視システム(デフォルト AM3:00実行)
  • 問題検出時の自動メール通知
  • WordPress設定「検索エンジンがサイトをインデックスしないようにする」の監視
  • タグが1つもない状態ではないか(タグ設定のリセット・設定し忘れ等)の監視

対象外(スコープから除外)

  • 個別ページのNoindex設定監視
  • Google Analytics API連携による詳細分析
  • 複数サイト一括管理機能

WordPressプラグイン開発での実装例:

# 01_requirements.md(要件定義書)

## 1. プロジェクト概要

### 1.1 プロダクト名
**WP Analytics Tag Check**

### 1.2 概要
複数のアナリティクスタグを一元管理し、タグの動作状況とサイトのNoindex設定を自動監視してメール通知するWordPressプラグイン

### 1.3 ターゲットユーザー
- 複数のアナリティクスタグを管理する必要があるWordPress管理者
- 広告代理店やマーケティング担当者
- 複数のクライアントサイトを管理するWeb制作会社
- テスト環境と本番環境を頻繁に切り替える開発者


## 2. 現状の問題と解決策

### 2.1 現状の問題
#### 問題1: 単一タグ制限
- **現状**: WordPressプラグイン「ExUnit」や多くのSEOプラグインはタグを1つしか設定できない
- **影響**: 自社と広告代理店等の複数タグ管理に別途システムが必要
- **頻度**: 日常的な運用で毎回発生
#### 問題2: 監視の手動化
- **現状**: タグが発火していない問題に気づくのに時間がかかる
- **影響**: 毎日の手動チェック作業:30分/日、問題発見の遅れ:平均24-48時間
- **頻度**: 毎日の運用作業
#### 問題3: 移行時の設定ミス
- **現状**: テスト環境から本番環境移行時のNoindex設定忘れが頻発
- **影響**: SEO効果の損失、検索エンジンでの表示機会の喪失
- **頻度**: 月1-2回発生

### 2.2 解決策
#### 対象機能(スコープ内)
- 複数アナリティクスタグの一元管理
- 自動監視システム(デフォルト AM3:00実行)
- 問題検出時の自動メール通知
- WordPress設定「検索エンジンがサイトをインデックスしないようにする」の監視
- 複数のアナリティクスタグがちゃんと出力されているかの監視
- タグが1つもない状態ではないか(タグ設定のリセット・設定し忘れ等)の監視
#### 対象外(スコープ外)
- 個別ページのNoindex設定監視
- Google Analytics API連携による詳細分析
- 複数サイト一括管理機能
- リアルタイム監視(バッチ処理のみ)


## 3. 機能要件

### 3.1 MVP(最小機能プロダクト)要件
#### 1. タグ管理機能
- **タグタイプ**: Google Analytics(gtag)、Google Tag Manager、カスタムスクリプト
- **基本操作**: タグの追加・編集・削除・有効/無効切り替え
- **入力形式**: <script>〜</script> 形式での完全タグ入力
- **出力制御**: wp_head または wp_footer での出力位置選択
#### 2. 基本監視機能
- **タグ存在確認**: 設定したタグがページ上に出力されているか(簡易版)
- **Noindex監視**: WordPress設定の「検索エンジンがサイトをインデックスしないようにする」チェック
- **監視スケジュール**: WordPress Cron使用、デフォルト毎日AM3:00
#### 3. メール通知機能
- **通知先**: 管理者メール(admin_email)
- **通知条件**: タグなし、タグ出力エラー、Noindex有効
- **メール内容**: 問題の種類、発生時刻、確認方法

### 3.2 将来機能(MVP後の拡張)
- 高度な監視(タグの発火確認、詳細なエラー分析)
- 複数メール通知先設定
- 詳細ログ履歴・エクスポート機能
- 監視頻度のカスタマイズ
- API連携機能


## 4. 非機能要件

### 4.1 パフォーマンス要件
- **ページ読み込み**: フロントエンドへの影響1秒以内
- **管理画面**: 設定画面の応答性良好
- **監視処理**: バックグラウンド実行でサイトに影響なし
- **メモリ使用**: 追加使用量16MB以下

### 4.2 互換性要件
- **WordPress**: 5.0以上
- **PHP**: 7.4以上
- **ブラウザ**: モダンブラウザ対応(Chrome、Firefox、Safari、Edge)
- **プラグイン**: 主要SEO・キャッシュプラグインとの共存

### 4.3 セキュリティ要件
- **WordPress.org準拠**: 完全なガイドライン遵守
- **XSS対策**: 全出力のエスケープ処理
- **CSRF対策**: nonce による操作確認
- **SQLインジェクション対策**: prepared statement使用
- **権限管理**: manage_options capability必須

### 4.4 ユーザビリティ要件
- **学習コスト**: 5分以内での基本操作習得
- **直感的操作**: 説明不要の分かりやすいUI
- **エラー対応**: 明確なエラーメッセージと解決方法の提示
- **テスト駆動開発の徹底**: 具体的で明確なテストを書くこと


## 5. UI/UX設計

### 5.1 管理画面構成
#### タブ構成
1. **タグ管理**: メインのタグ設定画面
2. **監視設定**: 監視条件・通知設定
3. **ステータス**: 現在の状況・ログ表示
#### タグ管理画面レイアウト
┌─────────────────────────────────────┐
│ WP Analytics Tag Check              │
├─────────────────────────────────────┤
│ [タグ管理] [監視設定] [ステータス]    │
├─────────────────────────────────────┤
│ 登録済みタグ一覧:                    │
│ ┌─────────────────────────────────┐ │
│ │ GTM-P6H7HXM2  [有効] [編集] [削除] │ │
│ │ G-7Y97FGQ3PL  [有効] [編集] [削除] │ │
│ └─────────────────────────────────┘ │
├─────────────────────────────────────┤
│ 新しいタグを追加:                    │
│ タグ名: [例: Google Analytics]       │
│ タグコード: [<script>...</script>]   │
│ 出力位置: [○ head] [○ footer]       │
│ [+ タグを追加]                       │
└─────────────────────────────────────┘


## 6. 技術制約

### 6.1 WordPress.org制約
- **ライセンス**: GPL v2以降必須
- **外部通信**: ユーザー明示的同意のみ
- **トラッキング**: 一切のユーザートラッキング禁止
- **広告制限**: 管理画面での過度な宣伝禁止
- **コード品質**: 人間が読めるコード、WordPress標準準拠

### 6.2 セキュリティ制約
- **データサニタイズ**: 全入力データの適切な処理
- **出力エスケープ**: XSS防止の徹底
- **権限チェック**: 全操作での適切な権限確認
- **nonce検証**: CSRF攻撃防止

### 6.3 パフォーマンス制約
- **フロントエンド影響**: 最小限に抑制
- **データベース**: 効率的なクエリ設計
- **キャッシュ**: 適切なキャッシュ戦略
- **メモリ**: 省メモリ設計


## 7. 成功指標

### 7.1 機能的指標
- **問題検出率**: タグ・Noindex問題の95%以上を検出
- **通知信頼性**: 99%以上のメール送信成功率
- **処理性能**: 10個のタグ監視を3分以内で完了

### 7.2 ユーザー体験指標
- **初期設定時間**: 5分以内でのタグ設定完了
- **管理効率**: 手動チェック時間の90%削減
- **エラー対応**: 問題発生から認識まで3時間以内

### 7.3 品質指標
- **バグ報告**: 月間5件以下
- **互換性**: 主要環境での100%動作
- **セキュリティ**: 脆弱性ゼロの維持


## 8. 開発方針

### 8.1 段階的開発
- **Phase 1**: MVP機能のみ実装
- **Phase 2**: GUI改善・UX向上
- **Phase 3**: 高度な機能追加

### 8.2 品質重視
- **WordPress.org準拠**: 公式ディレクトリ掲載レベル
- **セキュリティファースト**: セキュリティを最優先
- **シンプル設計**: 必要最小限の機能に特化
この要件定義に基づき、シンプルで信頼性の高いWordPressプラグインを開発し、WordPress.org公式ディレクトリでの公開を目指します。

⚙️ Step 3: 02_architecture.md(システム設計書) の作成

WordPressプラグイン開発での実装例:

# 02_architecture.md(システム全体の設計)


## 1. 技術スタック

### 1.1 開発環境
- **PHP**: 7.4以上(WordPress 5.0+の要件)
- **WordPress API**: Hook、Database、Admin Menu API
- **jQuery**: WordPress標準搭載版(依存関係なし)
- **MySQL/MariaDB**: WordPress標準データベース

### 1.2 選択理由
- **PHP**: WordPressの標準言語、豊富なAPI
- **WordPress API**: セキュリティ・互換性の確保
- **jQuery**: 追加ライブラリ不要、軽量
- **MySQL**: 既存インフラの活用


## 2. プロダクト命名規則

### 2.1 正式名称
**WP Analytics Tag Check**

### 2.2 ファイル・コード命名規則
ディレクトリ名:    [プロダクト名] (ハイフン区切り)
メインファイル:    [プロダクト名].php
クラス名:         WP_Analytics_Tag_Check (アンダースコア、WordPress標準)
関数プレフィックス: wp_analytics_tag_check_ (アンダースコア区切り)
DBテーブル:       wp_analytics_tag_check_ (プレフィックス)
JavaScript:       wpAnalyticsTagCheck (キャメルケース)
CSS:              .[プロダクト名] (ハイフン区切り)

### 2.3 UI用語統一
日本語UI用語:
- タグ (アナリティクスタグ、トラッキングコード)
- 監視 (チェック、モニタリング)
- 通知 (アラート、お知らせ)
- 設定 (オプション)
- ログ (履歴、記録)
内部英語用語:
- tag (アナリティクスタグ)
- monitor/check (監視機能)
- notification (通知機能)
- settings (設定)
- logs (ログ)

✨ ワークフローの効果

  1. Claude Codeへの明確な指示: 曖昧さを排除した具体的な仕様
  2. 手戻りの大幅削減: 事前に決めた仕様に沿った一貫した開発
  3. 品質の保証: セキュリティ・パフォーマンス要件の事前定義
  4. 開発効率の向上: 迷いのない段階的な実装

事前準備に時間をかけることで、Claude Codeでの実装フェーズが劇的に効率化されます。設計書作成は面倒に感じるかもしれませんが、この投資が後の大幅な時間短縮につながります。

🚀 次のステップ

この準備編1で要件定義・設計管理の基盤を作ったら、次は準備編2でデバッグ環境の整備を行います。

Gemini CLI × Claude Code を併用して、効果的な設計書・CLAUDE.mdを作成する AIコーディングツールが急速に進化する中、多くの開発者が「Claude Code一強」と考えがちです。しかし、実はGemini CLIとClaude Codeを戦略的に併用することで、開発...  続きを読む Vibe Codingのワークフロー 準備編2.1 - 開発方針/テスト環境の整備 AIを活用したコーディングで最も重要なのは、AIが理解できる形で問題を記録し、解決パターンを蓄積することです。エラーが発生したとき「なぜ起きたか」「どう解決したか」が明確に記録されていれば、AIは過去の文脈を理解し、より的確な提案ができます。続いて、Vibe ...  続きを読む Vibe Codingのワークフロー 準備編2.2 - Vibe Logger を活用したAI駆動開発 Claude CodeやGitHub Copilotなどを活用したAI駆動開発において、最も深刻な問題は「エラーが発生しました」という曖昧なメッセージで開発が停滞することです。❌ 従来の問題点:- 非構造化ログでAIが問題を理解できない- 最終段階まで実行ファ...  続きを読む