Content last updated 2026-10-20

Spec-Driven Development (SDD)

Spec-Driven Development の設計ドキュメント。GitLab のワークアイテム上で意図を捉え、エージェントによる実行を推進するための構造化された計画レイヤー。
This page contains information related to upcoming products, features, and functionality. It is important to note that the information presented is for informational purposes only. Please do not rely on this information for purchasing or planning purposes. The development, release, and timing of any products, features, or functionality may be subject to change or delay and remain at the sole discretion of GitLab Inc.
StatusAuthorsCoachDRIsOwning StageCreated
ongoingfredericcaplettentepluhinafredericcaplette vanessaotto marcsaleikodevops plan2026-04-16

概要

Spec-Driven Development(SDD)は、意図を捉え、それに基づいてエージェントの作業を進めるためのものです。現在、作業の実行に必要な背景情報は、Issue、コメント、デザインファイル、コード、そして人々の頭の中に分散しています。構造化された入力なしにワークアイテムに取り組むエージェントは、なぜ、どのように、何を行うかという情報が不足しているため、一貫性のない結果を生み出します。

SDD は、人が主導する作業と自律的な作業を支援します。 私たちの取り組みは、Software Factory を支援すると同時に、より幅広い顧客ニーズに応えます。多くのお客様は、実行の過程で人が意思決定を導くなど、人による相当な関与を必要としています。Software Factory は自律性を重視しており、Workplan とそれを支える機能は、その方向性にも対応できます。

準備状況のレベルは、実行に向けた準備の程度を示します。将来的には、しきい値を設けて実行の可否を判断し、トークンコストの管理に役立てられる可能性があります。意思決定ログは、ワークアイテムから実行に至るまでの、人と AI の決定を記録するように設計されています。

この設計ドキュメント全体で、次の用語を使用します。

  • 仕様は、ワークアイテムの説明です。なぜ(動機)と何を(要件)を記載します。
  • Workplan は、ワークアイテム上の独立したアーティファクトです。どのように(実装のアプローチ)を記載し、Duo Developer などの下流のエージェントが使用します。

私たちは、この機能のすべての部分を、エージェントと人の両方が使えるように構築します。SDD は、エージェントによって加速される、ドキュメント中心の開発方法です。

製品の背景情報については、親エピック、SDD の Wiki(GitLab チームメンバーのみ)、Workplan のユーザードキュメントを参照してください。

用語

用語意味
仕様ワークアイテムの説明(なぜ、何を)。
Workplanどのように行うかを記載する計画のアーティファクトです。1 語で表記します。
Implementation ウィジェットワークアイテム上の親ウィジェットです。Workplan のステータス、準備状況のレベル、計画と実装のアクションを表示します。
AgentPlanWorkplan の旧コード名です。GraphQL の型、データベース、バックエンドのクラスに今も残っています。バックエンドの名称統一は Issue 630474で追跡しています。
準備状況ワークアイテムがエージェントによる実行に向けてどの程度準備できているかを示します。UI には、低、中、高の準備状況レベルを表示します。その基となる 0 〜 100 の準備状況スコアは、UI には表示しません。ユーザーインターフェースでは、以前は信頼度と呼んでいました。名称変更はマージリクエスト 259555で実装されています。

エンドツーエンドのフロー

