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エージェント開発入門

blog-page_footer_336




blog-page_footer_336




-Tools
-

執筆者:

免責事項

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


comment

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

CAPTCHA


関連記事

NotebookLMの特徴と使い道

1 はじめに2 NotebookLMの特徴と使い道3 NotebookLMの使い方3.1 ノートブックの作成3.2 ソースの追加3.3 ノートブック画面の使い方4 おまけ:動画をソースにする5 おすす ...

Gitの初期設定と便利な設定

1 はじめに2 初期設定2.1 ユーザ情報の設定3 便りな設定4 Gitの基礎知識4.1 configは3段階4.2 現在の設定を確認する4.3 設定ファイルの保存場所5 参考6 さいごに はじめに ...

VSCodeのAgentでMCPを活用しよう

1 はじめに2 VSCodeでのMCP Serverの設定2.1 グローバルとワークスペース2.2 MCP Serverの追加3 ユースケース1: Playwright MCPでテストコード生成4 ユ ...

Claude Code が書きがちな Python コードを読めるようになろう①

1 はじめに2 Claude が Python を呼ぶ 3 つの形3 パターン 1: JSON をパイプで整形する3.1 内包表記3.2 ensure_ascii=False の意味4 パターン 2: ...

laravel logo

Laravel Boostを試してみた

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

フォロー

blog-page_side_responsive

2026年5月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アプリ情報

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