Skip to main content

Versioning & cloning

Outcome

You manage companion-guide changes safely — new versions clone from the current active version, the editor never destroys what is live, and activations happen by date so the cutover is auditable.

Prerequisites

A guide registered against a trading partner. Familiarity with rule types (7.2 — Rule types & applicator).

What versioning does and does not do

The companion-guide model deliberately has no DRAFT lifecycle. Every version is an immutable snapshot. New work happens by cloning an existing version, editing the clone, and activating the clone with an effective_from date.

ActionEffect
CloneCreates a new version with the same rule set; not yet effective.
EditMutates the clone in place; the previously-active version is untouched.
ActivateSets effective_from to a date you pick; the clone becomes the active version starting at that date.
SupersedeImplicit — when a new version's effective_from arrives, the previous active version becomes archived (its effective_to is set automatically).

Effective-date overlaps are advisory — the resolver picks the latest effective_from whose window covers today. The editor warns on overlaps so you can decide what you intended.

Steps to ship a guide change

  1. Open the active version at /companion-guides/:guideId. Note the version number.

  2. Click Clone version. The CloneVersionModal asks for:

    FieldNotes
    New version labelFree text; commonly the calendar quarter (2026Q3) or a payer-side change ID.
    Effective fromThe date the clone should activate. Cannot be earlier than today.
    Effective toOptional; if blank, the clone runs until the next clone supersedes it.
    Rule setPre-filled from the active version; you can prune at clone time.
  3. The clone opens in the editor with the same UI as a fresh guide (see 7.1). Edit rules.

  4. Use Live preview against representative samples — pick at least one of each shape your tenant produces (commercial professional, state-Medicaid institutional, etc.).

  5. Click Activate. The clone's effective_from is committed; the prior version's effective_to is set to the day before.

Steps to roll back

If a fresh activation produces bad output:

  1. Open the prior version (visible in the version list with status archived).

  2. Click Reactivate. The dialog asks for a new effective_from — typically today, so the old rules resume immediately. The audit log captures the operator and reason.

  3. The bad version becomes archived again. Iterate on a fresh clone when you are ready to retry.

The platform never deletes versions — every clone, edit, and activation is recorded with the operator, timestamp, and (for activations) the specific effective_from chosen.

Steps to inspect a historical activation

  1. Open the guide → Versions tab. Each row shows version label, operator, effective_from, effective_to, and an arrow to its rule set.

  2. Click into any version to see its rule list and run Live preview against any sample.

  3. Compare two versions with Diff (select two checkboxes → click Diff). The diff is shown rule-by-rule with adds / changes / removes highlighted.

Validation

CheckExpected
Cloned version starts inactiveYes — effective_from is the future date you set.
Activation sets the prior effective_to automaticallyYes.
Old transactions are not retroactively re-appliedCorrect — guides apply at generate / parse time.
Diff between versions reads cleanlyYes — adds in green, removes in red, changes side-by-side.

Troubleshooting

SymptomCauseFix
Activation blocked: "another version covers this window"Effective windows overlapEdit one version's effective_to to clear the overlap.
Clone shows zero rulesCloned a version that itself was emptyConfirm the source version; if you meant a different source, clone from that one.
Activate succeeds but new transactions still use the old versioneffective_from is later than todayWait, or reactivate with today's date.
Operator cannot reactivateMissing edi.companion-guide.activate scopeAsk a tenant admin or platform support.

Next

7.4 — State examples (Ohio MITS)