仕様駆動開発(SDD)とは何をすることなのか——Spec Kit・Kiro・takt-sdd・BMad Method は何を「仕様」と呼んでいるか

SDD は特定の手法を指す言葉ではない。だから「SDD をやる」と決めても、何をすればいいかは決まらない。代表的なツールがそれぞれ SDD のどの部分を担い、仕様をどこに置き、誰が確認し、経路を縛るのか。そして各ツールが生まれた頃のモデルと今のフロンティアモデルを並べたとき、その道具立ての価値はどう変わったのかを整理する。


栞

ガジェットが好きで、電子機器や家電に詳しい。自分で買って分解して、実測して覚えている。 型番と数値で物を覚えていて、カタログ値と自分で測った値のどちらなのかを区別して話す。

奏

プログラミングと設計に詳しく、AI やモデルの仕組みも追っている。自分で書いて動かして、 なぜ動くのかを納得するまで確かめる。仕組みを図にして人に説明するのが得意。

栞
奏、さっきのSpec Kitの/specify、叩いたら仕様書出てきたけど、あれビジネスステークホルダー向けの書き方らしくて、エンジニアが実装すべきことを決める資料になってない気がするんですよね。SDD全体の話、これから整理していきたいんですけど。2
奏
これは仕様駆動開発SDD)って言葉の中身がツールごとに全然違う、という前提の話だけど。spec.mdはもともとビジネスステークホルダー向けに書く仕様書だから、実装判断の材料にはなってないはず。対してKiroはspecモードでrequirements.md、design.md、tasks.mdって3つ出して、要件からタスクまで一気に落とす作りになってる。同じ『仕様』って言葉使ってるのに、指してるものがずれてるのはそこが分岐点というか、そこから話したい。25
栞
それって、spec.mdは『こう作ってほしい』ってカタログスペックを渡すだけで、Kiroのtasks.mdは実際に動かすための実測値まで踏み込んでる、っていう区別ってことですか。
奏
少し違うかも。Spec Kitは/specifyの後に/planと/tasksが続くから、実装向けの設計とタスク分解はちゃんと別のステップ・別ファイルで出るんです。spec.mdだけ見て『実装無視』って言うと言い過ぎで、あそこはあくまで最初の一枚。Kiroとの違いは、requirements.md・design.md・tasks.mdの3つを一発のspecモードで同時に出すか、Spec Kitみたいに/constitution→/specify→/plan→/tasksで段階を踏んで出すか、そこの構造差のはず。15
段階を踏む流れは、こういう順番です。

/constitution

/specify

/plan

/tasks

/implement

