4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AI駆動開発】迷ったらこれ!OpenSpecチートシート【仕様駆動開発】

4
Posted at

はじめに

以前ハリネズミさんが実践的なOpenSpec関連の記事を作成されていましたが、それを基に私もOpenSpecを活用しています。
今回の記事では皆さんにもより身近に、気軽にOpenSpecを活用していただくために特徴やコマンドをまとめたチートシートを作成しました。
OpenSpecを使っていてコマンドを忘れた際や、他の仕様駆動開発の手法と比較したい時の参考情報としてご使用ください。
実際にどのようなファイルが生成されるかや、どのように活用できるかの具体例はハリネズミさんの実践的な記事をご覧ください。

OpenSpecの実践的な記事

OpenSpec — 仕様駆動開発のナレッジをいい感じに循環させる(Amplify + AgentCoreハンズオン付き)

OpenSpecとは

AIコーディングアシスタントと人間が「何を作るか」をコードの前に合意するための軽量フレームワーク。

→ fluid not rigid(柔軟)
→ iterative not waterfall(反復的)
→ easy not complex(簡単)
→ brownfield-first(既存プロジェクト対応)

リポジトリ: Fission-AI/OpenSpec | MIT | npm: @fission-ai/openspec

OpenSpecのメリット

メリット 説明
合意してから作る 人間とAIがスペックで合意してからコードを書くため、手戻りが減る
ナレッジの蓄積 Archiveに「なぜ・何を・どうやって変えたか」が全て残り、過去の意思決定を後から参照できる
仕様が常に最新 デルタスペックがアーカイブ時にメインスペックへマージされ、ソースオブトゥルースが自動更新される
並行作業が安全 各変更が独立フォルダなので、複数機能を同時に進めても仕様が衝突しにくい
ツールを選ばない 29のAIコーディングアシスタントに対応。特定のIDEやモデルに縛られない
既存プロジェクトに導入しやすい デルタスペックで差分だけ記述するため、全仕様を一から書く必要がない
カスタマイズ可能 スキーマを定義してチーム独自のワークフローを構築できる

類似ツールとの比較

仕様駆動開発(SDD)のツールは複数存在する。それぞれアプローチが異なる。

