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が問題を理解できない- 最終段階まで実行ファ...  続きを読む