Tools

Spec KitでSpec駆動開発をやってみる

投稿日:

はじめに

Spec KitとGitHub Copilotを使って、ブラウザで動く簡単なToDoアプリをSpec駆動開発で作ってみました。

Spec駆動開発とは

Spec駆動開発(Specification-Driven Development)とは、コードを書く前に仕様(Spec)を明確に定義して、それを中心に開発を進める手法です。

 

Spec駆動開発では、以下の流れで開発を行います。

  1. 仕様(Spec)を書く
  2. 仕様をレビューし、合意する
  3. 仕様に沿って実装する
  4. 仕様を満たしているか検証する

Specとは

Spec駆動開発におけるSpecとは、単なる文章ではなく、以下のようなものを含む実行可能または検証可能な仕様です。

  • API仕様(OpenAPIなど)
  • 入出力の定義
  • ユースケース
  • 制約事項

Spec駆動開発が向いているケース

Spec駆動開発に向いているものは以下のようなケースです。

  • チーム開発(特に大規模な場合)
  • API開発
  • マイクロサービス
  • AIにコード生成させる開発

Spec Kitとは

Spec Kitは、仕様の作成、設計、タスク定義、実装をAIと一緒に段階的に進めるための開発フレームワークです。

 

Spec Kitを使った開発では、以下の手順で開発を行っていきます。

  1. 原則(constitution)
  2. 仕様(specify)
  3. 設計(plan)
  4. タスク分解(tasks)
  5. 実装(implement)

ToDoアプリを開発する

それでは、実際にSpec KitとCopilotを使って、簡単なToDoアプリを開発してみます。

Spec Kitのインストール

まず初めに、Spec Kitをインストールします。

ターミナル上で以下のコマンドを実行します。

インストールが終わったら、Pathを通しておきます。

プロジェクトを作成する

ターミナルで以下のコマンドを実行してプロジェクトを作成します。

すると以下のように表示されます。

sh を選択して続けます。

このように表示され、プロジェクトが作成されます。

作成直後のフォルダの中身は以下のようになっています。

プロジェクトが作成できたら、VS Codeで開きます。

プロジェクトのルールを定義する

Copilotに以下のプロンプトを渡して、constitution(開発ルール)を定義します。

実行後の constitusion.md は以下の通りです。

仕様を書く

Copilotに以下のプロンプトを渡して、仕様を書きます。

実行後、 specs ディレクトリが作成され、 spec.md などが生成されます。

spec.md の中身は以下のとおりです。

その後、 /speckit.clarify を行って仕様を改良します。

/speckit.clarify を行うとCopilotはいくつか質問をしてくるので、それに回答してSpecを改良します。

設計する

Specが定まったら、 /speckit.plan を行って、技術選定を行います。

/speckit.plan を行うと、 copilot-instruction.mdspecs ディレクトリ内に plan.md などが生成されます。

plan.md の内容は以下の通りです。

タスク分解する

Planが終わったら /speckit.tasks でタスク分解します。

生成した tasks.md の内容は以下の通りです。

実装する

タスク分解まで終われば、CoplitのAgentモードでステップ毎に実装していきます。

今回実装したToDoアプリはこのような画面になってます。

さいごに

Spec KitとCopilotを使って簡単なToDoを作ってみました。

おすすめ書籍

現場で活用するためのAIエージェント実践入門 (KS情報科学専門書) MCP AIエージェント開発入門

page_footer_responsive




-Tools
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


  1. […] より詳しく知りたい方は、過去に投稿した記事をご覧ください。 […]

comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

Gitの便利なコマンド

1 はじめに2 cherry-pick2.1 使い方3 stash3.1 使い方3.2 退避した作業の一覧を見る3.3 退避した作業を戻す3.4 退避した作業を消す3.5 退避した作業を元に戻すと同時 ...

【Slack】OutgoingWebhookを利用して投稿を転送

1 はじめに2 OutgoingWebhook2.1 OutgoingWebhookの追加2.2 OutgoingWebhookの設定3 IncomingWebhook3.1 IncomingWebh ...

Github Copilot CLIのセッションデータ

1 はじめに2 セッションの保存場所と復元3 過去の作業についての質問4 /chronicle コマンド4.1 /chronicle standup4.2 /chronicle tips4.3 /ch ...

laravel logo

Laravel Boostを試してみた

1 はじめに2 Laravel Boostとは2.1 動的な情報(MCP Tools)2.2 静的な知識(CLAUDE.md・Skills)3 導入してみる4 boost:install で何が作られ ...

WSL2 / HiDPI環境でGoLand + 日本語入力を快適に使うまでの道のり

1 はじめに2 X Serverの設定2.1 VcXsrvの初期設定2.2 VcXsrvのHiDPI設定2.3 DISPLAY環境変数の設定2.4 Ubuntu側のスケーリング設定2.5 動作確認3 ...

フォロー

blog-page_side_responsive

2026年5月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。