flowchart LR
    subgraph intent["Intent"]
        Chat[Duo Chat] -->|creates| WI[Work item]
        Backlog[Existing work item] --> WI
    end

    subgraph planning["Refinement and planning"]
        Flow["Async workplan flow (workplan/v1)"]
        Questions[Clarifying questions in discussions]
        WP[Workplan]
        Score[Readiness]
        DL[Decision log]
    end

    subgraph implementation["Implementation"]
        DD["Duo Developer (developer/v1)"] -->|opens| MR[Merge request]
    end

    WI -->|user selects Plan| Flow
    Flow -->|pauses and asks| Questions
    Questions -->|user selects Continue with eligible replies| Flow
    Questions -.->|record and resolve decisions when available| DL
    Flow -->|writes| WP
    Flow -->|scores after writing the plan| Score
    WP -->|user selects Implement| DD
    MR -->|linked in Development section| WI
  1. ユーザーは Duo Chat で意図を示すことから始めるか、既存のワークアイテムを開きます。
  2. ユーザーがワークアイテムで Plan を選択します。これにより、ワークアイテムの AI 計画が有効になり、バックグラウンドで非同期 Workplan フローが始まります。フローの実行中、ユーザーはページを離れられます。
  3. フローは、ワークアイテムを詳細化し、プロジェクトを調査します。エージェントが判断すべきではない決定が必要な場合、フローはワークアイテムのディスカッションに明確化のための質問を投稿し、ユーザーに通知して一時停止します。説明が少なすぎて調査できない場合は、代わりにユーザーに説明の追加を求めます。
  4. ユーザーは質問に回答してそのスレッドを解決するか、背景情報のリクエストを受けて説明を更新した後、Continue を選択します。質問間の移動機能では、スレッドの解決状況を使って未解決の質問を追跡します。再開サービスには、プロジェクトで Guest より上のロールを持つユーザーの返信のみを含めます。再開にスレッドの解決は必要ありません。背景情報のリクエスト後に再開すると、元の目標で調査をやり直します。
  5. フローは Workplan を作成し、準備状況のスコアリングが利用可能な場合は、同じフロー内で準備状況を算出します。明確化のための質問は未解決の決定として記録され、意思決定ログが利用可能な場合、ワークアイテムの UI でそのスレッドを解決すると、それらの決定も解決されます。人の関与を参照してください。
  6. ユーザーは Workplan をレビューし、Implement を選択します。Duo Developer は Workplan を主要な仕様として使用し、マージリクエストを作成します。マージリクエストは、ワークアイテムの Development セクションにリンクされます。

ワークストリーム

作業は、親エピックの下でワークストリームに分かれています。時期と現在の状況については、そのエピックと各ワークストリームのエピックを参照してください。

ワークストリーム対象範囲設計
WS-2:仕様からコードまでのユーザージャーニーの構築エンドツーエンドのユーザーエクスペリエンス。開始点、オプトイン式の AI 計画、仕様と Workplan の分離、承認手順の削減、実行状況の可視化。Workplan
WS-3:Workplan の構築エージェントが駆動する非同期 Workplan 生成フロー。ライフサイクル、ツールの承認、単一フローの強制、同時実行、可観測性。非同期 Workplan フロー
WS-4:HITL と通知ワークアイテムのディスカッションでの明確化のための質問、その回答、通知、フローの再開。人の関与
WS-5:意思決定ログ人とエージェントのための、ワークアイテムに関する決定の記録。意思決定ログ
WS-6:ワークアイテムの準備状況スコアワークアイテムがエージェントによる実行に向けて準備できているかを示す準備状況のレベル。準備状況
WS-7:テストとフィードバックQA、バグのトリアージと報告、ドッグフーディング。テストとフィードバック

Duo Developer への引き渡しについては、下流の利用者で説明しています。

テストとフィードバック

WS-7は、フィードバック用の Issueを使い、ドッグフーディングでの発見を他のワークストリームの作業につなげます。現在のフォローアップには、実装の進捗の可視化、クローズされたワークアイテムでの動作、利用状況の指標が含まれます。

測定では、API を介した Workplan の読み取りと、保存済み Workplan の UI での表示を区別します。計画の保存は、バックエンドでの読み取りとして集計しなくなりました(マージリクエスト 257324)。また、保存済みの計画の表示は、別のイベントで追跡します(マージリクエスト 258352)。意思決定ログのパネル表示と決定の解決にも、専用のイベントがあります。意思決定ログを参照してください。

先送りされた設計

これらの設計は、現在のエピックには含まれません。背景情報として残しています。

