Capability Lifecycle Contract¶
mixle.capability_lifecycle is the shared, provider-neutral record used when
a capability moves between research, evaluation, supported use, operation, and
retirement. It complements the model convenience facade in
Model Lifecycle and the public-API stability registry in Project Maturity; it
does not replace either one.
Why the state is factored¶
One status is not enough for a scientific AI system. Mixle records five facts independently:
CapabilityMaturityrecords product support, from concept through retired;OperationalStaterecords whether an implementation can accept work now;EvaluationStaterecords the current evaluation and whether it is stale;EpistemicStandingrecords how the supporting claim is regarded; andAuthorizationDecisionrecords who allowed which immutable capability version, for which scope, until when, and whether that permission was revoked.
A passed evaluation does not promote maturity. Promotion is a separate,
explicit transition, and promotion to validated or supported requires
a passed evaluation at that boundary. A later evaluation may become stale or
fail without rewriting history. Operational availability likewise does not
create authorization, and authorization does not claim scientific validity.
Portable snapshots¶
CapabilityIdentity, AuthorizationDecision, and
CapabilityLifecycle are frozen value objects. Their as_dict and
from_dict methods use JSON-compatible data and preserve timezone-aware
timestamps. Every lifecycle transition creates a new revision; illegal
backward transitions, cross-capability authorization, time reversal, and
partially retired state fail deterministically.
The existing substrate scope-governance API remains supported. Completed
propose / approve / reject records now carry decision timestamps,
and mixle.substrate.authorization_decision adapts them to the shared
authorization contract for cross-project exchange.