項目 OpenSpec cc-sdd Spec Kit (GitHub) Kiro (AWS)
思想 軽量・柔軟・フェーズゲートなし 境界駆動・自律実装・TDD重視 厳格なフェーズパイプライン IDE統合型の仕様管理
ソースオブトゥルース スペック(openspec/specs/ コード(スペックは契約) 仕様(Constitution + テンプレート) スペック
ワークフロー制御 アクションベース(自由な順序) フェーズゲートあり(承認後に実装) 厳格な4段階パイプライン IDE内で段階的に進行
対応ツール数 29ツール 8ツール 4ツール (Copilot, Claude, Gemini, Cursor) Kiro IDE専用
対応モデル ツール非依存(任意) ツール非依存(任意) ツール非依存(任意) Claude, DeepSeek, MiniMax, GLM, Qwen等(AWS Bedrock経由)
自律実装 /opsx:apply で実装 /kiro-impl でサブエージェント自律実装+レビュー /speckit.implement で実装 IDE内で自動実装
デルタ管理 デルタスペック(ADDED/MODIFIED/REMOVED) なし(コードが真実) なし なし
カスタマイズ スキーマで自由定義 テンプレート・ルール編集 テンプレート・拡張カタログ 限定的
セットアップ npm install -g + openspec init npx cc-sdd@latest Python環境 + pip install IDE導入のみ
Stars 50.9k 3.4k 15k+ -

選び方の目安

こんな場合 推奨ツール
軽量に始めたい、ツールを選ばない OpenSpec
自律的な長時間実装+TDDを重視 cc-sdd
GitHub Copilotメインで厳格な管理 Spec Kit
IDE統合で完結させたい Kiro
既存プロジェクトへの差分管理が重要 OpenSpec(デルタスペック)

セットアップ

# インストール(Node.js 20.19.0+)
npm install -g @fission-ai/openspec@latest

# プロジェクト初期化
cd your-project
openspec init

# ツール指定で初期化
openspec init --tools claude,cursor,github-copilot

# プロファイル変更(拡張ワークフロー有効化)
openspec config profile
openspec update

ディレクトリ構造

openspec/
├── specs/              # ソースオブトゥルース(現在の仕様)
│   ├── auth/spec.md
│   └── payments/spec.md
├── changes/            # 進行中の変更
│   ├── add-dark-mode/
│   │   ├── proposal.md    # なぜ・何を
│   │   ├── specs/         # デルタスペック(差分)
│   │   ├── design.md      # どうやって
│   │   └── tasks.md       # 実装ステップ
│   └── archive/        # 完了した変更の履歴
└── schemas/            # ワークフロー定義

プロファイルの違い

OpenSpecには2つのプロファイルがあり、ワークフローの粒度が異なる。

項目 Core(デフォルト) Expanded(拡張)
対象 素早く進めたい場合 段階的に制御したい場合
計画の作り方 propose で一括生成 newcontinue / ff で段階的に生成
検証 なし(手動確認) verify で自動検証
アーカイブ 1件ずつ bulk-archive で一括対応可
有効化 デフォルト openspec config profileopenspec update

Core は「提案→実装→アーカイブ」を最短で回すためのプロファイル。/opsx:propose 1つで proposal・specs・design・tasks を全て生成し、すぐ実装に入れる。

Expanded は計画フェーズを細かく制御したい場合のプロファイル。アーティファクトを1つずつ確認しながら進める continue や、一括生成の ff、実装後の整合性チェック verify など、より多くのコマンドが使える。


コマンド早見表

Core プロファイル(デフォルト)

コマンド 説明 いつ使う
/opsx:propose <name> 変更提案 + 全アーティファクト作成 新機能を始めるとき
/opsx:explore アイデアの探索・調査 要件が不明確なとき
/opsx:apply タスクを実装 コードを書く準備ができたとき
/opsx:sync デルタスペックをメインにマージ 仕様を更新したいとき
/opsx:archive 変更を完了・アーカイブ 全作業が終わったとき

Expanded プロファイル(拡張)

コマンド 説明 いつ使う
/opsx:new <name> 変更スキャフォールド作成 段階的に進めたいとき
/opsx:continue 次のアーティファクトを1つ作成 1つずつ確認しながら進めたいとき
/opsx:ff 全計画アーティファクト一括作成 要件が明確で一気に進めたいとき
/opsx:verify 実装と仕様の整合性を検証 アーカイブ前の確認
/opsx:bulk-archive 複数変更を一括アーカイブ 並行作業の完了時
/opsx:onboard プロジェクトオンボーディング 新メンバー参加時

CLIコマンド

openspec init                    # 初期化
openspec init --tools all        # 全ツール対応で初期化
openspec update                  # エージェント指示を再生成
openspec config profile          # プロファイル選択
openspec list                    # 変更一覧
openspec schema init <name>      # カスタムスキーマ作成
openspec schema fork <src> <dst> # スキーマをフォーク

クイックリファレンス: 典型的な1機能の流れ

# 1. 変更スキャフォールド作成
/opsx:new add-user-search

# 2. アーティファクトを順番に生成(proposal → specs → design → tasks)
/opsx:continue   # proposal.md 生成
/opsx:continue   # specs/ 生成
/opsx:continue   # design.md 生成
/opsx:continue   # tasks.md 生成

# 3. 内容を確認・修正(必要に応じて)

# 4. 実装
/opsx:apply

# 5. 完了
/opsx:archive

ワークフローパターン

標準(要件がある程度明確)

/opsx:new add-dark-mode → /opsx:continue → /opsx:apply → /opsx:archive

探索的(要件が不明確)

/opsx:explore 認証方式の比較検討 → /opsx:new add-jwt-auth → /opsx:continue → /opsx:apply → /opsx:archive

高速(Expanded、一括生成)

/opsx:new add-dark-mode → /opsx:ff → /opsx:apply → /opsx:verify → /opsx:archive

並行開発

/opsx:new feature-a → /opsx:ff → /opsx:apply
/opsx:new fix-bug-b → /opsx:ff → /opsx:apply
→ /opsx:bulk-archive

アーティファクト(生成される仕様書)の役割

/opsx:propose/opsx:continue で生成される4つのアーティファクトは、それぞれ異なる問いに答える。

proposal.md — なぜ作るのか、何を作るのか

変更の意図・スコープ・大まかなアプローチを記述する。チームやAIが「この変更は何のためか」を理解するための出発点。

含める内容:

  • Intent(意図): なぜこの変更が必要か
  • Scope(スコープ): 何が対象で、何が対象外か
  • Approach(アプローチ): 大まかな方針

design.md — どうやって実現するのか

技術的なアプローチとアーキテクチャ上の決定を記述する。「なぜこの方法を選んだか」の根拠も含める。

含める内容:

  • Technical Approach(技術的アプローチ)
  • Architecture Decisions(アーキテクチャ決定とその理由)
  • Data Flow(データフロー)
  • File Changes(変更対象ファイル)

specs/ (デルタスペック) — 何が変わるのか

現在の仕様に対して「何が追加/変更/削除されるか」を記述する。要件とシナリオ(Given/When/Then)で構成され、テスト可能な形で振る舞いを定義する。アーカイブ時にメインスペックへマージされる。

含める内容:

  • ADDED Requirements: 新しく追加する要件
  • MODIFIED Requirements: 変更する既存要件
  • REMOVED Requirements: 廃止する要件

tasks.md — 何をどの順番で実装するのか

実装のチェックリスト。AIが /opsx:apply で実装する際の作業指示書になる。

含める内容:

  • グループ化されたタスク(見出しで分類)
  • 階層的な番号付け(1.1, 1.2, 2.1...)
  • チェックボックス(- [ ] / - [x])で進捗管理

4つの関係性

proposal.md  →  「なぜ・何を」を定義
     ↓
design.md    →  「技術的な実現方法」を定義
     ↓
specs/       →  「振る舞いの変更」を定義(テスト可能な形で)
     ↓
tasks.md     →  「具体的な実装手順」を定義
     ↓
実装          →  tasks.mdに従ってコードを書く

アーティファクト依存関係

        proposal(なぜ・何を)
            │
    ┌───────┴───────┐
    ▼               ▼
  specs           design
 (何が変わる)    (どうやって)
    │               │
    └───────┬───────┘
            ▼
         tasks(実装ステップ)
            │
            ▼
       implement(実装)

/opsx:verify の検証3軸

チェック内容
Completeness 全タスク完了?全要件実装済み?シナリオカバー?
Correctness 実装がスペックの意図に合致?エッジケース対応?
Coherence デザイン決定がコードに反映?パターン一貫?

/opsx:explore の使用例

要件が不明確なとき、変更を作る前にアイデアを探索・調査できる。アーティファクトは生成されない。

You: /opsx:explore モバイルアプリの認証をどう実装すべきか

AI:  現在のコードベースを調査します...
     Web側はセッションベース認証を使っていますね。
     モバイル向けには3つの選択肢があります:

     1. JWT(ステートレス、オフライン対応)
     2. OAuth2(サードパーティログインが必要な場合)
     3. 既存セッションの拡張(シンプルだが常時接続が必要)

     どの方向に興味がありますか?

You: JWTで行こう

AI:  了解です。/opsx:new add-jwt-auth で変更を始められます。

活用場面:

  • 技術選定の比較検討
  • パフォーマンス問題の原因調査
  • 既存コードの全体像把握
  • 複数アプローチの比較

ベストプラクティス

ルール 説明
変更は焦点を絞る 1論理単位 = 1変更フォルダ
不明確なら探索から /opsx:explore で問題空間を理解
アーカイブ前に検証 /opsx:verify で不一致を早期発見
明確な命名 add-dark-mode ○ / feature-1 ×
段階的厳密さ 通常はLite、高リスク時のみFull
コンテキスト衛生 実装前にコンテキストをクリア

対応ツール(抜粋)

ツール ID
Claude Code claude
GitHub Copilot github-copilot
Cursor cursor
Codex codex
Kiro kiro
Windsurf windsurf
Amazon Q amazon-q
Cline cline
Gemini CLI gemini
RooCode roocode

全29ツール対応。openspec init --tools all で全対応可能。


参考リンク

リソース URL
GitHub https://github.com/Fission-AI/OpenSpec
npm https://www.npmjs.com/package/@fission-ai/openspec
Getting Started https://github.com/Fission-AI/OpenSpec/blob/main/docs/getting-started.md
Workflows https://github.com/Fission-AI/OpenSpec/blob/main/docs/workflows.md
Concepts https://github.com/Fission-AI/OpenSpec/blob/main/docs/concepts.md
Supported Tools https://github.com/Fission-AI/OpenSpec/blob/main/docs/supported-tools.md
Customization https://github.com/Fission-AI/OpenSpec/blob/main/docs/customization.md
Discord https://discord.gg/YctCnvvshC
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?