Skip to main content

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

Aspectspecs.mdOpenSpec
Primary FocusFull lifecycle (Inception → Operations)Change management
Best ForGreenfield + brownfieldGreenfield + brownfield (brownfield-focused)
PhilosophyComplete methodologyLightweight, change-centric
StructureIntents → Units → StoriesSpecs + Changes separation
Brownfield SupportSupported (with model elevation)Excellent (primary design focus)
Token EfficiencyBoth (Units scope context)Both (spec deltas)
Design IntegrationDDD as coreDesign-agnostic (your choice)
RitualsMob Elaboration, Mob ConstructionNone
Learning CurveModerateLow
VS Code ExtensionYes (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.
ApproachToken UsageBest For
OpenSpecLowerHigh-volume small changes
specs.mdHigherComplex 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 CaseOpenSpecspecs.md
Small bug fixExcellentOverkill
Feature tweakExcellentGood
New feature (existing codebase)GoodExcellent
New system (greenfield)LimitedExcellent
Complex refactoringGoodExcellent
Multi-team coordinationLimitedExcellent

Summary

For This NeedUse This
Brownfield changesOpenSpec (excellent) or specs.md (good)
Greenfield developmentspecs.md
Token efficiencyBoth
Full lifecyclespecs.md
Minimal setupOpenSpec
DDD integrationspecs.md
Team ritualsspecs.md
High-volume small changesOpenSpec
Bottom Line: OpenSpec excels at brownfield changes with minimal overhead. specs.md provides full lifecycle support for complex systems.For brownfield work within a larger project, consider using both together.