AIシステム開発
約10分
更新

AI開発のSDD(仕様駆動開発)とLoop Engineering:仕様から検証までの進め方

執筆・編集Malake株式会社
まず押さえたいこと

SDD(Spec-Driven Development / 仕様駆動開発)は、仕様を実装前の説明資料ではなく、計画、タスク、コード、テストを導く基準として扱う開発方法です。Loop Engineeringは、その仕様で定めた目標に対してAIエージェントが実装、確認、修正を反復し、検証結果または停止条件に到達するまでの仕組みを設計する考え方です。

この記事の要点

SDDでは、何を満たせば完成とするかを先に決めます。Loop Engineeringでは、完成に近づけるための実装・確認・修正の繰り返しを、止める条件も含めて安全に回す方法を決めます。最初に目的、対象外、受け入れ条件、既存システムの制約、検証方法を記録します。AIには小さな変更単位で実装と検証を任せ、失敗した結果を次の修正に生かします。権限の変更、データの削除、本番への公開などは、人が承認する工程として残します。

この記事でわかること

  • AI開発で、コード生成の速さだけでは足りない理由
  • バイブコーディングとの違い
  • SDD(仕様駆動開発)とは何か
  • AIに渡す最小仕様:5つの項目
  • Loop Engineeringとは何か
  • SDDとLoop Engineeringの関係
  • AI開発を完了まで進める7段階
  • 人の承認を残す場所
  • 小さく始める導入方法

AI開発で、コード生成の速さだけでは足りない理由

AIコーディングは、画面の試作、定型的なAPI、テストのたたき台などを短時間で作れます。一方、コードが生成されたことと、利用者の要望を満たして安全に運用できることは別です。

指示が曖昧な場合、AIは不足した条件を推測して実装します。正常系は動いても、権限、例外処理、既存データとの互換性、監視、復旧手順が抜けることがあります。修正を重ねるほど、最初の目的と現在のコードが離れていく場合もあります。

生成の完了

コードや画面が作られ、代表的な操作が動く状態。

開発の完了

受け入れ条件を満たし、回帰テスト、セキュリティ、運用、公開判断まで確認された状態。

AI開発では、コードを書く作業よりも、何を正解とするかを決め、検証の結果を見て次の行動を決める作業の比重が高くなります。SDDとLoop Engineeringは、この二つの作業を記録に残しながら進めるための方法です。

バイブコーディングとの違い

バイブコーディング(vibe coding)は、詳細な仕様を決めずに自然言語の指示と生成結果の確認を繰り返し、雰囲気(vibe)で開発を進めるやり方を指す呼び方です。2025年に広まった言葉で、試作品や個人用のツールを短時間で形にする用途に向いています。

観点 バイブコーディング SDD+Loop Engineering
正解の定義 作りながら感覚で判断する 受け入れ条件として着手前に記録する
検証 目視・手動の動作確認が中心 テスト・静的解析など機械的な確認を反復へ組み込む
失敗したとき どの変更で壊れたか特定しにくい 変更単位が小さく、戻す範囲が明確
向く場面 試作、デモ、使い捨てのツール 業務システム、継続して運用するコード

両者は、対象の危険度に応じて使い分けます。壊れても困らない試作はバイブコーディングで速さを優先し、本番で運用するコードや他者のデータを扱う変更は、SDDとLoop Engineeringの手順で進めます。迷ったときは、そのコードが壊れたときに困る人がいるかどうかで判断します。

SDD(仕様駆動開発)とは何か

SDDはSpec-Driven DevelopmentまたはSpecification-Driven Developmentの略称で、日本語では仕様駆動開発と呼ばれます。

SDDでは、仕様を作って保管しておくだけにせず、実装の手がかりと、完成したかどうかを判定する基準として使い続けます。GitHub Spec Kitは、Spec → Plan → Tasks → Implement(仕様 → 計画 → タスク → 実装)という流れを示しています。仕様には製品の目的と利用者の振る舞いを書き、技術的な方式は計画へ、作業の単位はタスクへ分けます。

