Skip to content

Feature: Add Module Namespacing and Versioning #3

@synthable

Description

@synthable

Problem Statement

As the number of modules grows, and as teams potentially share modules, there is a risk of:

  • Naming collisions between modules from different sources.
  • A lack of stable dependency management, where an update to a shared module could break dependent instructions unexpectedly.

Proposed Solution

Enhance the module ecosystem by adding optional namespacing and versioning to the frontmatter.

  1. Update Frontmatter Schema: Allow for new optional fields:
    • name: A unique identifier for the module (if different from the filename).
    • namespace: An author or organization string (e.g., synthable).
    • version: A semantic version string (e.g., 1.1.0).
  2. Update Dependency Syntax: Allow dependencies to reference a namespaced and versioned module.
    dependencies:
      - synthable/core-guidelines@^1.0.0
  3. Refactor Module Loader: The InstructionBuilder needs to parse this new metadata and eventually use it for dependency resolution (version checking can be a future enhancement). The immediate goal is to store the metadata.

Acceptance Criteria

  • The frontmatter parser correctly reads name, namespace, and version fields.
  • Module dependencies can be specified with the new format.
  • This information is stored within the InstructionBuilder's module map.
  • The system is future-proofed for a potential module registry or more advanced dependency resolution.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions