本文へ移動
株式会社織翔
← コラム一覧に戻る
AI活用7分で読める

AI実装はなぜ過剰になる?Codex Skill「yagni-review」で必要十分に戻す方法

AIへ実装を任せたときに、将来拡張や一般的なベストプラクティスまで盛り込まれて過剰実装になる理由と、Codex Skill「yagni-review」で現在必要な範囲へ戻す方法を解説します。

#Codex#Skill#YAGNI#AIコーディング#設計レビュー

執筆・監修:

過剰になった実装計画を4つに分類する

AIへ依頼した機能は動くものの、将来向けの設定や共通基盤まで増えてしまうことがあります。yagni-reviewは、現在の目的に照らして各要素を「維持・簡素化・削除・確認」に分類し、必要な最小構成を提案するCodex Skillです。

「高品質に」とだけ依頼し、利用者・規模・対象外を伝えないと、AIが一般的な拡張性や可用性まで計画へ加えることがあります。それぞれに理由が付いていても、現在の成功条件が必要としているかを照合します。

この記事では、5人で使う社内PoCの計画を例に、何を残し、何を減らすかを紹介します。目的・要件そのものから範囲を見直す考え方は、minimalistとconformistも参照してください。

yagni-reviewとは

yagni-reviewは、レビュー対象を「現在の目的を達成する最小のスコープと複雑性」へ近づけるためのSkillです。

対象は次の成果物です。

  • PRDや要求仕様
  • 設計書
  • Implementation Brief(実装指示書)
  • 実装計画
  • ソースコード

レビュー結果は推奨事項として返します。明示的に依頼されない限り、対象ファイルの編集、要件変更、簡略化の実装は行いません。レビューと変更を分離することで、必要性の判断を確認してから実装へ進められます。

Skill本体はGitHub上のSKILL.mdで確認できます。

現在の目的をレビューの基準にする

過剰実装かどうかは、構成要素だけを見ても決められません。たとえば、キューは常に不要でも、常に必要でもありません。現在の処理量、応答時間、失敗時の要件によって判断が変わります。

yagni-reviewは、レビューの前に次の基準を確認します。

  1. 現在の目的
  2. 観測できる成功条件
  3. 利用者または利用するシステム
  4. 現在想定する規模
  5. 対象とする期間
  6. 法令、契約、セキュリティ、互換性などの拘束条件

基準には、ユーザーが提示した事実または確認できた事実だけを使います。リスクを推測できることと、そのリスクへ対応する仕組みを今すぐ追加してよいことは別です。

KeepSimplifyRemoveVerifyの違い

yagni-reviewは、対象の各要素を4つのいずれかに分類します。

表は横にスクロールできます

判定使う条件レビュー後の扱い
Keep削除すると、現在の成果、利用者、拘束条件、必要な安全性や正しさが損なわれる必要性の根拠とともに維持する
Simplify成果は必要だが、より小さな仕組みで満たせる現在の成果を保つ最小の方法へ置き換える
Remove仮想的な将来、未使用の汎用性、根拠のない規模、好み、重複だけに対応している現在の対象から外す
Verify現在の義務は確認できているが、安全に判断するための具体的な事実が不足している判断を変え得る事実だけを確認する

Verifyは、判断を避けるための弱いKeepではありません。「将来必要になるかもしれませんか」のような仮想的な質問を増やすためにも使いません。

たとえば、契約上ログ保存が必要だと確認できているものの、保存期間が資料から分からない場合はVerifyです。ログ保存の義務自体が確認できず、単に将来監査があるかもしれないだけなら、その可能性を新たな要件にはしません。

5人の社内PoCをレビューする例

次の条件で、申請・承認機能を作るとします。

  • 利用者は1組織の5人
  • 3か月のPoC
  • 成功条件は、申請者が申請し、承認者が承認できること
  • 承認依頼はメールで通知する
  • 申請には個人情報が含まれる
  • 契約上、監査記録の保存が必要だが、保存期間は資料にない

