Skip to content

Feature Request: Target Main Specs on Sync and Archive #827

Description

@caleb-reyes-op

Feature Request: Target Main Specs on Sync and Archive

TL;DR

Allow /opsx:sync and /opsx:archive to target specific main specs, enabling changes to evolve a single main spec over time rather than creating conflicting spec files. OR, remove the main spec entirely -- the code **is** the most accurate state of things now.

Core Problem

A main spec should represent the current state of a feature, not a point in time. In brownfield development, features evolve over time through multiple changes. Currently, if multiple changes target the same main spec, they create separate spec files that could contradict each other.

Example

openspec/specs/ui/spec.md (main spec - current state)

openspec/changes/add-header/
  specs/ui/spec.md (delta spec - wants to update main spec)

openspec/changes/add-footer/
  specs/ui/spec.md (delta spec - wants to update same main spec)

If both changes create separate main specs, we end up with contradictory specifications.

Current Behavior

  • /opsx:sync and /opsx:archive don't allow targeting specific main specs
  • Changes can't easily evolve a single main spec over time
  • Risk of creating contradictory spec files

Proposed Solution

Allow /opsx:sync and /opsx:archive to target specific main specs:

/opsx:sync --spec ui
/opsx:archive --spec ui

This enables:

  1. Multiple changes to evolve the same main spec
  2. Sequential archiving of related changes
  3. Single source of truth for feature state

Benefits

  • Single source of truth: One main spec per feature
  • Evolvable: Specs can be updated over time
  • No contradictions: Changes build on each other sequentially
  • Brownfield friendly: Supports ongoing feature development

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions