Skip to main content

Release Loop

The Release Loop opens the PR, updates the memory bank, and closes out the ticket. It is the final loop in the default chain.

What it does

  1. Creates the PR: opens a GitHub pull request with the correct title format, generates or uses a drafted PR description, and transitions the ticket to In Review
  2. Updates the memory bank: extracts durable learnings from the work and syncs them into the core memory files so future sessions benefit

How to start it

The Release Loop fires automatically when the Validate Loop completes. You can also run it manually:

/dmx/run-loop release

Skills

create-pr opens a GitHub PR with:

  • A title formatted to your project's PR conventions, read from the memory bank
  • A body generated by draft-pr-description, called automatically if no description is provided
  • The correct base branch, defaulting to branch_base from your config
  • The ticket transitioned to In Review

update-memory reviews what happened during the job and updates the memory bank with durable learnings: architecture decisions made, patterns established, gotchas discovered. This is what makes the memory bank compound over time.

The human gate

After both skills run, the loop pauses for a final review. Check the PR and the memory bank update. When you're satisfied:

/dmx/loop-continue

Validator: check_pr_ready

CheckRequired
pr_existsYes
ticket_transitionedYes
memory_updatedNo

Loop config

name: release
skills:
- create-pr
- update-memory
trigger:
type: on_complete
goal_state: "PR created, ticket transitioned to review, memory bank updated"
validators:
- tool: check_pr_ready
checks:
- name: pr_exists
required: true
- name: ticket_transitioned
required: true
- name: memory_updated
required: false
on_optional_failure: warn
failure_handling: pause
human_gate: true
on_complete:
on_success:
trigger_loop: null

After the PR is merged

Once your PR is reviewed and merged, close out the ticket:

/dmx/close-ticket

This transitions the ticket to Done, adds the PR link as a comment, and deletes the branch locally and remotely.

For library or package releases that need a tagged GitHub release, use the release skills directly:

/dmx/draft-release-note v0.3.0
/dmx/release-merge v0.3.0
/dmx/create-release v0.3.0

These are standalone skills. If you publish packages regularly, add them to a custom release loop.