Skip to content

v0.3.0 — Loop runtime

Choose a tag to compare

@hpieris-dm hpieris-dm released this 25 Aug 06:57
· 33 commits to main since this release

Added

  • Loop runtime — a declarative execution engine that runs an ordered sequence of skills autonomously with automated validators and policy-driven proceed/pause decisions, replacing manual skill-by-skill orchestration for trusted workflows.
  • Loop config schema — declarative YAML with skills, trigger, goal_state, repeat_until, validators, failure_handling, on_optional_failure, human_gate, and on_complete auto-chaining. Bundled loops ship in src/dmx/loops/ (spec, plan, dev, validate, release); teams override via .dmx/loops/.
  • Validator runner — validators are plain Python functions in validators/{name}.py, resolved deterministically and invoked via subprocess with a {skill_outputs, goal_state, loop_context} input contract and a {pass, message, checks} output contract.
  • Bundled validatorscheck_spec_complete, check_plan_complete, check_pr_ready, run_tests, and spec_adherence. spec_adherence grades a structured validation-report.json artifact produced by the validate skill's diff-based analysis, rather than the agent's free-text self-report.
  • State machinerunning → paused → running → ... → complete/failed/iterating, persisted to .dmx/loop-state.json and per-run job state under .dmx/jobs/{job_id}/.
  • get_skill_definition MCP tool — fetches a skill's full instructions on demand at each loop skill boundary.
  • run_loop, loop_advance, loop_continue MCP tools and the dmx-run-loop/dmx-loop-continue skills exposing the loop runtime as first-class workflow entry points.
  • Loop-level memory hooks — loops read activeContext.md before running and write session-note breadcrumbs after completion.

Fixed

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

Full changelog: https://github.com/deepmodel-ai/dmx/blob/main/CHANGELOG.md#030--2026-08-25