using ModularityKit.Mutator.Abstractions.Core;
using ModularityKit.Mutator.Abstractions.Requests;
using ModularityKit.Mutator.Governance.Abstractions.Storage;
using ModularityKit.Mutator.Governance.Runtime.Storage;
var store = new InMemoryMutationRequestStore();
var request = MutationRequestFactory.PendingApproval(
stateId: "tenant-42:roles",
stateType: "IamRoleState",
mutationType: "GrantRoleMutation",
intent: new MutationIntent
{
OperationName = "GrantRole",
Category = "Security",
Description = "Grant elevated role to tenant operator"
},
context: MutationContext.User("requester-1", "Requester One", "Incident escalation"),
expectedStateVersion: "v10",
approvalRequirements:
[
MutationApprovalRequirement.SingleActorStep("security-lead"),
MutationApprovalRequirement.SingleActorStep("platform-owner")
]);
var persisted = await store.Create(request);
Console.WriteLine($"{persisted.RequestId} -> {persisted.Status}");MutationRequestMutationRequestFactoryMutationRequestDecisionMutationRequestStatusPendingMutationReason
IMutationRequestStoreInMemoryMutationRequestStore
IMutationRequestLifecycleManagerMutationRequestLifecycleManager
IMutationRequestApprovalWorkflowManagerMutationRequestApprovalWorkflowManagerMutationApprovalRequirement
IMutationRequestVersionResolverIMutationRequestVersionResolutionManagerMutationRequestVersionResolutionMutationRequestVersionResolutionOutcomeVersionedRequestResolutionStrategy
IGovernanceExecutionManagerGovernanceExecutionManagerGovernedExecutionResult<TState>
The project is organized by governance concern:
Abstractions/Requestsfor request models, decisions, and factory methodsAbstractions/Storagefor persistence contractsAbstractions/Approvalfor approval requirements and workflow contractsAbstractions/Resolutionfor stale-version handling and resolution outcomesAbstractions/Executionfor governed execution contracts and resultsRuntimefor lifecycle, approval, resolution, execution, and in-memory storage servicesAbstractions/Exceptionsfor governance-specific failures
Runnable examples live under Examples/Governance:
ModularityKit.Mutator owns mutation execution, policy evaluation, audit, history, side effects, and metrics.
ModularityKit.Mutator.Governance owns the request lifecycle around that execution: approvals, pending states, request storage, stale-version resolution, and terminal governance decisions.
Included today:
- request modeling and decision history
- approval requirements and workflow execution
- optimistic concurrency in request storage
- version-aware resolution before execution
- governed execution orchestration
- in-memory support for local runtime scenarios
Not included yet:
- production persistence providers such as EF Core or PostgreSQL
- reporting/query stores for operational governance views
- compensation or retry orchestration
- external approval system integrations

