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_loopMCP tool: starts a loop by name, initialises job and task state, returns the first skill instructionloop_advanceMCP tool: advances the loop after a skill completes. Persists output, applies human gate, runs validators, chains to next loop.loop_continueMCP tool: resumes a paused loop after human review/dmx/run-loopskill: IDE command to start any loop by name/dmx/loop-continueskill: 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_untilsupport:all_phases_completecondition evaluator readstasks.mdfor unchecked items- Loop chaining:
on_completeblock triggers the next loop automatically on success - Job and task state: persisted to
.dmx/jobs/{job_id}/{loop}-{task_id}.jsonand.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'sqa_answeredcheck now recognizes questions structurally (numbered list orQ:markers) instead of requiring an exact answer label, so it no longer fails against everyspec.mdthe bundledcreate-ticketskill actually generates.
v0.2.0 — Branch-Scoped Memory Bank
Breaking change to the memory bank layout.
Changed
spec.mdandtasks.mdmoved from the nested.dmx/tickets/active/{ref}/path to flat files at.dmx/spec.mdand.dmx/tasks.mdon the feature branch.spec.mdgained a YAML frontmatter block (ticket,branch,summary,ticketing).activeContext.mdrepurposed as a learning inbox with three sections —## Open Learnings,## Open Decisions,## Session Notes— instead of an## Active Ticketpointer. Items are promoted to the durable core files on commit and PR;/dmx/update-memoryperforms a full rebuild.ticket_idargument removed from most skills — ticket context is now derived fromspec.mdfrontmatter or the branch name.- Release, hotfix, and ship skills read a configurable
production_branchandbranch_baseinstead of assumingmaster.
Added
- Three-tier memory sync: light sync on
/dmx/commit, full sync on/dmx/create-pr, deep sync on/dmx/update-memory. production_branchconfig 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_KEYbearer auth,--watchhot-reload.dmx list-skillsand--skills-dir/--rules-diroverrides.- 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.