
OpenSpec is an open-source, lightweight spec-driven development (SDD) framework that helps human developers and AI coding agents align on what to build before code is written. This article covers its philosophy, workflow, and how it fits into the modern AI-assisted development landscape.
AI coding assistants are powerful but unpredictable when requirements live only in chat history. You ask for a feature, the agent builds something, and six times out of ten it's close but not quite right — because the what and the why were never written down. OpenSpec solves this by adding a lightweight specification layer to your repository so humans and AI agree on what to build before any code is generated.
OpenSpec is an open-source spec-driven development (SDD) framework created by Fission AI. It lives in your repository as an openspec/ directory containing structured Markdown files that describe how your system behaves and what changes you plan to make.
The core idea is simple: specs are the source of truth, changes are proposed modifications, and both live alongside your code.
OpenSpec is built around four guiding principles:
| Principle | Meaning |
|---|---|
| Fluid not rigid | No strict phase gates. You can create and update artifacts in any order. |
| Iterative not waterfall | Specs evolve as you learn. You don't need a complete spec upfront. |
| Easy not complex | Initialize in seconds, start working immediately, customize only if needed. |
| Brownfield-first | Designed for existing codebases, not just greenfield projects. |
The brownfield-first principle is what sets OpenSpec apart. Most spec frameworks assume you're starting from scratch. OpenSpec's delta-based approach makes it easy to specify changes to existing behavior, not just describe new systems.
OpenSpec organizes your work into two main areas:
Specs describe how your system currently behaves. They are organized by capability into folders under openspec/specs/. Each spec contains requirements, and each requirement has scenarios — concrete examples that make the behavior verifiable.
CodeLoading…
A spec is a behavior contract, not an implementation plan. It says what the system does, not how it does it.
A change is a proposed modification packaged as a folder under openspec/changes/. It contains everything needed to understand and implement the change:
CodeLoading…
This separation is key. You can work on multiple changes in parallel without conflicts. You can review a change before it affects the main specs. And when you archive a change, its deltas merge cleanly into the source of truth.
OpenSpec's workflow is intentionally minimal — often reduced to three steps:
You describe a change you want to make. OpenSpec generates everything needed to review it:
You review and refine the plan before any code is written, catching misalignment early.
Once the plan is approved, you (or your AI agent) implement the tasks. The specs serve as a reference throughout — the agent reads the spec to understand what to build, and you can check the work against the scenarios.
When the change is complete, you archive it. The delta specs merge into the main specs, keeping the source of truth up to date. The change folder is preserved for history.
The most powerful concept in OpenSpec is the spec delta. Instead of rewriting an entire spec when a feature changes, you write a delta that captures only what's changing:
This makes reviews dramatically faster. A reviewer doesn't need to read the entire spec — they read the delta and immediately understand the impact. It also makes it easy to see how the system's requirements have evolved over time.
For teams working across multiple repositories, OpenSpec introduces Stores — a dedicated planning repo that holds specs and changes shared across all your codebases.
CodeLoading…
Stores solve three real problems:
The store uses the same openspec/ shape you already know, shared by git push like anything else. One source of truth your whole team and every coding agent can read.
One of OpenSpec's standout capabilities is the explore workflow. Before modifying an existing system, you can ask OpenSpec to explore the codebase and generate specs that describe how it currently works.
This is genuinely useful for brownfield adoption:
This turns "understanding the existing system" from a manual, error-prone process into a structured, reviewable artifact.
The spec-driven development landscape is growing. Here's how OpenSpec compares:
| Tool | Philosophy | Best For |
|---|---|---|
| OpenSpec | Fluid, minimal, brownfield-first | Existing codebases, iterative work |
| GitHub Spec Kit | Structured, sequential | Greenfield projects with clear phases |
| BMAD | Rigid, heavyweight | Large teams needing strict process |
| Kiro | IDE-integrated | Teams committed to a specific IDE |
| Superpowers | Agentic skills | Agent-native workflows |
OpenSpec sits at the lowest-friction end of the spectrum. You can start using it immediately without learning elaborate processes or phase gates. The trade-off is less guardrailing — there's no executability mechanism, so specs are documentation artifacts, not verifiable contracts.
Install OpenSpec via npm:
CodeLoading…
Initialize in your repository:
CodeLoading…
This creates the openspec/ directory structure. From there:
CodeLoading…
OpenSpec works with 20+ AI assistants, including Claude Code, Cursor, GitHub Copilot, and Devin. The specs are just Markdown — any tool that can read files can use them.
OpenSpec shines when:
It may not be the right fit when:
OpenSpec fills a real gap in the AI-assisted development landscape. As coding agents grow more powerful, the bottleneck shifts from writing code to agreeing on what to build. OpenSpec addresses this with a lightweight, brownfield-first approach that adds just enough structure to keep humans and AI aligned — without getting in the way.
The philosophy is refreshing: fluid not rigid, iterative not waterfall, easy not complex. If you've ever been burned by an AI agent building the wrong thing because the requirements lived only in a chat session, OpenSpec is worth a look.
Links:
AI A practical look at Moonshot AI's Kimi K3, why it is trending, how its benchmarks compare, and where it may or may not be useful today.