すべての開発で詳細な仕様書を作る必要はありません。小さな修正なら、数行の受け入れ条件で足りることもあります。変更の危険度と影響の範囲に合わせて、仕様をどこまで細かく書くかを選びます。

変更例 必要な仕様 主な確認
文言・小さな表示修正 変更箇所、期待表示、対象画面 ビルド、表示、回帰範囲
業務機能の追加 利用者、状態遷移、権限、例外 単体・結合・E2Eテスト
認証・決済・データ移行 非機能要件、監査、復旧、承認 専門レビュー、段階公開、ロールバック

AIに渡す最小仕様:5つの項目

AIエージェントへ実装を依頼する前に、少なくとも次の5つの項目をそろえます。文章の量よりも、完了したかどうかを判定できる具体さを優先します。

押さえておきたい点

仕様の各条件に、確認方法を対応させます。「読みやすい画面にする」では判定できません。「幅375pxで横スクロールがなく、主要ボタンが画面内に収まる」のように、観測できる条件へ置き換えます。

自社の状況を確認する

  • 目的:誰のどの問題を、どの状態まで改善するのか
  • 受け入れ条件:入力、操作、出力、例外をどの結果なら合格とするのか
  • 対象外:今回変更しない機能、将来対応へ残す事項
  • 既存の境界:API、データ、権限、画面、外部サービス、変更してはいけない箇所
  • 検証方法:実行するテスト、確認画面、性能値、レビュー担当

Loop Engineeringとは何か

Loop Engineeringは、目標、現在の状態、使える道具、検証、修正、停止を一つの繰り返しとして設計し、AIエージェントが確認と修正を重ねて目標に近づけるようにする考え方です。2026年の時点では、用語や範囲はまだ定まりきっていませんが、OpenAIはエージェント中心の開発について、意図を明確にし、テスト、検証、レビュー、フィードバック、復旧を開発環境へ組み込む方法を紹介しています。

目的 → 現状の確認 → 計画 → 実装 → 検証 → レビュー

合格なら完了または人の承認へ進み、不合格なら検証の結果を次の繰り返しに生かします。修正の回数、時間、費用、権限の上限に達した場合は止めて、人へ引き継ぎます。

繰り返しの回数を増やすことが目的ではありません。現在の状態を確かめ、次の変更を小さく選び、同じ条件で検証し直せるようにします。テストを削除する、判定の基準を緩める、対象外の箇所まで変更するといった近道は、あらかじめ禁止事項として決めておきます。

SDDとLoop Engineeringの関係

SDDとLoop Engineeringは、組み合わせて使います。SDDだけでは、仕様を作っても、検証の結果を受けて修正するたびに人の指示が必要になります。Loop Engineeringだけでは、繰り返しの判定基準があいまいになり、動いてはいても目的と違う状態へ進むおそれがあります。

設計対象 SDD Loop Engineering
中心となる問い 何を作り、何を満たせば完成か どう観測し、修正し、いつ止めるか
主な成果物 仕様、計画、タスク、受け入れ条件 状態、実行記録、検証結果、停止・引き継ぎ条件
人の役割 目的、制約、優先順位を決める 権限、予算、承認、例外を管理する

仕様が目標を示し、繰り返しが現在の状態との差を縮めます。どちらも、開発をどう進め、どこで止めるかを決めるための設計です。

AI開発を完了まで進める7段階

一つの機能を完成させる場合は、次の順序で進めます。日程よりも、各段階を終える条件で進み具合を管理します。

1. 目的と完了の条件を決める

利用者、解決する問題、受け入れ条件、対象外を記録します。
判断が必要な点を残したまま実装へ進めません。

2. 今の状態を確認する

関連コード、テスト、データ、画面、運用手順を確認します。
変更してよい範囲と、維持する振る舞いを明らかにします。

3. 小さな変更の単位に分ける

仕様を実装できる大きさのタスクに分け、タスクごとに検証の方法を決めます。
データ移行や公開など、元に戻しにくい操作を分離します。

4. 小さく実装する

AIエージェントが、既存の設計と決めた変更の範囲を守って実装します。
仕様に足りない点が見つかった場合は、推測で補わず、仕様に戻って決めます。