設計状況
下流の利用者Duo Developer への引き渡しは対象範囲に含まれます。Duo Review による検証とマージチェックは先送りされています。
ワークアイテムとマージリクエストの関係先送りされています。

制約

  • リアルタイムの共同チャットはありません。ワークアイテムのコメントやスレッドを通じて非同期にコラボレーションします。
  • Workplan は Issue とタスクで利用できます。
  • 1 つのワークアイテムで同時に実行できる Workplan フローは 1 つだけです。
  • そもそも複雑度の低い Issue を見つけるために工数を見積もるバックログのリファインメントループは、対象範囲外です。

決定

日付決定決定者
2026-03-30短期間使用するアーティファクトは、ワークアイテム上の計画です(独立したものではなく、すべてのワークアイテムタイプをサポートします)。ワークショップ
2026-03-31出力は、ワークアイテムテンプレートを使った Markdown です。@fredericcaplette
2026-03-31現在のフェーズでは、承認ワークフローは対象範囲外です。@izzychu, @shekharpatnaik
2026-04-09ワークアイテム上の AI とのやり取りには、同期 Duo Chat を使用します。非同期 Workplan フローによって置き換えられました。@vanessaotto, @fredericcaplette
2026-04-09人が読みやすいように、YAML より Markdown を使用します。@fredericcaplette, @vanessaotto, @timzallmann
2026-08-25親ウィジェットの名称は Implementation です(Issue 612831)。@nickbrandt
2026-09-08一時停止中の Workplan フローは、明示的なアクションで再開します。スレッドが解決されたときに自動では再開しません(マージリクエスト 252945)。@stefanosxan
2026-09-09Implementation ウィジェットは、ユーザーがワークアイテムの AI 計画を有効にした後にのみ表示されます(Issue 605174)。WS-2
2026-09-09意思決定ログは、Workplan と AI 計画から独立しています(Issue 624791)。WS-5
2026-09-15意思決定ログは Free ティアで提供できますが、優先事項ではありません(Issue 628417)。@gweaver, @nickbrandt
2026-09-22計画の名称は Workplan で、1 語で表記します(Issue 612831)。@nickbrandt, @brendan777
2026-09-23Implement アクションは、Duo Chat を開く代わりに、Duo Developer を非同期に実行します(Issue 628801)。WS-7

Workplan
作業をどのように行うかを記載し、下流のエージェントが使用する、ワークアイテム上の Markdown アーティファクトである Workplan の設計。
ワークアイテムとマージリクエストの関係
SDD が必要とする、ワークアイテムとマージリクエスト間の双方向リンクの設計。
意思決定ログ
人とエージェントのための、ワークアイテムに関する決定を記録する意思決定ログの設計。
下流の利用者
Duo Developer と他のエージェントが、実行と検証のために Workplan をどのように使用するか。
準備状況
ワークアイテムがエージェントによる実行に向けて準備できているかを示す、準備状況の設計。
人の関与
非同期 Workplan フローがワークアイテムのディスカッションで明確化のための質問を行い、人が回答する方法の設計。
非同期 Workplan フロー
バックグラウンドでワークアイテムを詳細化して Workplan を生成する、Duo Agent Platform の非同期 Workplan フローの設計。
Agent プラン(MVC)
SDD フローの中核となる Markdown アーティファクトを格納する Agent プランワークアイテムウィジェットの設計。
Memory とコンテキスト注入
エージェントプラン生成のためのプロジェクトコンテキストと Memory のモデリング、保存、注入の設計。
Spec Driven テストシナリオ
Agent プランウィジェットを含む Spec-Driven Development 機能のテストシナリオと要件。
インタラクティブビルダー
LLM アウトプットを反復するための再利用可能な Duo Chat とライブプレビュー UI フレームワークであるインタラクティブビルダーの設計。
プラン準備スコアリング
Agent プランがエージェント実行に向けて準備できているかを示す準備スコアの設計。