Skip to content

Road to md-utils config v0.3 #135

Description

@DandyLyons

Purpose

Track the road to the next md-utils configuration format, 0.3.0.

This issue is the umbrella for any feature that changes configuration structure, semantics, resource resolution, migration, schemas, CLI behavior, or documentation. Every such change must be reflected in a coherent 0.3.0 format rather than introducing unrelated or incompatible configuration changes.

Goals

  • Define and publish one authoritative 0.3.0 configuration model.
  • Coordinate changes that affect rules, matchers, schemas, Markdown types, and project resources.
  • Preserve version-specific behavior for existing 0.1.0 and 0.2.0 configurations.
  • Provide safe, testable migrations into 0.3.0.
  • Keep bundled schemas, public schemas, CLI behavior, documentation, and Agent Skill documentation synchronized.
  • Ensure configuration changes are deterministic, explainable, and backward compatible.

Related work

The closed issues are included as completed foundations whose behavior must remain compatible with the final 0.3.0 design.

Required coordination

Before calling the 0.3.0 format complete:

  • Identify every feature that changes configuration parsing, validation, storage, migration, resource resolution, or command behavior.
  • Update the canonical bundled schema and all published schema copies.
  • Define migration behavior, including dry-run/preview, collision handling, traversal and absolute-path safety, and interruption/recovery behavior. Recommend a backup of .md-utils/, preserve legacy artifacts, validate before writing, and replace the active config last. No staging directory or migration manifest is required; multi-file atomicity is not guaranteed.
  • Add Swift Testing coverage for new behavior and backward compatibility.
  • Update README, DocC, CLI help, and the bundled Agent Skill documentation.
  • Keep unrelated configuration and resource files preserved by mutating commands.
  • Document which behavior belongs to 0.3.0 and which remains version-specific legacy behavior.

Definition of done

  • The 0.3.0 configuration model is documented and implemented.
  • All related feature issues either land against that model or are explicitly deferred.
  • 0.1.0 and 0.2.0 behavior remains covered and unchanged.
  • Migration refusal, interruption, and recovery behavior are tested.
  • Schemas, implementation, commands, documentation, and fixtures agree.
  • A release note or changelog entry explains the new configuration format and migration path.

Implementation milestone

#71, #109 and #96 landed in 69918b4 and 8206166. Config 0.3.0 is opt-in, with shared CLI/server loading, recursive selection/type enforcement, standalone rule commands, and conservative migration. Required-schema-only conversions are supported; malformed-hint rejection is explicitly approved. Other incompatible conversions remain refused.

Remaining: #72 schema-source consolidation, #58 interactive authoring (or an explicit deferral), default initialization/latest-schema rollout, and release notes. This umbrella remains open. Deployed 0.3.0 schemas already match bundled copies; publication does not imply default-version rollout.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions