Skip to content

Enhancement: PluginsΒ #453

@som45oul

Description

@som45oul

CHANGE TYPE

Complex - breaking change

PROBLEM

One of the strengths of OpenSpec is its simplicity.

Inevitably however varying ideas and requirements can cause "feature sprawl" in the core project, making the code base and UX more complex.

PROPOSAL

Implement a "plugin" system, and keep the core of OpenSpec pure and limited to the four basic commands (init, propose, apply, archive).

Core functionality would ship with the project as "default plugins" so the architecture is consistent. The community could develop or propose new features that could be added or removed from a plugins/ folder, making OpenSpec into a platform/ecosystem, rather than a monolith.

BENEFITS

  • OpenSpec itself can stay pure and lightweight, avoiding the bloat some other similar tools are currently seeing.
  • Users can add or remove plugin functionality as necessary for each project
  • New features can be implemented as optional add-ons, rather than making changes to the core

CHALLENGES

  • Could involve a significant rework of the current code
  • May involve additional complexity that is hard to quantify at this point

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