SPEC.Kitと「実行可能な仕様」:AI開発を秩序に戻すGitHubの挑戦

AIがソフトウェア開発を支えるようになった今、私たちが直面しているのはスピードではなく秩序の問題です。
思いついたことをAIに投げてコードを吐き出させる「Vibe-Coding(雰囲気コーディング)」は便利ですが、その場しのぎに終わりやすく、あとで必ずツケが回ってきます。

GitHubが公開した SPEC.Kit は、その無秩序をただすための「フレームワーク」です。
コードではなく仕様を出発点とする「仕様駆動型開発(Spec-Driven Development, SDD)」を可能にします。

目次

なぜSPEC.Kitが必要なのか

Vibe-Codingの落とし穴

  • 一見うまく動くコードが出ても、本来の意図とずれている
  • 本番に向かない技術スタックを選んでしまう
  • チームで維持するには不安定で、負債が積み上がる

「すぐ動くけど、あとで直すのに倍以上かかる」――そんな経験がある人は多いはずです。

SPEC.Kitの考え方

  • 仕様が王様:コードは仕様を表現した結果にすぎない
  • 仕様は実行可能:AIがその仕様をもとに実装やテストを生成できる
  • 秩序ある流れ:仕様 → 計画 → タスク → 実装の順に進め、各段階で人がチェック

つまり、「設計図なしの家づくり」をやめ、「仕様書を土台にした開発」へと発想を転換させるのです。

SPEC.Kitの全体像

主な構成要素

  • CLI(コマンドライン)
    プロジェクト初期化や仕様作成を進めるための操作窓口
  • テンプレート
    仕様・計画・タスクの雛形がそろっている(マークダウン形式)
  • プロンプト
    AIエージェント(Copilot、Claude、Geminiなど)に渡すための最適化済み指示文

プロジェクト構造(例)

スクロールできます
ディレクトリ/ファイル役割
memory/constitution.mdプロジェクトの「憲法」。守るべきルールを記載
templates/仕様や計画のテンプレート群
specs/実際に生成された仕様ファイル
scripts/ブランチ作成などの補助スクリプト

とくに重要なのが constitution.md
ここに「ライブラリは優先的に使う」「セキュリティはOWASP準拠」といった原則を書いておくと、AIはそれを破れなくなります。

四段階ワークフロー:SPEC.Kitの使い方

SPEC.Kitの流れはシンプルですが、徹底されています。

1. Specify(仕様定義)

「何を、なぜ作るのか」を書きます。
実装方法はあえて書かないのがポイント。

例)

/specify
ユーザーはタスクを追加・完了・一覧できる。
受け入れ基準:E2Eテストで3操作が通ること。
非機能要件:TTI 2秒以内、XSS/CSRF回避。

2. Plan(計画)

仕様を受けて、どう実装するかを決めます。

例)

/plan
フロント:Next.js  
UI:shadcn/ui  
API:REST(JSON)、OpenAPI雛形を生成  
DB:PostgreSQL  
認証:httpOnlyセッショントークン

3. Tasks(タスク化)

計画を小さな作業に分解します。
テスト駆動を前提にするのが特徴です。

例)

/tasks
- POST /api/tasks のスキーマとテスト  
- GET一覧(ページング含む)  
- UIフォームのバリデーション  
- E2Eシナリオ(追加→完了→一覧)  
- CSRF対策と入力エスケープ

4. Implement(実装)

AIがタスクごとに実装。人間は「検証者」としてレビューします。

導入手順(クイックスタート)

前提環境:Linux/macOSまたはWSL2、Python 3.11以上、uv、Git。

新規プロジェクトの場合:

uvx --from git+https://github.com/github/spec-kit.git specify init my-app

既存ディレクトリで利用する場合:

uvx --from git+https://github.com/github/spec-kit.git specify init --here

その後、利用するAIエージェントを選び、
/specify → /plan → /tasks → 実装 の流れで進めます。

Windows×GitHubCopilotで使うための全体像

必要なもの(WSL側に入れる)

