OpenSpec
OpenSpec обеспечивает разработку на основе спецификаций, согласовывая человека и ИИ до начала кодирования. Получайте детерминированные и проверяемые результаты с отслеживанием структурированных изменений, встроенными командами слэша для ИИ и без ключей API.
OpenSpec меняет подход к AI-ассистированной разработке, предлагая легковесный, основанный на спецификациях рабочий процесс, гарантирующий согласованность требований между человеком и AI. Он решает проблему непредсказуемости AI-ассистентов кодирования, устанавливая чёткие спецификации до начала реализации, что приводит к детерминированным и проверяемым результатам. Инструмент разделяет текущие эталонные спецификации и предлагаемые изменения, обеспечивая явные различия (diffs) и структурированный аудит функций, модификаций и обновлений во всей кодовой базе, легко интегрируясь с различными AI-инструментами без необходимости в API-ключах.
Ключевые особенности
Варианты использования
Spec-driven development for AI coding assistants.
Follow @0xTab on X for updates · Join the OpenSpec Discord for help and questions.
OpenSpec aligns humans and AI coding assistants with spec-driven development so you agree on what to build before any code is written. No API keys required.
AI coding assistants are powerful but unpredictable when requirements live in chat history. OpenSpec adds a lightweight specification workflow that locks intent before implementation, giving you deterministic, reviewable outputs.
Key outcomes:
- Human and AI stakeholders agree on specs before work begins.
- Structured change folders (proposals, tasks, and spec updates) keep scope explicit and auditable.
- Shared visibility into what's proposed, active, or archived.
- Works with the AI tools you already use: custom slash commands where supported, context rules everywhere else.
- Lightweight: simple workflow, no API keys, minimal setup.
- Brownfield-first: works great beyond 0→1. OpenSpec separates the source of truth from proposals:
openspec/specs/(current truth) andopenspec/changes/(proposed updates). This keeps diffs explicit and manageable across features. - Change tracking: proposals, tasks, and spec deltas live together; archiving merges the approved updates back into specs.
- Compared to spec-kit & Kiro: those shine for brand-new features (0→1). OpenSpec also excels when modifying existing behavior (1→n), especially when updates span multiple specs.
See the full comparison in How OpenSpec Compares.
┌────────────────────┐
│ Draft Change │
│ Proposal │
└────────┬───────────┘
│ share intent with your AI
▼
┌────────────────────┐
│ Review & Align │
│ (edit specs/tasks) │◀──── feedback loop ──────┐
└────────┬───────────┘ │
│ approved plan │
▼ │
┌────────────────────┐ │
│ Implement Tasks │──────────────────────────┘
│ (AI writes code) │
└────────┬───────────┘
│ ship the change
▼
┌────────────────────┐
│ Archive & Update │
│ Specs (source) │
└────────────────────┘
1. Draft a change proposal that captures the spec updates you want.
2. Review the proposal with your AI assistant until everyone agrees.
3. Implement tasks that reference the agreed specs.
4. Archive the change to merge the approved updates back into the source-of-truth specs.
These tools have built-in OpenSpec commands. Select the OpenSpec integration when prompted.
| Tool | Commands |
|---|---|
| Claude Code | /openspec:proposal, /openspec:apply, /openspec:archive |
| CodeBuddy Code (CLI) | /openspec:proposal, /openspec:apply, /openspec:archive (.codebuddy/commands/) — see docs |
| CoStrict | /openspec-proposal, /openspec-apply, /openspec-archive (.cospec/openspec/commands/) — see docs |
| Cursor | /openspec-proposal, /openspec-apply, /openspec-archive |
| Cline | Rules in .clinerules/ directory (.clinerules/openspec-*.md) |
| Crush | /openspec-proposal, /openspec-apply, /openspec-archive (.crush/commands/openspec/) |
| Factory Droid | /openspec-proposal, /openspec-apply, /openspec-archive (.factory/commands/) |
| OpenCode | /openspec-proposal, /openspec-apply, /openspec-archive |
| Kilo Code | /openspec-proposal.md, /openspec-apply.md, /openspec-archive.md (.kilocode/workflows/) |
| Qoder (CLI) | /openspec:proposal, /openspec:apply, /openspec:archive (.qoder/commands/openspec/) — see docs |
| Windsurf | /openspec-proposal, /openspec-apply, /openspec-archive (.windsurf/workflows/) |
| Codex | /openspec-proposal, /openspec-apply, /openspec-archive (global: ~/.codex/prompts, auto-installed) |
| GitHub Copilot | /openspec-proposal, /openspec-apply, /openspec-archive (.github/prompts/) |
| Amazon Q Developer | @openspec-proposal, @openspec-apply, @openspec-archive (.amazonq/prompts/) |
| Auggie (Augment CLI) | /openspec-proposal, /openspec-apply, /openspec-archive (.augment/commands/) |
| Qwen Code | /openspec-proposal, /openspec-apply, /openspec-archive (.qwen/commands/) |
Kilo Code discovers team workflows automatically. Save the generated files under .kilocode/workflows/ and trigger them from the command palette with /openspec-proposal.md, /openspec-apply.md, or /openspec-archive.md.
These tools automatically read workflow instructions from openspec/AGENTS.md. Ask them to follow the OpenSpec workflow if they need a reminder. Learn more about the AGENTS.md convention.
| Tools |
|---|
| Amp • Jules • Gemini CLI • Others |
- Node.js >= 20.19.0 - Check your version with
node --version
npm install -g @fission-ai/openspec@latestVerify installation:
openspec --versionNavigate to your project directory:
cd my-projectRun the initialization:
openspec initWhat happens during initialization:
- You'll be prompted to pick any natively supported AI tools (Claude Code, CodeBuddy, Cursor, OpenCode, Qoder,etc.); other assistants always rely on the shared
AGENTS.mdstub - OpenSpec automatically configures slash commands for the tools you choose and always writes a managed
AGENTS.mdhand-off at the project root - A new
openspec/directory structure is created in your project
After setup:
- Primary AI tools can trigger
/openspecworkflows without additional configuration - Run
openspec listto verify the setup and view any active changes - If your coding assistant doesn't surface the new slash commands right away, restart it. Slash commands are loaded at startup, so a fresh launch ensures they appear
After openspec init completes, you'll receive a suggested prompt to help populate your project context:
Populate your project context:
"Please read openspec/project.md and help me fill it out with details about my project, tech stack, and conventions"
Use openspec/project.md to define project-level conventions, standards, architectural patterns, and other guidelines that should be followed across all changes.
Here's a real example showing the complete OpenSpec workflow. This works with any AI tool. Those with native slash commands will recognize the shortcuts automatically.
Start by asking your AI to create a change proposal:
You: Create an OpenSpec change proposal for adding profile search filters by role and team
(Shortcut for tools with slash commands: /openspec:proposal Add profile search filters)
AI: I'll create an OpenSpec change proposal for profile filters.
*Scaffolds openspec/changes/add-profile-filters/ with proposal.md, tasks.md, spec deltas.*
Check that the change was created correctly and review the proposal:
$ openspec list # Confirm the change folder exists
$ openspec validate add-profile-filters # Validate spec formatting
$ openspec show add-profile-filters # Review proposal, tasks, and spec deltaIterate on the specifications until they match your needs:
You: Can you add acceptance criteria for the role and team filters?
AI: I'll update the spec delta with scenarios for role and team filters.
*Edits openspec/changes/add-profile-filters/specs/profile/spec.md and tasks.md.*
Once specs look good, start implementation:
You: The specs look good. Let's implement this change.
(Shortcut for tools with slash commands: /openspec:apply add-profile-filters)
AI: I'll work through the tasks in the add-profile-filters change.
*Implements tasks from openspec/changes/add-profile-filters/tasks.md*
*Marks tasks complete: Task 1.1 ✓, Task 1.2 ✓, Task 2.1 ✓...*
After implementation is complete, archive the change:
AI: All tasks are complete. The implementation is ready.
You: Please archive the change
(Shortcut for tools with slash commands: /openspec:archive add-profile-filters)
AI: I'll archive the add-profile-filters change.
*Runs: openspec archive add-profile-filters --yes*
✓ Change archived successfully. Specs updated. Ready for the next feature!
Or run the command yourself in terminal:
$ openspec archive add-profile-filters --yes # Archive the completed change without promptsNote: Tools with native slash commands (Claude Code, CodeBuddy, Cursor, Codex, Qoder) can use the shortcuts shown. All other tools work with natural language requests to "create an OpenSpec proposal", "apply the OpenSpec change", or "archive the change".
openspec list # View active change folders
openspec view # Interactive dashboard of specs and changes
openspec show <change> # Display change details (proposal, tasks, spec updates)
openspec validate <change> # Check spec formatting and structure
openspec archive <change> [--yes|-y] # Move a completed change into archive/ (non-interactive with --yes)When you ask your AI assistant to "add two-factor authentication", it creates:
openspec/
├── specs/
│ └── auth/
│ └── spec.md # Current auth spec (if exists)
└── changes/
└── add-2fa/ # AI creates this entire structure
├── proposal.md # Why and what changes
├── tasks.md # Implementation checklist
├── design.md # Technical decisions (optional)
└── specs/
└── auth/
└── spec.md # Delta showing additions
# Auth Specification
## Purpose
Authentication and session management.
## Requirements
### Requirement: User Authentication
The system SHALL issue a JWT on successful login.
#### Scenario: Valid credentials
- WHEN a user submits valid credentials
- THEN a JWT is returned# Delta for Auth
## ADDED Requirements
### Requirement: Two-Factor Authentication
The system MUST require a second factor during login.
#### Scenario: OTP required
- WHEN a user submits valid credentials
- THEN an OTP challenge is required## 1. Database Setup
- [ ] 1.1 Add OTP secret column to users table
- [ ] 1.2 Create OTP verification logs table
## 2. Backend Implementation
- [ ] 2.1 Add OTP generation endpoint
- [ ] 2.2 Modify login flow to require OTP
- [ ] 2.3 Add OTP verification endpoint
## 3. Frontend Updates
- [ ] 3.1 Create OTP input component
- [ ] 3.2 Update login flow UIImportant: You don't create these files manually. Your AI assistant generates them based on your requirements and the existing codebase.
Deltas are "patches" that show how specs change:
## ADDED Requirements- New capabilities## MODIFIED Requirements- Changed behavior (include complete updated text)## REMOVED Requirements- Deprecated features
Format requirements:
- Use
### Requirement: <name>for headers - Every requirement needs at least one
#### Scenario:block - Use SHALL/MUST in requirement text
OpenSpec’s two-folder model (openspec/specs/ for the current truth, openspec/changes/ for proposed updates) keeps state and diffs separate. This scales when you modify existing features or touch multiple specs. spec-kit is strong for greenfield/0→1 but provides less structure for cross-spec updates and evolving features.
OpenSpec groups every change for a feature in one folder (openspec/changes/feature-name/), making it easy to track related specs, tasks, and designs together. Kiro spreads updates across multiple spec folders, which can make feature tracking harder.
Without specs, AI coding assistants generate code from vague prompts, often missing requirements or adding unwanted features. OpenSpec brings predictability by agreeing on the desired behavior before any code is written.
- Initialize OpenSpec – Run
openspec initin your repo. - Start with new features – Ask your AI to capture upcoming work as change proposals.
- Grow incrementally – Each change archives into living specs that document your system.
- Stay flexible – Different teammates can use Claude Code, CodeBuddy, Cursor, or any AGENTS.md-compatible tool while sharing the same specs.
Run openspec update whenever someone switches tools so your agents pick up the latest instructions and slash-command bindings.
- Upgrade the package
npm install -g @fission-ai/openspec@latest
- Refresh agent instructions
- Run
openspec updateinside each project to regenerate AI guidance and ensure the latest slash commands are active.
- Run
- Install dependencies:
pnpm install - Build:
pnpm run build - Test:
pnpm test - Develop CLI locally:
pnpm run devorpnpm run dev:cli - Conventional commits (one-line):
type(scope): subject
MIT
OpenSpec — Спецификация-ориентированная разработка для AI-ассистентов кода
Зачем это нужно?
Современные AI-ассистенты (Claude Code, Cursor, Copilot и др.) хороши, но непредсказуемы, когда требования живут только в истории чата. OpenSpec добавляет лёгкий рабочий процесс на основе спецификаций: вы фиксируете намерение до того, как ассистент напишет код. Результат — предсказуемый и проверяемый.
Ключевые возможности:
- Человек и AI договариваются о спецификациях до начала работы.
- Структурированные папки изменений (предложения, задачи, дельты спецификаций) — scope явный и аудируемый.
- Единая видимость: что предложено, в работе или архивировано.
- Не нужны API-ключи.
Как это устроено
OpenSpec разделяет источник истины и предложения изменений:
openspec/specs/— текущие спецификации (актуальное состояние).openspec/changes/— папки с предложениями изменений. Каждое изменение содержит:proposal.md— зачем и что меняется.tasks.md— чеклист реализации.specs/...— дельты (изменения) спецификаций.
После утверждения изменения архивируются, и обновления вливаются в источник истины.
Установка и инициализация
Требования
- Node.js >= 20.19.0 (проверьте:
node --version).
Глобальная установка
npm install -g @fission-ai/openspec@latest
openspec --version
Инициализация в проекте
cd my-project
openspec init
В процессе инициализации:
- Предложат выбрать поддерживаемые AI-инструменты (Claude Code, CodeBuddy, Cursor, OpenCode, Qoder и др.).
- OpenSpec автоматически настроит слэш-команды для выбранных инструментов и создаст
openspec/AGENTS.md. - Создаст структуру
openspec/.
Перезапустите ассистента, чтобы новые команды появились.
Поддерживаемые инструменты
Встроенные слэш-команды
| Инструмент | Команды |
|---|---|
| Claude Code | /openspec:proposal, /openspec:apply, /openspec:archive |
| Cursor, Windsurf, OpenCode | /openspec-proposal, /openspec-apply, /openspec-archive |
| GitHub Copilot | .github/prompts/ — /openspec-proposal и др. |
| Amazon Q Developer | @openspec-proposal, @openspec-apply, @openspec-archive |
| Kilo Code | .kilocode/workflows/ — /openspec-proposal.md и др. |
| Cline | Правила в .clinerules/ |
| Все остальные | Читают openspec/AGENTS.md — просто попросите следовать воркфлоу OpenSpec |
Полный список — в README на GitHub.
Быстрый старт: пример рабочего процесса
1. Создайте предложение
Попросите AI-ассистента: «Создай OpenSpec change proposal для добавления фильтрации профилей по роли и команде»
(Если есть слэш-команды: /openspec:proposal Add profile search filters)
AI создаст папку openspec/changes/add-profile-filters/ с proposal.md, tasks.md и дельтами спецификаций.
2. Проверьте и уточните
openspec list # Список активных изменений
openspec validate add-profile-filters # Проверка форматирования
openspec show add-profile-filters # Просмотр деталей
При необходимости попросите AI дополнить спецификации (например, «добавь критерии приёмки»).
3. Реализуйте
«Спецификации выглядят хорошо. Давай реализуем это изменение.»
(Или /openspec:apply add-profile-filters)
AI выполнит задачи из tasks.md.
4. Архивируйте
После завершения:
«Архивируй изменение» (/openspec:archive add-profile-filters)
Или в терминале:
openspec archive add-profile-filters --yes
Обновлённые спецификации вольются в openspec/specs/.
Пример структуры папок
openspec/
├── specs/
│ └── auth/
│ └── spec.md
└── changes/
└── add-2fa/
├── proposal.md
├── tasks.md
├── design.md # необязательно
└── specs/
└── auth/
└── spec.md # дельта изменений
Формат дельты
Дельты показывают, как меняются спецификации. Используются маркеры:
## ADDED Requirements— новые возможности## MODIFIED Requirements— изменённое поведение (полный текст)## REMOVED Requirements— удалённые
Каждое требование:
### Requirement: <название>- Минимум один блок
#### Scenario: - Использовать SHALL/MUST
Справочник команд
| Команда | Описание |
|---|---|
openspec list |
Просмотр активных папок изменений |
openspec view |
Интерактивная панель |
openspec show <change> |
Детали изменения |
openspec validate <change> |
Проверка структуры |
openspec archive <change> [--yes] |
Архивирование завершённого изменения |
Отличия от других решений
- spec-kit, Kiro.dev — хороши для новых проектов (0→1). OpenSpec лучше подходит для доработки существующего кода (1→n), особенно когда изменения затрагивают несколько спецификаций. Двухпапковая модель (
specs/+changes/) более масштабируема. - Не требует API-ключей — работает с любыми AI-инструментами.
- Brownfield-first — проекты с историей не проблема.
Важные замечания
- Не создавайте файлы вручную. AI-ассистент генерирует структуру на основе ваших запросов.
- Если слэш-команды не появились — перезапустите ассистента.
- Для инструментов без нативных команд просто опишите желаемый шаг словами: «создай OpenSpec proposal», «примени изменение», «архивируй».
Лицензия: MIT.
Следите за обновлениями: @0xTab на X. Вопросы и помощь: Discord.
Может ли OpenSpec управлять изменениями в существующих больших проектах?
Безусловно. OpenSpec изначально спроектирован как brownfield-first, разделяя текущие спецификации (`openspec/specs/`) и предлагаемые обновления (`openspec/changes/`). Это делает его очень эффективным для управления и аудита изменений в устоявшихся кодовых базах.
Как OpenSpec интегрируется с ИИ-помощниками по коду?
OpenSpec поддерживает нативные слеш-команды для популярных ИИ-инструментов, таких как GitHub Copilot, Claude Code и Cursor. Он также использует `AGENTS.md` для предоставления контекста другим ассистентам, обеспечивая единообразный рабочий процесс без необходимости в API-ключах.
Что такое OpenSpec?
OpenSpec — это инструмент для разработки на основе спецификаций (spec-driven development), который согласовывает работу людей и ИИ-помощников по коду. Он гарантирует, что все стороны согласны с точными спецификациями до написания кода, обеспечивая предсказуемые и проверяемые результаты.
Каковы ключевые преимущества использования OpenSpec?
Ключевые преимущества включают обеспечение согласованности человека и ИИ, структурированное отслеживание изменений для предложений и задач, четкую видимость объема разработки, легкую настройку без API-ключей и надежную поддержку brownfield-проектов.
Какова цель файла `openspec/project.md`?
`openspec/project.md` используется для определения проектных соглашений, стандартов, архитектурных паттернов и других руководящих принципов. Это гарантирует, что ИИ-помощники по коду получают последовательный и точный контекст для всех задач, способствуя единообразному качеству кода.
Источник: https://mcpmarket.com/server/openspec
Комментарии
Комментариев пока нет. Будьте первым.