Skip to content

symfonic.memory.backends.procedure_compat_review_transition

procedure_compat_review_transition

Exact-preimage CAS rule for established unsealed procedure review routes.

eligible

eligible(properties: dict[str, Any]) -> bool

Only consistent pending drafts or unsealed legacy terminals qualify.

Source code in src/symfonic/memory/backends/procedure_compat_review_transition.py
def eligible(properties: dict[str, Any]) -> bool:
    """Only consistent pending drafts or unsealed legacy terminals qualify."""
    if is_retracted(properties) or any(
        key in properties for key in (
            "procedure_review_authority", "procedure_review_actor",
            "procedure_review_revision",
        )
    ):
        return False
    nested = properties.get("record_metadata")
    if isinstance(nested, dict) and any(key in nested for key in ("status", "active")):
        return False
    status, active = properties.get("status"), properties.get("active")
    if type(active) is not bool:
        return False
    if is_pending(properties):
        return status == "draft" and active is False
    return (
        (status == "approved" and active is True)
        or (status == "rejected" and active is False)
    )