OpenSpec
AIコーディングエージェント向けのspec駆動開発フレームワーク。Fission AI(Y Combinator出資)が開発しており、MITライセンス、npmパッケージは@fission-ai/openspec、リポジトリはFission-AI/OpenSpec。公式サイトはopenspec.dev。
「コードを生成するのは安くなったが、正しさは依然として高い」という問題意識から、実装の前に「何を作るか」をMarkdownの仕様として書き、それをエージェントの永続的なコンテキストとして使わせる。
ディレクトリ構成
リポジトリ内にopenspec/を作り、そこに仕様レイヤーを持つ。中身はすべてプレーンなMarkdownで、Gitにチェックインしてコードと一緒に管理する。
| パス | 役割 |
|---|---|
openspec/specs/ |
システムが現在どう動くかを記述する spec library(信頼できる現状の記録) |
openspec/changes/ |
個々の変更。proposal.md / design.md / tasks.md と仕様の差分がセットで入る |
openspec/changes/archive/ |
完了した変更 |
spec delta
OpenSpecを特徴づけているのが、変更を現状の振る舞いに対する差分(spec delta)として書く点。機能ごとに独立した完結した仕様ファイルを維持するのではなく、「今こう動いているものを、こう変える」を提案として書き、実装が終わってarchiveする際にspec libraryへマージして現状の記録を更新する。既存コードベースへの変更をそのまま表現できるため、ブラウンフィールド優先を掲げる根拠になっている。
ワークフロー
/opsx:exploreのようなスラッシュコマンドで各段階を回す。
- explore — 問題を整理し、コードベースを把握する(設計の壁打ち相手)
- propose —
proposal.md/specs//design.md/tasks.mdを作る - apply — 仕様からタスクを実装する
- verify — 実装が仕様と一致するか確認する
- archive — 完了した変更をspec libraryへ記録する
Claude Code・Cursor・GitHub Copilot・Codex・Windsurf・Gemini・Amazon Q Developer・JetBrains Junieなど30以上のエージェント/IDEに対応するツール非依存の設計。
インストール
Node.js 20.19.0以上が必要。
npm install -g @fission-ai/openspec@latest
openspec init
npm以外にpnpm / bun / yarn / nixにも対応している。匿名の利用統計(コマンド名とバージョンのみ)を送信するが、OPENSPEC_TELEMETRY=0またはDO_NOT_TRACK=1で無効化できる。
GitHub Spec Kitとの違い
| OpenSpec | Spec Kit | |
|---|---|---|
| 進め方 | フェーズゲートを強制しない、流動的 | constitution → specify → plan → tasks → implementの逐次進行 |
| 仕様の書き方 | 現状に対する差分(delta)として書き、archive時に本体へマージ | 機能ごとに独立した仕様ファイルを維持 |
| 想定する現場 | ブラウンフィールド(既存コードベース)優先 | グリーンフィールド、強いガードレールが欲しい場合 |
「fluid not rigid / iterative not waterfall / easy not complex / brownfield-first」という4原則を掲げ、Spec Kitより軽量である点を自らの位置づけとしている。既存コードに手を入れるならOpenSpec、ゼロから固い規律で進めるならSpec Kit、というのが各種比較記事の共通見解。
出典
- OpenSpec公式サイト
- Fission-AI/OpenSpec - GitHub
- Launch YC: OpenSpec: The Spec Framework for Coding Agents
- OpenSpec vs Spec Kit - Hashrocket
- Spec Kit vs OpenSpec - intent-driven.dev
- OpenSpec - a lightweight AI-driven spec framework - Dan Clarke
#llm #ai-agent #spec駆動開発 #claude-code