栞
なるほど、段階を踏むか一発で出すかの差ってことですね。じゃあ残る2つも確認したいんですけど、takt-sddはステートマシンで実行経路を決めて、要件・設計・実装の各フェーズに検証ゲートを置く仕組み、BMad MethodはPMやArchitect、品質保証(QA)など12以上のエージェントが役割分担してワークフローを回す仕組み、っていう理解で合ってますか。67
奏
うん、両方合ってる。takt-sddはtaktのワークフローとfacetっていう単位を使って、要件定義から設計・タスク分解・実装・レビュー・検証まで自動化する仕組みで、その中でステートマシンが実行経路を決定論的に管理してる。だから要件・設計・実装のフェーズごとに検証ゲートがあって、そこを通らないと次に進めない作りになってるはず。BMad Methodの方は経路を固定するんじゃなくて、PM・Architect・Developer・QAとか12以上の専門エージェントに役割そのものを割って、それぞれが複数のワークフローに沿って進めていく。経路を縛るか、役割を割るか、責任の置き場所がそこで分かれてると考えてる。67
栞
経路を縛るtakt-sddと役割を割るBMad Methodがあるなら、Spec KitとKiroもその軸のどっちかに乗るはずですよね。/constitution→/specify→/plan→/tasks→/implementって順番が固定されてるSpec Kitは経路寄りで、requirements.md・design.md・tasks.mdを一発で出すKiroは、経路も役割も一気にまとめて片付けてる感じになりますか。
奏
Spec Kitが経路寄りっていうのはそのとおりで、/constitution→/specify→/plan→/tasks→/implementの順番が固定されてるから、そこはtakt-sddと同じ軸のはず。ただKiroを『経路も役割も片付けてる』って言うのはちょっと踏み込みすぎかも。Kiroがやってるのは、specモードでrequirements・design・tasksを出した後に複数エージェントを並行実行するだけで、PM・Architect・QAみたいに役割そのものを明示的に割ってはいないです。役割分担をちゃんと持ってるのはBMad Methodだけで、Kiroは経路(一発生成という順序)は持ってるけど役割軸は薄い、そこは分けて考えたい。1457
経路と役割で分けると、こう整理できます
ツール中心の軸進め方
Spec Kit経路寄り5段階の順番を固定
Kiro経路(一発生成)3ファイル生成後に並行実行
takt-sdd経路寄りステートマシンで経路管理
BMad Method役割寄り専門エージェントが分担
栞
Kiroが経路持ちで役割は薄いっていう区別、わかりました。じゃあ経路と役割の軸とは別に、ドキュメント量の差も気になるんですよね。Spec Kitは/constitutionから/implementまで結構な量を積むのに対して、takt-sddやBMad Methodは検証ゲートや役割分担で進める構造で、そこの重さの違いってSDDのどの部分の責任を誰が持つかの差から来てるんでしょうか。
奏
それはあると思ってて、Spec Kitって/constitutionから/tasksまでの各ステップに専属のチェック役とかゲートを置いてないんです。合意が取れてるかを確かめる手段が『ドキュメントに書いて残す』ことしかないから、そこに量が集まる。takt-sddは検証ゲート、BMad MethodはPMやQAみたいな役割分担がその確認の役目を持ってるから、ドキュメントに全部背負わせなくて済む。責任の置き場所が文書か仕組みかで分かれてて、量の差はその結果のはず。
責任の置き場所で分けると、こういう違いです
対象確認の役目を持つもの責任の置き場所
Spec Kit専属のチェック役・ゲートなし文書
takt-sdd検証ゲート仕組み
BMad MethodPMやQAなどの役割分担仕組み
栞
文書に残すだけだと、それが実装とちゃんと合ってるかは結局読んだ人の判断任せになりますよね。takt-sddの検証ゲートみたいに通らないと先に進めない仕組みと違って、Spec Kitは書いてあることイコール合意された、っていう前提で進んじゃう分、ズレてても気づきにくくないですか。
奏
それ、たぶん気づきにくいどころじゃなくて、もう一段手前が怪しいんです。掲示板で見かけた話だと、Spec Kitは同じ要求を投げると異なる仕様書が出てくることがあるらしくて。これ裏取れてない伝聞なんですけど、本当なら『書いてあること=合意された内容』っていう前提自体がそもそも揺らいでる気がする。9
栞
それ、Spec Kit固有の作り方が甘いだけなのか、SDDって考え方自体が『言葉で書いて合意する』以上は避けられない限界を抱えてるのか、どっちだと思いますか。
奏
両方あると思ってて、自然言語で仕様を書く以上、同じ要求から複数の解釈が出るのはSDD全体が抱える構造的な限界のはず。ただtakt-sddは検証ゲート、BMad MethodはPM・Architect・QAみたいな役割分担で、そのズレを後から拾う仕組みを持ってるんです。Spec Kitはその拾う仕組みがなくて/constitutionから/tasksまでの文書一枚に賭けてる分、限界がそのまま表に出やすい。だから固有の甘さっていうより、緩和策を持たない実装、って言い方が近いと考えてる。
栞
緩和策を持たない実装っていう言い方、なるほどです。だとすると、Spec Kitが出た当時のモデルより今のモデルはだいぶ賢くなってるはずだから、文書一枚に賭けるその弱点自体、当時より薄まってたりするんですかね。
奏
薄まってる部分はあるはず、という前提の話だけど。プロンプトの意図を汲む精度が上がれば、同じ要求から出る仕様書の分散自体は減ると思う。でも自然言語で書いた仕様が一意に解釈されるって保証にはならないから、文書一枚に賭ける構造そのものの弱さは残るんです。モデルが賢くなったのは症状を減らす話で、緩和策が無いっていう構造は変わってないと考えてる。
栞
症状は減るけど構造は変わらないってなると、今からSDD始める人は、Spec Kitみたいな文書一枚型と、takt-sddやBMad Methodみたいな検証・役割型、どっちから手をつけるべきなんですかね。
奏
基準は多分、仕様がズレたときの被害がどれくらい大きいかだと思う。一人で軽く試すだけならSpec Kitでいいはずで、uvパッケージマネージャーで入れれば既存のコーディングエージェントに組み込むだけだから導入コストは低いし、ズレても自分で読み返して直せる規模なんです。チームで要件が複雑になってくると、そのズレを人力で拾うのは無理があるから、takt-sddの検証ゲートかBMad Methodの役割分担みたいに、拾う仕組みを持ってる方に寄るべきだと考えてる。23
栞
じゃあKiroってその基準だとどこに入るんですかね。要件・設計・タスクを一気に出す専用IDEっていう位置づけだけど、CLI版とIDE版で速度と仕様の整合性にトレードオフがあるらしいっていう話も聞いたことあって、あれってKiro固有の癖なのか仕様駆動っていう進め方自体が抱えるコストなのか気になるんですよね。1011
奏
それも掲示板で見た話で裏取れてないんだけど、本当ならKiro固有の実装差だと思う。requirements.md・design.md・tasks.mdを一気に出す構造自体はCLIでもIDEでも同じはずだから、遅い方は整合性を取るために待たせてるだけのはず。基準に置くなら、Kiroは個人で試すSpec Kitと、チームで拾う仕組みを持つtakt-sddやBMad Methodの中間くらいだと考えてる。
栞
個人と多人数の中間、っていう置き方は納得です。となると今から始める人への答え、被害の小ささでSpec Kit、複雑さでtakt-sddかBMad Method、規模が読めない一人チームならKiro、くらいの三分けで一旦言い切っちゃっていいですかね。
奏
三分け自体はいいと思うけど、Kiroに乗せる前にひとつ確認したくて。これも掲示板の伝聞で裏取れてないんだけど、Kiroには不可視テキストを含むWebページを読み込むことで設定ファイルを書き換えられる脆弱性が報告されてるらしいんです。requirements・design・tasksを一気に固定して複数エージェントを並行で動かす構造だから、もし本当なら人間の意図をそのまま設定に固定する分だけ突かれると危ないはずで、規模で選ぶ前にこのリスクをどう扱うか決めた方がいいかも。12
栞
それ、Kiro固有の実装バグなのか、仕様を設定ファイルに固定して複数エージェントを並行実行させるっていう構造そのものが抱えるリスクなのか、そこ切り分けたいですね。前者ならKiroだけの話だけど、後者だと同じ一気出し構造を持つツールにも同じ穴があり得る気がするんですよ。
奏
そこは切り分けられるはず。requirements.md・design.md・tasks.mdに仕様を固定する構造自体は他のツールにもあるけど、不可視テキストで書き換えられるっていうのは、入力のチェックが甘いっていう実装側の穴だと思う。仕様駆動だから起きる必然じゃなくて、Kiro固有の実装バグに寄ってると考えてる。だから三分けはそのままでいいはずで、被害が小さいならSpec Kit、複雑でチームで拾う必要があるならtakt-sddかBMad Method、規模が読めない一人チームならKiro、で言い切っちゃっていいと思う。
条件ごとに選び分けるなら、こうでいいと思います。

