# AceLM status migration contract

This is a downstream reconciliation of the authoritative [transition catalog](acelm-artifact-transition-catalog.md) and [terminal UX](acelm-status-and-terminal-ux.md). It records the current boundary, not an unapproved lifecycle migration or a claim about shipped CLI/storage.

## Values to write and display now

The catalog's retained type-specific lifecycle values remain the transition/reference contract until explicit adoption. Do not silently rewrite existing artifact history or schema values to the favored common names. New lifecycle examples and exports using this retained contract use full type-specific values. The UX's common-name examples illustrate the favored future vocabulary.

Run and readiness are finalized: derive Run from separate assignment facts; use `go`, `no-go`, `need-ok`, or missing/null for a named action. Missing/null displays as `-`. A known `go-pending-approval` import alias normalizes visibly to `need-ok`. A known `approved` lifecycle import alias normalizes visibly to `accepted` for types with acceptance. New records and UI tokens use `accepted`, never `approved`.

These are documented import rules, not a claim that the website repository implements an importer. Reject unknown aliases; do not interpret truncated terminal text as an import value.

## Type-specific mapping for a future explicit adoption

| Type | Retained lifecycle value | Favored value or treatment | Adoption gate |
| --- | --- | --- | --- |
| All applicable types | `draft`, `to-review`, `reviewing`, `reviewed`, `accepted` | Same values | No naming change; reviewed remains distinct from accepted |
| Specification | `implementing` | `executing` | Explicit vocabulary adoption; authorized actual start, retained during waits |
| Specification | `implemented` | `complete` | Preserve direct-successor closure and verified acceptance criteria |
| Specification | Closure verification gate/activity | Possible `verifying` state | Still open; do not add a persisted state by implication |
| Plan | `executing`, `verifying` | Same values | Existing distinct phases and gates |
| Plan | `executed` | `complete` | Preserve all required E/V, final evidence, child/orchestrator integration gates |
| Backlog | `graduating`, `graduated` | Retain, or represent graduation as activity/events | Still open; never discard provenance, successor links, or closure obligations |
| Backlog | Direct accepted-to-done shortcut | Possible `executing`, `verifying` states | Still open representation; execution and independent verification are mandatory either way |
| Backlog | `done` | `complete` | Preserve direct-work verification or required-successor outcome closure |
| Applicable types | `fail-execute` | `fail-exec` | Explicit naming adoption; preserve operation failure evidence |
| Applicable types | `fail-interrupt` | `fail-int` | Explicit naming adoption; preserve interrupt/checkpoint evidence |
| Applicable types | `fail-review`, `fail-verify`, `fail-gate`, `fail-died` | Same values | Preserve budget family, cause, and recovery evidence |
| Applicable types | `superseded`, `retired`, `abandoned` | Same values | Dispositions remain distinct from successful completion |
| Release | `releasing`, `verifying`, `released` | Retain release-specific values | No decision replaces `released` with `complete`; authority remains candidate/target-bound |
| Plan set | No agreed independent state machine | Versioned membership, child closure, own orchestrator E/V and integration predicates | Separate set states and terminal predicates remain open |

## Adoption and portable output

Any future adoption requires a versioned type-specific decision, schema/import/export changes, CLI/help changes, migration of examples/diagrams, and preservation of revision-bound review, acceptance, evidence, and history. A normal-success token rename must not weaken its completion gate. Completed-spec reopening and milestone predicates need their own policy decisions.

Full labels are used in stored records, structured CLI output, details/help, and exact filters. Eight-character labels are presentation only, literal first-eight-character truncations without an ellipsis. Validate uniqueness within the active vocabulary, including any temporarily accepted display aliases; expose full values and reject ambiguous prefix filters. No truncated spelling becomes a canonical write value.

The finalized Run labels are `queue`, `run`, `wait`, `pause`, `done`, `issue`, `fail`, `died`, and `-`, each at most five characters. Run `done` is assignment success, not any type's lifecycle completion. An independent verifier can deliver a negative content verdict successfully and display `done` while the artifact records `fail-verify`.
