Skip to content
New from the specs.md team — fabriqa orchestrates Claude Code, Codex, Gemini CLI & more in one workflow.Download free →
v1
Esc
navigateopen⌘Jpreview
On this page

specs.md vs OpenSpec

Compare specs.md with OpenSpec's change-centric approach

Overview

OpenSpec is a lightweight, brownfield-first CLI tool focused on change management. It separates current truth (specs/) from proposed changes (changes/).

specs.md is a full lifecycle methodology covering Inception through Operations, with support for both greenfield and brownfield development.


Side-by-Side Comparison

Aspect specs.md OpenSpec
Primary Focus Full lifecycle (Inception → Operations) Change management
Best For Greenfield + brownfield Greenfield + brownfield (brownfield-focused)
Philosophy Complete methodology Lightweight, change-centric
Structure Intents → Units → Stories Specs + Changes separation
Brownfield Support Supported (with model elevation) Excellent (primary design focus)
Token Efficiency Both (Units scope context) Both (spec deltas)
Design Integration DDD as core Design-agnostic (your choice)
Rituals Mob Elaboration, Mob Construction None
Learning Curve Moderate Low
VS Code Extension Yes (visual dashboard) CLI dashboard

When to Choose Each

Choose specs.md (AI-DLC) if:

  • You need full project lifecycle support
  • You’re building new features (greenfield)
  • You want DDD integration
  • You need Mob rituals for team alignment
  • You want formal methodology structure
  • You want a VS Code extension to track progress visually

Choose OpenSpec if:

  • You primarily make incremental changes
  • You’re working with existing codebases
  • You want maximum token efficiency
  • You prefer minimal overhead
  • You want the simplest possible setup
  • You make high-volume, small-scope changes

Key Differences

1. Design Philosophy

OpenSpec: Brownfield-first. Designed for modifying existing systems with a clear separation between current state and proposed changes.

openspec/
├── specs/      # Current truth (what exists)
└── changes/    # Proposed updates (what's changing)

specs.md: Full lifecycle. Designed for complex systems from inception through operations.

memory-bank/
├── intents/           # High-level goals
├── units/             # Decomposed work
├── construction/      # Domain models, code
└── operations/        # Deployment, monitoring

2. Token Efficiency

OpenSpec: Excellent token efficiency. Only sends “spec deltas” (proposed changes) to the LLM, not the full codebase context.

specs.md: Memory Bank provides structured context. You can achieve similar change-focused efficiency by creating Units specifically for changes—keeping context scoped to what matters.

Approach Token Usage Best For
OpenSpec Lower High-volume small changes
specs.md Higher Complex decisions requiring full context

3. Brownfield Handling

OpenSpec: Primary design focus. Every change is explicit with clear before/after separation.

specs.md: Supported via “model elevation” - AI first converts existing code to semantic models (domain components, relationships) before making changes. More advanced brownfield process coming soon.

AI-DLC Brownfield Flow:
Existing Code → Semantic Models → Changes → Updated Code

4. Methodology vs Tool

OpenSpec: A tool for managing specs and changes. No prescribed methodology.

specs.md: A complete methodology with:

  • Defined phases (Inception → Construction → Operations)
  • Rituals (Mob Elaboration, Mob Construction)
  • Design integration (DDD as core)
  • Role definitions (AI drives, human validates)

Use Case Comparison

Use Case OpenSpec specs.md
Small bug fix Excellent Overkill
Feature tweak Excellent Good
New feature (existing codebase) Good Excellent
New system (greenfield) Limited Excellent
Complex refactoring Good Excellent
Multi-team coordination Limited Excellent

Summary

For This Need Use This
Brownfield changes OpenSpec (excellent) or specs.md (good)
Greenfield development specs.md
Token efficiency Both
Full lifecycle specs.md
Minimal setup OpenSpec
DDD integration specs.md
Team rituals specs.md
High-volume small changes OpenSpec

Was this page helpful?