ブログ リソース 概要 検索 トピック
AI Development

GitHub SpecKit + VS Code Codexでフラッシュカードアプリを作る(仕様駆動チュートリアル)

更新日 2025年10月15日

カテゴリー: AI Development
共有

SpecKit + Codexチュートリアルでフラッシュカードアプリを構築

この投稿では、GitHub SpecKit + Codex VS Code拡張機能を使用して、ローカルのフラッシュカードアプリを構築します。仕様駆動開発(Spec-Driven Development)のフローをエンドツーエンドで追います:仕様 → 計画 → タスク → 実装

なぜこのプロジェクトにSpecKitを選ぶのか? #why-speckit-for-this-project

従来の「雰囲気コーディング」(vibe-coding)は成果物が曖昧になりがちです。SpecKitはその常識を覆します:明確な仕様を書き、技術計画を立て、タスクに分解し、コーディングエージェントに小さな、テスト可能なスライスを実装させながら、あなたがそのプロセスを loops で管理します。

前提条件 #prerequisites

  • Codex拡張機能が入ったVS Code(ChatGPTアカウントでサインイン)。
  • GitPython 3.11+uv(パッケージ/ランチャー)。
  • macOS、Linux、またはWindows(WindowsではCodexの最適な体験のためにWSLを推奨)。

Codex連携でのSpecKit初期化に成功したターミナル出力

公開リポジトリ: https://github.com/nicklaunches/flashcards-speckit

Specify CLIのインストール #install-specify-cli

永続インストール(推奨):

Terminal
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
specify check

Codexと連携してプロジェクトを初期化 #init-project-wired-to-codex

フォルダを作成し、Codex用にSpecKitを初期化します:

Terminal
mkdir flashcards-speckit && cd flashcards-speckit
specify init . --ai copilot
# Windowsユーザーは次を追加できます: --script ps

VS Codeでフォルダを開き、Copilotパネルがサインインしていることを確認します。

サインインに成功したVS Code Copilotパネル

ガードレールの設定:Constitution #set-guardrails-constitution

Copilotチャットで実行します:

Copilot Chat
/speckit.constitution
以下の点に焦点を当てた原則を作成してください:
- 縦スライス;タスクの90%を30分以内に収める
- React + Next.js + TypeScript;DrizzleによるSQLite
- コアロジックの単体テスト;Playwrightでのスモークテスト
- アクセシビリティ(WCAG AA);パフォーマンス予算:First Load JS < 160KB
- オフラインファースト(外部サービスなし、すべてローカル)

これにより、今後のステップが従わなければならないConstitutionファイルが作成/更新されます。

Constitutionファイルが作成された

仕様を書く(何を・なぜ) #write-the-spec-what-and-why

Copilot Chat
/speckit.specify
クイックな学習セッション用の、ローカルでオフラインファーストなフラッシュカードアプリを構築してください。

ユーザーストーリー:
1) 学習者として、デッキ(名前と説明)を作成できる。
2) カード(表面/裏面)を追加、編集、削除できる。
3) デッキをクイズフローで学習できる(表面を表示 → 裏返し → Easy/Hardをマーク)。
4) 間隔反復:難易度に応じてカードを昇格/降格し、後で再表示する。
5) 検索:テキストでデッキとカードをフィルタリングする。
6) データはローカルに保存され、アプリはネットワークなしで動作する。
7) 良いUX:キーボードショートカット(J/K/Space)、レスポンシブレイアウト、ダークモード。

受入基準:
- CRUDはセッション間で持続する
- クイズは進捗と精度を表示する
- モバイル+デスクトップレスポンシブ

何/なぜに焦点を絞ります。技術的な選択肢は次のフェーズで扱います。

Constitutionファイルが作成された

技術計画を作成(どのように) #create-the-technical-plan-how

Copilot Chat
/speckit.plan
技術とアーキテクチャ:
- Next.js + React + TypeScript;UIにはTailwind
- Drizzle ORMによるSQLiteファイルDB;リポジトリ抽象化
- App Router;ミューテーションにはServer Actions
- 単体テスト:Vitest;E2E:Playwright(スモークフロー)
- キーボードショートカットユーティリティ;CSS変数によるダークモード
- 学習ページのコード分割;バンドルを小さく保つ

これがCodexが従う設計図になります。

プランファイルが作成された

タスクに分解 #break-it-into-tasks

Copilot Chat
/speckit.tasks

順序付けられたステップ、ファイルパス、テストスタブが含まれた生成された tasks.md を期待してください。オプションの品質向上パス:

  • /speckit.clarify — 暗黙的な部分を明確にする
  • /speckit.analyze — 仕様と計画のカバー率を相互確認する
  • /speckit.checklist — QAチェックリストを生成する(「英語の単体テスト」など)

Codexで実装 #implement-with-codex

Copilot Chat
/speckit.implement

Codexは tasks.md に従ってアプリをスキャフォールドし、コードを書き、あなたの承認のもとでテストを接続します。

VS Codeでタスクを実装するCodex

実行とテスト #run-and-test

Terminal
pnpm i
pnpm dev
# http://localhost:3000 を開く

計画のすべてのタスクが完了したら、試してみてください:デッキ作成 → カード追加 → 学習 を押す → クイズ中に J/K/Space を使用する。

間隔反復の追加 #add-spaced-repetition

Codexに拡張を依頼します:

Copilot Chat
/speckit.tasks
スケジューラを追加:
- 各カードは難易度バケット(1..3)を持つ
- EASY → バケット+1(最大3);HARD → バケット-1(最小1)
- セッションはより低いバケットから多く引き出す
- lastReviewed, nextDueを永続化する

その後、再度 /speckit.implement を実行します。

Project Structure
flashcards-speckit/
  .specify/          # spec, plan, tasks, research artifacts
  .github/           # SpecKitによって追加されたprompts/templates
  app/               # Next.js routes & UI
  db/                # drizzle schema + seed
  tests/             # unit + e2e
  README.md

トラブルシューティング #troubleshooting

  • スラッシュコマンドがCodexメニューに表示されない--ai codex で初期化したか、プロジェクトのルートにいるか、Codex CLI/拡張機能が最新かを確認してください。/speckit.constitution のみが表示される場合は、ツールとテンプレートを更新してください。一部のエージェント統合は時間が経つにつれて修正されます。
  • エージェントチェックが失敗するspecify init--ignore-agent-tools を追加してチェックをスキップし、とにかくテンプレートを取得します。
  • Windows:CodexはWindowsで実験的です—最良の結果を得るにはWSLを使用してください。

次のアイデア #next-ideas

  • デッキのJSONインポート/エクスポート
  • カード表面でのMarkdownサポート
  • 画像カード
  • ストリート+インサイトビュー
  • nextDue を使用した「再学習」スマートデッキ

出典 #sources

カテゴリー AI Development
共有

関連投稿

最新のAIインサイトをあなたのインボックスにお届けします

最新のトレンド、チュートリアル、業界のインサイトを常に把握してください。当社のニュースレターを信頼する開発者のコミュニティに参加してください。

新規アカウントのみ。メールアドレスを送信することで、当社の プライバシーポリシー