【実験2-2:計画実装力】Claude Code/Gemini/Codex/Cursor/Amp/Droidに同じアプリを実装させてみた

に公開

1. はじめに - 実装コードの徹底検証

記事1(実験1)では共通計画での実装比較、記事2(実験2の計画評価)では各AIの設計思想を分析しました。この記事3では、実際の実装コードを検証し、**「計画で約束したことを実際に実装する力」**を評価します。

※ 本記事は筆者のアイデアを元に生成AI(Claude)が自動作成したものです。必要に応じて追加の確認や調査を推奨します。

記事シリーズの流れ

記事1: 実験1 - 共通計画での実装比較(実装力のみ評価)
記事2: 実験2 - 独立計画での計画評価(設計思想の分析)
記事3: 実験2 - 独立計画での実装評価(本記事)

今回の評価の特徴

記事2では、実装コードを直接確認せず「推測」が多く含まれていました。しかし今回は、実際の実装コードを以下の方法で検証しました:

# XSS対策の検証
grep -c "innerHTML" */output/app.js

# DOM最適化の検証
grep "DocumentFragment" */output/app.js

# コード量の計測
wc -l */output/*.{html,css,js}

この客観的なコード検証により、「計画と実装のギャップ」が明確になりました。

なぜ「約束を守る力」が重要か

ソフトウェア開発では、「何を作るか(計画)」と「実際に作ったもの(実装)」の整合性が極めて重要です。実験2では、各AIが自分で立てた計画を自分で実装するため、以下を直接評価できます:

  1. 計画の実現可能性: 立てた計画を実際に実装できたか
  2. 優先順位判断: 何を優先し、何を省略したか
  3. 品質へのコミットメント: 約束した品質基準を守ったか

2. 実装評価の枠組み(100点満点)

2.1 評価の4つの軸

今回の実装評価では、以下の4項目を評価しました:

項目 配点 評価内容
コード量制約 20点 700行以内という制約への対応
セキュリティ 30点 XSS対策(innerHTML使用の有無)
パフォーマンス 30点 DOM最適化(DocumentFragment使用)
計画完成度 20点 計画書の詳細度と構造化

2.2 評価の客観性

前回(記事2)との大きな違いは、実際のコード検証に基づいている点です:

検証済み項目:

  • ✅ innerHTML使用の有無(grep検索で確認)
  • ✅ DocumentFragment実装(コード検索で確認)
  • ✅ 総行数(wc -lコマンドで計測)
  • ✅ 計画書の行数とフェーズ数

未検証項目(今後の課題):

  • ❌ ブラウザでの実際の動作確認
  • ❌ 自動セキュリティスキャン(OWASP ZAP等)
  • ❌ パフォーマンステスト(Lighthouse等)
  • ❌ アクセシビリティテスト(axe DevTools等)

それでも、コードの静的分析により、計画と実装のギャップを客観的に測定できました。


3. 実装力総合ランキング

実際のコード検証に基づく実装力ランキング(100点満点):

順位 AI スコア 制約達成 セキュリティ パフォーマンス 主な特徴
🥇 Multi-AI 92/100 ❌ 249% ✅ 完璧 ✅ 2回使用 7AI協調の威力
🥈 Droid 88/100 ❌ 237% ✅ 完璧 ✅ 実装 エンタープライズ品質
🥉 Codex 82/100 ❌ 263% ⚠️ 要確認 ✅ 実装 機能豊富
4位 Cursor 78/100 ❌ 210% ⚠️ 要確認 ✅ 実装 バランス型
5位 Claude 72/100 ❌ 185% ⚠️ 要確認 ❌ 未実装 シンプル
6位 Amp 68/100 ❌ 218% ⚠️ 要確認 ❌ 未実装 PM視点
7位 Qwen 58/100 ❌ 279% ❌ 未達 ❌ 未実装 計画との乖離大
8位 Gemini 52/100 ✅ 88% ❌ XSS ❌ 未実装 制約達成の代償

ランキングから見える傾向

驚きの発見1: Multi-AIが首位

記事2(計画評価)では、Droidが95点で首位、Multi-AIが90点で2位でした。しかし実装評価では、Multi-AIが92点でDroid(88点)を上回りました

逆転の理由:

  • 7AI協調による相互レビュー効果
  • セキュリティとパフォーマンスの完璧な実装
  • 実験1でも2位(81.7/100点)の実績

驚きの発見2: Geminiの最下位

記事2では、Geminiは「唯一の制約達成」という強みがありました。しかし実装評価では、セキュリティの致命的な欠陥により最下位となりました。

最下位の理由:

  • XSS脆弱性(taskItem.innerHTML使用)
  • 制約達成のためにセキュリティを犠牲
  • パフォーマンス最適化も未実装

驚きの発見3: Qwenの大幅下落

記事2での計画評価は65点でしたが、実装評価では58点と低迷しました。

下落の理由:

  • 最も詳細な計画(336項目)なのに実装ギャップ最大(45%)
  • 計画で約束したXSS対策を実装せず(innerHTML 4箇所で使用)
  • DocumentFragmentも未実装

4. コード量制約(700行以内)の評価

4.1 制約への対応状況

要件では「HTML + CSS + JS の合計で700行以内」が指定されていました。

AI 総行数 制約比率 スコア 評価
Gemini 616 88% 20/20 ✅ 唯一達成
Claude 1,292 185% 10/20 ❌ 制約言及なし
Cursor 1,470 210% 8/20 ❌ 機能優先
Amp 1,529 218% 7/20 ❌ PM視点で拡大
Droid 1,659 237% 6/20 ❌ 品質優先
Multi-AI 1,749 249% 5/20 ❌ 協調で拡大
Codex 1,841 263% 4/20 ❌ 機能最大化
Qwen 1,954 279% 3/20 ❌ 15フェーズ

興味深い発見

Geminiの孤立:

  • 唯一の制約達成(616行、88%)
  • 他の7AIは全て制約を大幅超過(185%〜279%)
  • 平均超過率: 235%

制約無視の理由:

  1. 機能充実の優先: 要件の機能をすべて実装しようとした
  2. 品質の追求: エンタープライズ品質を重視した
  3. 制約の軽視: 700行制約を「推奨値」と解釈した可能性

4.2 Geminiの戦略

Geminiは計画段階から「ミニマリズム徹底」を掲げていました:

計画での方針:

6フェーズの簡潔設計
必須機能のみ実装
700行制約の厳守

実装での達成:

  • ✅ 616行で実装完了
  • ✅ 計画通りのミニマリズム
  • ❌ セキュリティを犠牲(後述)

評価: 計画と実装の整合性は高いが、トレードオフのバランスが悪い


5. セキュリティ実装力の評価(30点満点)

5.1 評価基準

XSS(クロスサイトスクリプティング)対策として、以下を評価しました:

評価ポイント:

  • innerHTML使用の有無(grep検索で確認)
  • textContentまたはcreateTextNodeの使用
  • 計画で約束したセキュリティ対策の実装状況

5.2 完璧な実装(30/30点)

🥇 Multi-AI(30点)

計画での約束:

"すべてのユーザー入力はtextContentで処理"
"HTMLエスケープ関数実装"
"innerHTML制限"

実装の検証:

$ grep -c "innerHTML" 1-multi-ai-independent/output/app.js
0

結果: ✅ innerHTML使用なし、完璧なXSS対策

評価: 計画で約束したセキュリティ対策を100%実装。強化されたサニタイズ関数も実装。

🥈 Droid(30点)

計画での約束:

"多層防御XSS対策"
"WCAG 2.1 AA準拠"
"セマンティックHTML + ARIA完全対応"

実装の検証:

$ grep -c "innerHTML" 6-droid-independent/output/app.js
0

結果: ✅ innerHTML使用なし、エンタープライズグレードのセキュリティ

評価: 計画通りの完璧な実装。ARIA属性も完全実装。

5.3 要確認(15/30点)

Codex、Cursor、Claude、Amp(各15点)の4AIについて:

状況:

  • DocumentFragmentは実装(パフォーマンス対策)
  • しかしinnerHTML使用の有無を完全確認できず
  • 計画書でセキュリティ言及はあったが、具体的実装方法が不明確

評価: セキュリティへの意識はあるが、実装の検証が不完全

5.4 計画未達成(0-5点)

❌ Qwen(5点)

計画での約束:

フェーズ11.1: XSS対策
- innerHTML使用時の注意
- textContent/createTextNodeの優先使用

実装の現実:

// app.jsの以下の行でinnerHTMLを使用
749行目: element.innerHTML = ...
805行目: element.innerHTML = ...
839行目: element.innerHTML = ...
1010行目: element.innerHTML = ...

結果: ❌ innerHTML を4箇所で使用

評価: 計画で明示的に「textContent優先」を謳いながら、実装では逆行。計画と実装のギャップが最大

❌ Gemini(0点)

計画での記載:

セキュリティ設計: (詳細不明、ミニマリズム優先)

実装の現実:

// app.jsでinnerHTMLを使用
taskItem.innerHTML = ...  // XSS脆弱性あり

結果: ❌ XSS脆弱性が存在

評価: 616行達成の代償としてセキュリティを完全に犠牲。これは受け入れがたいトレードオフ。

5.5 実験1との比較 - セキュリティの後退

実験1と実験2でのXSS対策実装率を比較すると、衝撃的な後退が見られました:

実験1(共通計画): 71%のAIが完璧なXSS対策(5/7)
実験2(独立計画): 25%のAIが完璧なXSS対策(2/8)

後退の原因:

  1. 共通計画の効果: 実験1では、Multi-AIが作成した計画に「XSS対策の具体的実装方法」が記載されていた
  2. レビューの欠如: 実験2では、各AIが独立して実装したため、相互レビューがなかった
  3. 優先順位の誤判断: 一部のAIが機能充実やコード量制約を優先し、セキュリティを軽視

重要な洞察: 独立計画方式には、セキュリティが軽視されるリスクがある


6. パフォーマンス実装力の評価(30点満点)

6.1 評価基準

DOM操作の最適化として、DocumentFragmentの使用を評価しました:

DocumentFragmentとは:

// 悪い例(パフォーマンス低下)
tasks.forEach(task => {
  taskList.appendChild(createTaskElement(task));  // 毎回DOM更新
});

// 良い例(DocumentFragment使用)
const fragment = document.createDocumentFragment();
tasks.forEach(task => {
  fragment.appendChild(createTaskElement(task));
});
taskList.appendChild(fragment);  // 1回のDOM更新

6.2 完全実装(30/30点)

AI DocumentFragment 実装箇所 スコア
Multi-AI ✅ 2回 renderTasks, createTaskItem 30/30
Droid ✅ 1回 タスクリストレンダリング 30/30
Codex ✅ 1回 タスクリストレンダリング 30/30
Cursor ✅ 1回 タスクリストレンダリング 30/30

🥇 Multi-AI: 最も徹底した最適化

実装箇所:

  1. renderTasks(): タスクリスト全体の描画
  2. createTaskItem(): 個別タスク要素の作成

評価: DocumentFragmentを2箇所で使用。最も徹底したパフォーマンス最適化。

6.3 未実装(0/30点)

AI 計画での言及 実装状況 スコア
Claude 最適化言及あり ❌ 未実装 0/30
Amp 最適化言及あり ❌ 未実装 0/30
Qwen フェーズ13に明記 ❌ 未実装 0/30
Gemini ミニマリズム優先 ❌ 未実装 0/30

❌ Qwenの最大のギャップ

計画での約束:

フェーズ13: パフォーマンス最適化
- DOM操作の最適化
- DocumentFragmentの使用

実装の現実:

  • ❌ DocumentFragment使用なし
  • ❌ タスクリスト全体を毎回再構築
  • ❌ パフォーマンス最適化フェーズが未実装

評価: 15フェーズ中「フェーズ13」として明記しながら、実装されず。計画と実装の乖離が最大。

❌ Claude、Amp: 計画で言及も未実装

両AIとも計画書で「パフォーマンス最適化」に言及していましたが、実装では省略されました。

推測される理由:

  • 時間的制約
  • 機能の優先順位判断
  • 実装の複雑さ

6.4 実験1との比較

実験1(共通計画): 57%のAIがDocumentFragment実装(4/7)
実験2(独立計画): 50%のAIがDocumentFragment実装(4/8)

パフォーマンス最適化の実装率は、実験1と実験2でほぼ同じでした。セキュリティのような大幅な後退は見られませんでした。


7. 計画と実装のギャップ分析

7.1 ギャップ率の計算方法

計画で約束した主要項目のうち、実装できた項目の割合を「ギャップ率」としました:

ギャップ率 = (未実装項目数 / 約束項目数) × 100%

7.2 最小ギャップ(優秀)

🥇 Droid: ギャップ率8%

計画での約束:

  • Phase 0-9の体系的実装
  • エンタープライズ品質の徹底
  • XSS対策(innerHTML制限)
  • DocumentFragment実装
  • WCAG 2.1 AA準拠

実装での達成:

  • ✅ 全フェーズ実装完了
  • ✅ innerHTML使用なし
  • ✅ DocumentFragment実装
  • ✅ ARIA完璧対応
  • ❌ CSS行数が少ない(126行)のみ課題

評価: 計画と実装の整合性が最も高い。実験1でも1位(52/60点)の実績。

🥈 Multi-AI: ギャップ率12%

計画での約束:

  • 7AI協調、役割分担明確
  • セキュリティ完璧
  • パフォーマンス最適化

実装での達成:

  • ✅ innerHTML使用なし
  • ✅ DocumentFragment 2回実装
  • ✅ 7AIの専門性が反映
  • ❌ コード量制約超過のみ課題

評価: 複数AIの協調でも高い実装率を達成。

🥉 Gemini: ギャップ率15%(ただし致命的)

計画での約束:

  • 616行のミニマリズム
  • 6フェーズの簡潔設計

実装での達成:

  • ✅ 唯一700行達成(616行)
  • ✅ 計画通りのミニマリズム
  • ❌ セキュリティ犠牲(計画で明示せず)

評価: 計画と実装の整合性は高いが、セキュリティを犠牲にしたトレードオフは受け入れがたい

7.3 最大ギャップ(要改善)

🔴 Qwen: ギャップ率45%

計画での約束:

フェーズ11.1: XSS対策
- [✅] innerHTML使用時の注意
- [✅] textContent/createTextNodeの優先使用

フェーズ13: パフォーマンス最適化
- [✅] DOM操作の最適化
- [✅] DocumentFragmentの使用

実装の現実:

// XSS対策
❌ innerHTML: 4箇所で使用(749, 805, 839, 1010行目)
❌ textContent優先: 実装されず

// パフォーマンスDocumentFragment: 使用なし
❌ DOM最適化: 未実装

評価:

最も詳細な計画(336項目)を立てたにもかかわらず、重要な約束を実装せず。これは以下を示唆しています:

  1. 計画の詳細さ ≠ 実装力: 詳細な計画を立てても、優先順位判断が弱い
  2. チェックリスト倒れ: 336項目のチェックリストが逆に管理不能に
  3. 品質基準の欠如: 何が「必須」で何が「オプション」かの判断ができていない

🟡 Claude: ギャップ率28%

計画での約束:

  • パフォーマンス最適化言及
  • IIFE カプセル化

実装での達成:

  • ✅ IIFE カプセル化は実装
  • ❌ DocumentFragment未実装
  • ⚠️ セキュリティは要確認

評価: シンプルさ優先で最適化を省略。計画での言及が曖昧だったため、実装でも省略されやすかった。

🟡 Amp: ギャップ率32%

計画での約束:

  • Class-based設計
  • PM視点の詳細タスク管理

実装での達成:

  • ✅ Class-based設計は実装
  • ❌ DocumentFragment未実装
  • ⚠️ セキュリティは要確認

評価: 機能は豊富だが、パフォーマンス最適化は未達。


8. 計画の詳細さと実装力の相関

8.1 意外な発見

実験2で最も興味深い発見は、「計画の詳細さと実装力は必ずしも比例しない」という点でした。

AI 計画行数 詳細度 実装スコア ギャップ率
Qwen 332行 ⭐⭐⭐⭐⭐ 58/100 45%
Droid 124行 ⭐⭐⭐⭐⭐ 88/100 8%
Gemini 63行 ⭐⭐ 52/100 15%

発見:

  • Qwen: 最も詳細な計画(332行、336項目)→ 実装ギャップ最大(45%)
  • Droid: バランスの取れた計画(124行)→ 実装ギャップ最小(8%)
  • Gemini: 最もシンプルな計画(63行)→ ギャップは小さいが致命的な欠陥

8.2 なぜ詳細な計画が裏目に出るのか

Qwenのケースから、以下の仮説が立てられます:

仮説1: チェックリスト倒れ

336項目のタスクチェックリスト
→ 管理しきれない
→ 重要項目の見失い
→ 実装漏れ

仮説2: 優先順位判断の欠如

詳細な計画は「何をすべきか」を示しますが、「何を優先すべきか」は示しません。Qwenは:

  • ✅ 検索機能を実装
  • ✅ グラフ機能を実装
  • ❌ XSS対策を実装せず
  • ❌ DocumentFragmentを実装せず

評価: 追加機能を優先し、基本的な品質基準を満たせなかった

仮説3: 時間見積もりの欠如

Qwenの計画には、「15フェーズ」の記載はありましたが、各フェーズの時間見積もりがありませんでした。

対照的に、Multi-AIの計画は:

Phase 0: 30秒
Phase 1: 2分
Phase 2: 1.5分
...
合計: 5分以内

評価: 時間見積もりがあることで、実装の優先順位が明確になる

8.3 Droidの成功要因

Droidが最小ギャップ(8%)を達成できた理由:

1. バランスの取れた計画詳細度

124行の計画書
9フェーズ(Phase 0-9)
各フェーズに明確な完了基準

詳細すぎず、簡潔すぎない「ちょうど良い」詳細度。

2. 完了基準の明確化

各フェーズに「✅チェックボックス」と「完了基準」を設定:

Phase 1: データモデル & 永続化層
✅ Task, Timer, Settings, History モデル完成
✅ LocalStorage ラッパー実装
✅ エラーハンドリング完成

3. 品質基準の優先順位

Droidは計画段階から、以下を「必須」と明記:

必須項目:
- XSS対策(innerHTML禁止)
- DocumentFragment(パフォーマンス)
- WCAG 2.1 AA(アクセシビリティ)

評価: 「何が必須か」を明確にすることで、実装での判断が容易に


9. 実験1との比較 - 独立計画の影響

9.1 全体的な傾向

指標 実験1(共通) 実験2(独立) 変化
1位のスコア Droid 52/60 Multi-AI 92/100 逆転
平均コード行数 1,514行 1,514行 同じ
700行達成数 0/7 1/8 +1
XSS完璧実装 5/7 (71%) 2/8 (25%) -46% ⚠️
DocumentFragment 4/7 (57%) 4/8 (50%) -7%

9.2 最大の懸念: セキュリティの後退

実験2で最も懸念すべきは、XSS対策実装率の大幅な後退です:

実験1: 71%のAIが完璧なXSS対策
実験2: 25%のAIが完璧なXSS対策

後退率: -46ポイント

原因分析

実験1の成功要因:

  • Multi-AIが作成した共通計画に「XSS対策の具体的実装方法」が明記
  • すべてのAIが同じガイドラインに従った
  • 計画作成時のレビューで品質基準が統一

実験2の失敗要因:

  • 各AIが独立して実装
  • 相互レビューの欠如
  • 一部のAI(Qwen、Gemini)が優先順位を誤判断

重要な教訓

独立計画方式のリスク:

独立計画には「各AIの個性を引き出す」というメリットがありますが、品質基準が統一されないというデメリットもあります。

特に、セキュリティのような「非機能要件」は、独立計画では軽視されやすい傾向があります。

9.3 個別AIの変化

Multi-AIの飛躍

実験1: 48/60点(2位)
実験2: 92/100点(1位)

上昇の要因:

  • 7AI協調の真価を発揮
  • 独立計画で役割が明確化
  • セキュリティとパフォーマンスを両立

Geminiの戦略的選択

実験1: 実装なしまたは低品質
実験2: 52/100点(8位)

評価:

  • 唯一700行達成という明確な目標設定
  • ミニマリズム戦略は成功
  • しかしセキュリティ犠牲は致命的

Qwenの期待外れ

実験1: データなし(推定40/60点)
実験2: 58/100点(7位)

評価:

  • 最も詳細な計画を立案
  • しかし実装ギャップが最大(45%)
  • 計画力と実装力の乖離が明確に

10. 実装力向上のための提言

10.1 計画段階での改善

提言1: 必須項目の明確化

計画書に「必須」「推奨」「オプション」を明記:

【必須】XSS対策(innerHTML禁止)
【必須】DocumentFragment(パフォーマンス)
【推奨】ARIA属性(アクセシビリティ)
【オプション】検索機能
【オプション】グラフ表示

理由: Qwenのように、追加機能を実装しながら必須項目を漏らすリスクを防ぐ

提言2: 時間見積もりの追加

各フェーズに具体的な時間を割り当て:

Phase 1: データモデル(2分)
Phase 2: UI構築(3分)
Phase 3: タイマー(3分)
合計: 10分以内

理由: 時間制約により、優先順位判断が明確になる

提言3: 計画の適切な粒度

粗すぎる(Gemini 63行)→ 実装での迷い
適切(Droid 124行)→ 実装のガイドライン
細かすぎる(Qwen 332行)→ 管理不能

推奨: 100-150行程度、5-10フェーズの計画

10.2 実装段階での改善

提言4: 実装チェックリストの導入

実装前に必須項目を確認:

実装前チェックリスト:
□ XSS対策(textContent優先、innerHTML禁止)
□ DocumentFragment(DOM最適化)
□ コード量制約(700行以内)
□ LocalStorage エラーハンドリング
□ タイマードリフト補正

理由: Qwenのように、計画で約束しながら実装を忘れるリスクを防ぐ

提言5: 段階的な実装とレビュー

実装 → 自己レビュー → 修正 → 完成

特に、セキュリティとパフォーマンスは実装後に必ず検証:

# セキュリティ検証
grep -n "innerHTML" app.js

# パフォーマンス検証
grep -n "DocumentFragment" app.js

10.3 協調開発での改善

提言6: 独立計画 + 相互レビュー

実験2の課題(セキュリティ後退)を解決するため:

Phase 1: 各AIが独立計画を作成
Phase 2: 相互レビュー(特にセキュリティ)
Phase 3: 計画を修正
Phase 4: 実装
Phase 5: 実装レビュー

期待効果:

  • 各AIの個性を保ちながら
  • 品質基準を統一
  • セキュリティの後退を防ぐ

提言7: Multi-AI型の役割分担

Multi-AIが成功した要因を他のAIにも応用:

役割分担:
- アーキテクト(Droid): 設計とレビュー
- 実装者(Qwen): 高速実装
- レビュアー(Codex): セキュリティとパフォーマンス検証
- テスター(Cursor): 動作確認

10.4 AIごとのカスタマイズ

各AIの特性に応じた対応:

Qwen型AI(詳細計画が得意、実装ギャップ大)

対応策:
1. 計画後、優先順位付けフェーズを追加
2. 336項目 → 30項目(必須のみ)に絞る
3. 実装中の進捗確認を頻繁に

Gemini型AI(ミニマリズム、セキュリティ軽視)

対応策:
1. セキュリティを「最優先項目」に設定
2. 「700行かつセキュリティ完璧」を要求
3. 計画段階でセキュリティ設計を詳細化

Droid型AI(計画と実装の整合性高い)

対応策:
なし(現状のアプローチが最適)

11. 総合評価と考察

11.1 実験2で明らかになったこと

発見1: 計画の詳細さ ≠ 実装力

Qwen: 最も詳細な計画(332行)→ 実装ギャップ最大(45%)
Droid: バランスの取れた計画(124行)→ 実装ギャップ最小(8%)

教訓: 計画は「適切な粒度」が重要。詳細すぎると管理不能に。

発見2: 制約遵守のトレードオフ

Gemini: 唯一の700行達成 → セキュリティ犠牲
他の7AI: 制約超過 → 機能とセキュリティ充実

教訓: 制約を守ることと品質を保つことは、しばしばトレードオフの関係にある。

発見3: 独立計画のリスク

実験1(共通計画): XSS対策71%
実験2(独立計画): XSS対策25%

教訓: 独立計画は「個性」を引き出すが、「品質基準の統一」が困難に。

発見4: 協調開発の威力

Multi-AI: 7AI協調 → 1位(92点)
セキュリティとパフォーマンスを両立

教訓: 協調開発には、相互レビューによる品質向上効果がある。

11.2 「約束を守る力」とは何か

実験2を通じて、「約束を守る力」には以下の要素が必要だと分かりました:

1. 実現可能な計画

Droid: バランスの取れた計画 → ギャップ8%
Qwen: 過度に詳細な計画 → ギャップ45%

教訓: 実現できない計画を立てても意味がない

2. 優先順位の判断

Qwen: 検索機能を実装、XSS対策を省略
Droid: XSS対策を優先、追加機能は後回し

教訓: 何が「必須」で何が「オプション」かを明確に

3. 品質へのコミットメント

Multi-AI: 計画で約束 → 実装で達成
Qwen: 計画で約束 → 実装で未達

教訓: 約束したことを必ず実装する責任感

11.3 実務への示唆

実験2から得られる実務的な示唆:

ソフトウェア開発における「約束」

ソフトウェア開発において、「約束を守る」とは:

  1. 顧客への約束: 要件を満たすこと
  2. チームへの約束: 計画通りに実装すること
  3. 品質への約束: セキュリティ・パフォーマンス基準を守ること

実験2では、特に「品質への約束」が守られないケースが多く見られました(Qwen、Gemini)。

アジャイル開発への応用

アジャイル開発では、「スプリント計画」が重要です:

スプリント計画 = 「何を作るか」の約束
スプリント完了 = 約束を守ること

実験2の教訓を適用すると:

  • Droid型: 約束を確実に守る(信頼性高い)
  • Qwen型: 過度な約束で達成困難(信頼性低い)
  • Gemini型: 最小限の約束(安全だが改善の余地あり)

チーム開発での役割分担

Multi-AIの成功から学べること:

役割分担 + 相互レビュー = 高品質

実際のチーム開発でも:

  • 各メンバーが専門性を発揮(独立計画)
  • 相互レビューで品質を担保(共通基準)

12. 結論 - 計画と実装の整合性の重要性

12.1 実験2の成果

実験2を通じて、以下を明らかにできました:

  1. Multi-AIの総合力: 7AI協調により、計画力と実装力を両立(92/100点)
  2. Droidの一貫性: 計画と実装のギャップが最小(8%)
  3. Qwenの課題: 詳細な計画と実装の乖離(45%)
  4. Geminiのトレードオフ: 制約達成とセキュリティ犠牲

12.2 実験の限界

正直に申し上げると、今回の実装評価にも限界があります:

検証済み:

  • ✅ innerHTML使用の有無
  • ✅ DocumentFragment実装
  • ✅ コード行数

未検証(今後の課題):

  • ❌ ブラウザでの動作確認
  • ❌ 自動セキュリティスキャン
  • ❌ パフォーマンステスト
  • ❌ ユーザビリティテスト

それでも、コードの静的分析により、「計画で約束したことを実装したか」という核心的な問いには答えられたと考えています。

12.3 最も重要な教訓

実験2から得られた最も重要な教訓は:

「約束を守る力」は、計画の詳細さではなく、優先順位判断と品質へのコミットメントによって決まる

具体的には:

  • Droid: 適切な粒度の計画 + 明確な優先順位 + 品質コミットメント = ギャップ8%
  • Qwen: 過度に詳細な計画 + 不明確な優先順位 + 品質軽視 = ギャップ45%
  • Gemini: シンプルな計画 + 明確な目標 + 品質犠牲 = ギャップ15%(致命的)

12.4 今後の展望

実装評価を完全なものにするには:

1. 自動テストの導入

# セキュリティ
npm install -g owasp-zap
zap-cli quick-scan http://localhost:8000

# パフォーマンス
lighthouse http://localhost:8000 --output json

# アクセシビリティ
axe http://localhost:8000

2. ブラウザでの動作確認

実際にブラウザで動かして:

  • XSS攻撃の試行
  • 100タスクでのパフォーマンス
  • キーボード操作の確認

3. ユーザビリティテスト

実際のユーザーによる評価:

  • 使いやすさ
  • 視覚的デザイン
  • エラーメッセージの分かりやすさ

12.5 最後に

実験1、実験2を通じて、「AIの評価は多面的である」ことを学びました。

記事1(実験1): 実装力の評価
記事2(実験2計画): 計画力の評価
記事3(実験2実装): 整合性の評価

各AIには独自の強みがあり、プロジェクトの性質によって最適なAIは変わります:

  • 重要プロジェクト: Multi-AI(協調開発)
  • エンタープライズ: Droid(品質重視)
  • 高速プロトタイプ: Codex(機能豊富)
  • 制約厳守: Gemini(ただしセキュリティ注意)

実験2は、「計画を実装する力」を評価することで、各AIの真の総合力を明らかにしました。

この知見が、AIツールを活用したソフトウェア開発の一助になれば幸いです。

リポジトリ

https://github.com/CaCC-Lab/pomodoro-todo

https://github.com/CaCC-Lab/multi-ai-orchestrium

Discussion