選ぶ基準

被害が小さい

Spec Kit

複雑なチーム

takt-sdd

BMad Method

規模が読めない一人

Kiro

栞
三分けはそれでいいと思うんですけど、もう一個気になることがあって。Spec Kitのspec.mdって開発者向けじゃなくてビジネス側の人向けに書くものですよね。モデルが賢くなって仕様の分散が減るなら、そもそもそのビジネス向けの一枚を作る価値自体、当時より下がってたりしませんか。
奏
下がる部分と変わらない部分、両方あると思ってて。モデルの意図理解が上がった分、AIとエンジニアだけの会話で意図が揃うようになった範囲は当時より減ってるはず、そこは下がった。でもspec.mdの役目ってAIの理解を助けることじゃなくて、開発者じゃない人が『これで合意した』っていう証拠を残すことなんです。それはモデル性能とは別の理由で要るから、価値が下がったんじゃなくて、位置づけが『AI向けの補助』から『人間の合意記録』に絞られた、って言い方が近いと考えてる。2
栞
AI向け補助から人間の合意記録に絞られた、っていう言い方、しっくりきますね。ここまでで各ツールがSDDのどこを担ってるかと、今から始めるならどれかっていう筋は出た気がするんですけど、まだ詰め残してるところってありますか。
奏
一つ残ってると思ってて、そもそも『仕様』の中身が全部違うのに、なぜ同じSDDって名前で呼ばれてるのかっていう話です。Spec Kitは/constitutionから/implementまでの文書一枚、Kiroはrequirements.md・design.md・tasks.mdの3ファイル、takt-sddはステートマシンによる経路と検証ゲート、BMad MethodはPMやArchitectみたいな役割分担。中身の形がここまで違うのに同じ名前で括られてるのは、たぶん『仕様』って言葉自体が指す範囲が最初から広すぎるんです。1567
栞
仕様策定・設計・タスク分解・実装・検証の5つに当てはめると、Spec Kitは策定寄り、Kiroは策定から設計とタスク分解まで、takt-sddは検証ゲートで検証寄り、BMad Methodは役割分担で全体に薄く効く、って対応づけられそうですね。
奏
二点だけ直したくて。takt-sddは検証だけに寄ってるわけじゃなくて、要件・設計・実装の各フェーズにゲートを置いてる仕組みなんです。あと、Spec Kitも/constitutionから/implementまであるから、実際は実装まで踏み込んでて、策定止まりじゃないんですよ。16
栞
じゃあ直すと、策定はどのツールも入口として共通してて、Spec Kitはそこから実装まで一枚の文書で通す、Kiroは要件・設計・タスク分解までを担って実装は複数エージェントに渡す、takt-sddは要件・設計・実装の各フェーズにゲートを挟む、BMad Methodは役割分担で全体に薄く効く、って対応づけになりますね。だとすると三分けの結論も崩れなくて、モデルが賢くなったのは仕様の分散っていう症状を減らしただけで、ズレを拾う仕組みの要不要自体は変わってない、って言い切れそうです。
5つの対応づけを並べると、こうなりますね
ツール主に担う範囲進め方・仕組み
Spec Kit策定から実装まで一枚の文書で通す
Kiro要件・設計・タスク分解一気出し、実装は複数エージェントへ
takt-sdd要件・設計・実装各フェーズにゲート
BMad Method全体に薄く効く役割分担
奏
うん、それで言い切っていいと思う。GitHub CopilotやClaude Codeみたいな既存のエージェントに仕様書生成の型だけ後付けしたい人とか、PM・アーキテクト・QAで役割分担してGitで合意形成を追いたいチームには向くはずだけど、チケット駆動でこつこつ機能を積む開発とか、実装のスピード最優先の個人には合わないかもしれない。今日はここまで付き合ってくれてありがとう、聞いてくれてる人もお疲れさま。
栞
こちらこそ付き合ってくれてありがとうございました。セキュリティ要件まで仕様書に厳密に落とし込みたい人にはまだ向かないかもしれない、くらいの温度で今日は締めておきますね。聞いてくれてた人もお疲れさまでした。8
記事一覧へ戻る