項目どこに入れる備考
WSL2(Ubuntuなど)Windowsに有効化wsl --install が最短。WSL2が既定。(Microsoft Learn)
Python 3.11+WSL内uvで入れるのが速い。(Astral Docs)
uvWSL内ツール実行ランチャー。uvx --from ... がポイント。(Astral Docs)
GitWSL内認証はGit Credential Managerも使える。(GitHub)
SPEC.Kit(Specify CLI)WSL内uvx --from git+... specify init で初期化。(The GitHub Blog)
VS Code + WSL拡張Windows(VS Code本体)WSL内のフォルダをVS Codeで開く。(Visual Studio Code)
GitHub Copilot(Chat)VS Code拡張セットアップはVS Codeの公式手順どおり。(Visual Studio Code, GitHub Docs)

セットアップ(15〜30分)

1. WSL2を有効化(Windows)

PowerShell(管理者)で:

wsl --install

再起動後、Ubuntu等の初期設定を完了。WSL2が既定です。(Microsoft Learn)

2. VS Code + WSL拡張(Windows)

  • VS Code をインストール
  • 拡張機能「WSL」を入れる(Remote – WSL)
  • 「WSL: Open Folder」でWSL内のプロジェクトを開く
    (WSL拡張は、Linux環境の開発をWindows上のVS Codeで快適にするための公式手順です。)(Visual Studio Code)

3. uv & PythonをWSL内に導入(Ubuntu想定)

WSLのターミナルで:

# uv を導入(公式インストーラ)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Python 3.11+ を用意(uvはPythonも管理できる)
uv python install 3.11
uv python install --default 3.11  # python/python3を指すエイリアスに設定(実験的フラグ)

(uv公式ドキュメントの手順に準拠)(Astral Docs)

4. Git をWSL内に

Ubuntuなら sudo apt-get update && sudo apt-get install -y git
Git認証で困ったらGit Credential Manager(Linux版)も利用可(SPEC.KitのREADMEのトラブルシューティング記載)。(GitHub)

5. GitHub Copilot(VS Code)

VS CodeのCopilotセットアップを実施(サブスク契約 → 拡張導入 → サインイン)。Chat拡張も自動または併せて導入。(Visual Studio Code, GitHub Docs, Visual Studio Marketplace)


プロジェクトの作成(Copilot想定)

1. SPEC.Kitを初期化(WSL内)

uvx --from git+https://github.com/github/spec-kit.git specify init my-app --ai copilot
# 既存ディレクトリで始めるなら
uvx --from git+https://github.com/github/spec-kit.git specify init --here --ai copilot

--ai copilot公式が明示。SPEC.KitはCopilot/Claude/Gemini対応。(GitHub)

なぜuvx?
uvの--from git+...で、GitHub上のCLIを即時実行できるからです。(Astral Docs)

2. できあがる構成(抜粋)

  • memory/constitution.md … プロジェクトの憲法(原則・禁止事項)
  • templates/spec-template.md / plan-template.md / tasks-template.md
  • specs/ … 実際の仕様書が入る場所
    (構成はREADMEに記載)(GitHub)

よくある質問と対処

Windowsネイティブじゃだめ?

WSL2前提です(Linux/macOS、WindowsはWSL2)。(GitHub)

Copilotで本当に使える?

使えます。 公式がCopilot / Claude / Gemini対応を明記。初期化時に --ai copilot を指定できます。(The GitHub Blog, GitHub)

エージェント検出で詰まる

--ignore-agent-tools を付けてテンプレートだけ取得も可能。(GitHub)

Git認証が通らない(WSL)

Git Credential Manager(Linux版)の導入スクリプトがREADMEのTroubleshootingにあります。(GitHub)

「憲法」サンプル(抜粋)

# Principles
- Library-First(車輪の再発明をしない)
- Test-First(受入基準→テスト→実装)
- Security Baseline(OWASP ASVS L2)

# Prohibitions
- 仕様にないAPIの追加禁止
- 認証の独自実装禁止

(理念は公式ブログの説明する「仕様を真ん中に置く」流れに合致)(The GitHub Blog)