AIが作った計画に、汎用Plugin SDK、マルチテナント対応、20種類の通知アダプター、Redisキャッシュ、アクセス制御、設定可能な監査ログ保存期間が含まれていたとします。

yagni-reviewでは、たとえば次のように整理します。

表は横にスクロールできます

計画の要素判定理由と最小構成
汎用Plugin SDKRemove現在の利用者も受け入れ条件もPlugin追加を求めていない
マルチテナント対応Remove対象は1組織であり、別組織の利用予定は現在の範囲にない
20種類の通知アダプターSimplify通知は必要だが、現在必要なメール通知だけで成功条件を満たせる
RedisキャッシュRemove5人規模で応答時間の問題を示す計測結果も要件もない
アクセス制御Keep申請に個人情報が含まれ、申請者と承認者の操作を分ける必要がある
監査記録の保存期間Verify保存義務は確認済みだが、契約上必要な期間が分からない

最小版は、申請と承認、メール通知、必要なアクセス制御、契約に基づく監査記録です。Plugin基盤や複数組織対応を「あとで使えるように」残しません。監査記録は削除せず、確認が必要な保存期間だけを切り分けます。

YAGNIは安全性を削る考え方ではない

行数が少なければ、常に単純になるわけではありません。認証、権限確認、入力検証、エラー処理、データ整合性の保護を削ると、コードは短くなっても、利用者と運用者が負うリスクは増えます。

yagni-reviewが重視するKISSは、コードの短さではなく、システム全体の複雑性を小さくすることです。

次のような要素は、現在の挙動と根拠を確認せずに削除しません。

  • 個人情報や機密情報を守るアクセス制御
  • データ破損を防ぐ整合性チェック
  • 対応対象としている入力に必要な検証
  • 外部サービスとの境界で必要な失敗処理
  • 契約や法令で求められる監査記録

一方、運用上起こり得ない条件へのガードや、対応対象外の入力に対する複雑な復旧処理は、現在の事実を確認できれば削減候補になります。

インストール方法

yagni-reviewは、株式会社織翔が公開するCodex Plugin Marketplaceからインストールできます。

最初にMarketplaceを追加します。

codex plugin marketplace add orito-inc/codex-plugins

次にyagni-review Pluginを追加します。

codex plugin add yagni-review@orito

インストール後は、新しいCodexセッションを開始してください。

OpenAIの公式ドキュメントでは、SkillはSKILL.mdを中心に構成し、Pluginへskills/を同梱できます。構成の詳細はBuild skillsPackage your pluginで確認できます。

2026年9月3日時点で確認したローカルのCodex CLI 0.152.1では、codex plugin marketplace addcodex plugin addを利用できます。コマンドやPlugin仕様は更新される可能性があるため、導入時には利用中のcodex plugin --helpと公式ドキュメントも確認してください。

この公開は、GitHubでホストするOrito Codex Plugins Marketplaceへの掲載です。OpenAI公式のUniversal Plugins Directoryへの申請・掲載とは別です。

実際の使い方

レビュー対象と、現在の目的が分かる情報を渡して明示的に呼び出します。

$yagni-review を使って、この実装計画を現在の目的に必要な最小構成へ見直してください。

現在の目的:
- 既存の受注一覧から、表示中の条件でCSVを出力できるようにする

利用者:
- 社内の管理者3人

対象外:
- 定期出力
- メール送信
- 複数形式への対応

yagni-reviewは自動呼び出しを無効にしています。通常のコードレビューへ暗黙に介入させず、スコープを見直したいときに$yagni-reviewで明示的に開始します。

出力では、削減による影響と必要性の根拠を確認します。現在の義務は分かっていても、保存期間などの判断に必要な事実が不足していれば、確認事項として残します。レビュー対象に不要な要素がなければ、無理に削減しません。

要件を変更する場合は、影響を確認して合意した範囲だけを反映します。確定した内容を別の担当者へ渡す方法は、implementation-briefの紹介を参照してください。