5. ツールで検証する

型、静的解析、単体・結合・E2Eテスト、ビルドなどを実行します。
失敗した内容を記録し、原因に合わせて次の修正に生かします。

6. 別の視点でレビューする

実装担当とは分けて、仕様との一致、回帰、セキュリティ、保守性を確認します。
テストを弱めて合格させていないか、差分が広がっていないかも確認します。

7. 公開・継続・停止を決める

検証の結果がそろったら、人の承認を経て公開します。
修正回数・予算・権限の上限に達した場合や、不明点が見つかった場合は停止し、結果と残課題を引き継ぎます。
← 横にスクロールできます →

人の承認を残す場所

繰り返しを自動化しても、すべての判断をAIに任せるわけではありません。影響の大きい操作は、実行の前に、人が対象、差分、復旧の方法を確認します。

実装やレビューが終わってから本番へ反映するまでの承認・権限・記録は、システム変更管理の進め方で整理しています。

押さえておきたい点

人の役割は、コードを一つずつ書くことから、目的、変更してよい範囲、判断の基準、例外を管理することへ移ります。AIからは、完了したという報告とあわせて、変更の差分と検証の結果を受け取り、人が確かめます。

自社の状況を確認する

  • 本番環境への公開とトラフィック切り替え
  • データ削除、移行、スキーマ変更
  • 認証、権限、秘密情報、外部公開範囲の変更
  • 決済、契約、法務、個人情報に関わる変更
  • テスト基準、監視条件、セキュリティ基準の緩和
  • 当初の対象範囲を超える追加実装

小さく始める導入方法

最初から複数のエージェントや完全な自動化を取り入れる必要はありません。今のチームの開発手順に、次の順で加えていきます。

Claude Codeなどの開発向けツールを初めて使う場合の起動と、編集の前に計画を確認するモードの選び方は、AIエージェントの始め方と活用例で扱っています。

手順1:受け入れ条件を残す

すべてのAI開発タスクに、目的、対象外、確認方法を記載します。
完了報告には、実行した検証と結果を添えます。

手順2:検証を繰り返しに組み込む

ビルド、テスト、静的解析をAIが実行できる状態にします。
失敗時はAIに結果を読ませ、修正させ、同じ検証を再実行させます。

手順3:レビューと公開を分ける

実装とレビューを別の担当または別のエージェントへ分けます。
本番公開は、検証結果を人が確認した後に実行します。

手順4:繰り返しの状態を記録する

通った検証、残っている課題、次の行動、止めた理由を、引き継げる形で残します。
繰り返し発生する作業から、段階的に自動化します。
← 横にスクロールできます →

よくある質問

Q. SDDはウォーターフォール開発と同じですか?

同じではありません。仕様を先に扱いますが、後から変更しない前提の大規模な文書を完成させてから実装する方法に限定されません。小さな仕様を実装・検証し、結果を受けて更新します。

Q. Loop EngineeringはAIに任せきる方法ですか?

いいえ、任せきりにはしません。AIが繰り返し進めてよい範囲と、人の承認が必要な操作を分けます。目標、権限、予算、停止条件を人が管理します。

Q. 1人の開発でも導入できますか?

はい、導入できます。受け入れ条件、検証コマンド、停止条件をタスクへ記載し、実装後に、実装とは別の指示でレビューを実行させるところから始められます。

Q. 既存システムでも利用できますか?

はい、利用できます。最初に既存のテスト、API、データ、権限、運用手順を確認し、維持する振る舞いを受け入れ条件へ含めます。新規開発よりも回帰確認を厚くします。

ITの判断と実行を、経営のすぐそばで支えます。

外部IT責任者として、優先順位の整理から実装・運用まで支援します。

外部IT責任者・IT顧問の支援内容を見る

この分野の全体像

生成AIを業務へ組み込む方法:対象業務の選定から運用まで

この分野の全体像と判断の順序をまとめた記事です。

全体像を読む

IT課題を、
優先順位から整理します。

Malakeは外部IT責任者として、現状の確認から実装・運用まで支援します。