つまずきにくい運用のコツ

コストを抑える(トークン・時間)

  • 1仕様=1機能に小分け
  • 差分更新の思考(すべてやり直さない)
  • E2Eの合格条件を最初に固定(迷いを減らす)
    (「段階ごとに検証する」—公式の型と一致)(The GitHub Blog)

VS Code側のベストプラクティス

参考:公式が示す全体フロー(確認用)

  • Prerequisites(Linux/macOS、WindowsはWSL2、Copilot/Claude/Gemini、uv、Python 3.11+、Git)(GitHub)
  • 初期化コマンドuvx --from ... specify init <PROJECT_NAME>--ai copilot可)(The GitHub Blog, GitHub)
  • ワークフロー/specify → /plan → /tasks → 実装(エージェント横断)(The GitHub Blog)

出典

  • GitHub SPEC.Kit リポジトリ(README/詳細手順/Prerequisites):WSL2・Copilot/Claude/Gemini対応、--ai copilot、Troubleshooting等。(GitHub)
  • GitHub 公式ブログ:SPEC.Kitの狙いと4フェーズ、複数エージェント対応。(The GitHub Blog)
  • WSL 公式(Microsoft Learn)wsl --install、WSL2の基本、VS Codeとの接続。(Microsoft Learn)
  • uv 公式ドキュメント:インストール方法、uvx --from git+... の使い方、Python導入。(Astral Docs)

これで、Windows + GitHub CopilotでSPEC.Kitを実際に使えるはずです。

競合との比較:Kiro.devとSPEC.Kit

スクロールできます
項目GitHub SPEC.KitAmazon Kiro.dev
位置づけ開発フレームワーク(CLI)IDEに統合された一体型環境
ライセンスMIT(無料・OSS)プロプライエタリ(有料)
AIエージェントCopilot、Claude、Geminiなど複数対応Claude中心
強みオープン、拡張性、既存環境に統合しやすい統合体験、オールインワン
弱みセットアップに摩擦ありベンダーロックと自由度の低さ

SPEC.Kitは「自分で選べる自由」を、Kiro.devは「全部そろった安心感」を提供する、と言えるでしょう。

コミュニティの反応

評価されている点

  • 無料で使えること
  • 思考のフレームワークとして役立つこと
  • コードの品質と一貫性が上がること

批判されている点

  • ステップが多く「slog(骨の折れる)」と感じる
  • トークンを大量に消費する
  • WindowsサポートやVS Code拡張がまだ未成熟

実務ガイド:失敗しない導入計画

まずは小さな勝利を

  • 小規模の新規プロジェクトで試す
  • 特に複雑な機能の設計に使う
  • レガシー刷新の際、仕様抽出に活用する

コスト管理の工夫

  • 1仕様=1イシューに分割
  • 変更点のみ差分で再実行
  • 最初にE2E基準を決める

チェックリスト

  • 憲法(constitution.md)を定義したか
  • 各フェーズの承認者を決めたか
  • OpenAPIやデザイントークンなど「機械が読める資産」を整えたか
  • 運用メトリクスを仕様に戻す仕組みがあるか

結論

SPEC.Kitは、AI開発を無秩序な実験から秩序ある工学へと引き戻すフレームワークです。
「すぐ動くコード」ではなく「長く使えるコード」を手に入れるために――。

まずは小規模で導入し、憲法と仕様の運用に慣れていくこと。
それが、将来に向けた最大の投資になるでしょう。

付録:実務で使えるテンプレート

spec-template.md(要約)

# Feature: 機能名
Goal: ユーザー価値
Acceptance Criteria: E2Eで検証可能
Non-functional: 性能/セキュリティ

plan-template.md(要約)

Stack: FE/BE/DB/Infra
API: OpenAPI
Testing: Unit/Integration/E2E
Security: ASVS基準

tasks-template.md(要約)

[ ] ユニットテスト  
[ ] API実装  
[ ] UIバリデーション  
[ ] E2Eテスト  
[ ] セキュリティチェック

Comment

コメントする

目次