Skip to main content

Changelog

All notable changes to dmx are documented here. dmx follows Semantic Versioning.


v0.3.0 — Loop Runtime

The foundational release that turns dmx from a command vocabulary into an orchestrated workflow harness.

Added

  • run_loop MCP tool: starts a loop by name, initialises job and task state, returns the first skill instruction
  • loop_advance MCP tool: advances the loop after a skill completes. Persists output, applies human gate, runs validators, chains to next loop.
  • loop_continue MCP tool: resumes a paused loop after human review
  • /dmx/run-loop skill: IDE command to start any loop by name
  • /dmx/loop-continue skill: IDE command to resume a paused loop
  • Loop config schema: Pydantic-validated YAML schema for loop configuration (loop_schema.py)
  • Five bundled loop configs: spec, plan, dev, validate, release (.dmx/loops/*.yaml)
  • Validator runner: subprocess runner with JSON contract, 120s timeout, policy engine for required vs. optional checks
  • Bundled validators: check_spec_complete, check_plan_complete, run_tests, spec_adherence, check_pr_ready
  • repeat_until support: all_phases_complete condition evaluator reads tasks.md for unchecked items
  • Loop chaining: on_complete block triggers the next loop automatically on success
  • Job and task state: persisted to .dmx/jobs/{job_id}/{loop}-{task_id}.json and .dmx/loop-state.json
  • Config resolution: repo-level .dmx/loops/ overrides bundled defaults; repo always wins
  • GitHub Actions workflows: test matrix (Python 3.11/3.12/3.13, Ubuntu/macOS) and OIDC trusted publishing to PyPI

Fixed

  • check_spec_complete's qa_answered check now recognizes questions structurally (numbered list or Q: markers) instead of requiring an exact answer label, so it no longer fails against every spec.md the bundled create-ticket skill actually generates.

v0.2.0 — Branch-Scoped Memory Bank

Breaking change to the memory bank layout.

Changed

  • spec.md and tasks.md moved from the nested .dmx/tickets/active/{ref}/ path to flat files at .dmx/spec.md and .dmx/tasks.md on the feature branch. spec.md gained a YAML frontmatter block (ticket, branch, summary, ticketing).
  • activeContext.md repurposed as a learning inbox with three sections — ## Open Learnings, ## Open Decisions, ## Session Notes — instead of an ## Active Ticket pointer. Items are promoted to the durable core files on commit and PR; /dmx/update-memory performs a full rebuild.
  • ticket_id argument removed from most skills — ticket context is now derived from spec.md frontmatter or the branch name.
  • Release, hotfix, and ship skills read a configurable production_branch and branch_base instead of assuming master.

Added

  • Three-tier memory sync: light sync on /dmx/commit, full sync on /dmx/create-pr, deep sync on /dmx/update-memory.
  • production_branch config field, set by /dmx/init.

Existing projects: re-run /dmx/init to migrate the IDE rule markers and activeContext.md structure.


v0.1.0 — Initial OSS Release

  • 23 SDLC skills as MCP prompts covering the full AI SDLC lifecycle: init, create-ticket, plan, implement, validate, commit, create-pr, release, hotfix, and more.
  • .dmx/ memory bank scaffolding via /dmx/init.
  • dmx serve — stdio and HTTP+SSE transports, REQUIRE_API_KEY + MCP_API_KEY bearer auth, --watch hot-reload.
  • dmx list-skills and --skills-dir / --rules-dir overrides.
  • IDE detection and rule-file generation for Cursor, Claude, Copilot, and Antigravity.
  • CI matrix (Python 3.11/3.12/3.13 × Ubuntu/macOS) and OIDC trusted publishing to PyPI.

For the full commit history, see GitHub.