Governed Workflow State Graph · Evidence

Worked scenarios

Ten scenarios run against the real engine at build time, so what you read below is engine output rather than illustration. Each shows what was decided, what evidence the decision was bound to, what remained uncertain, who approved it, and how an interrupted run recovers.

Synthetic evaluation corpus — not a customer result — evaluation-grade prototype, not a compliance certification.Every workflow below is invented for evaluation. No real claim, claimant, document, reviewer, or payment is involved. This is not a deployed enterprise control plane, and it makes no payments and calls no providers — side effects are recorded as an intent plus a receipt, and the middle is simulated.

What this view shows and does not show

The durable event shape has no field that can hold document text. What an operator sees is references, digests, bounded classifications and caller-supplied labels — enough to audit a decision without reading the file it was made about.

Evidence in the reference workflow

ReferenceKindDigestBytesEstablished
ev-claim-formclaim_form938e309a307f18,432structure + digest form only
ev-policy-documentpolicy_documenta63680b8050218,432structure + digest form only
ev-assessor-noteassessment_note38b6f4d9790718,432structure + digest form only

A digest commits two parties to the same bytes. It does not establish that those bytes are true, that the document is authentic, or that any provider executed anything. Those three properties are recorded as false on every reference, because this prototype does not verify them.

Scenario timelines

Each timeline below is produced by running the engine, not written by hand. The chain-integrity column is recomputed for every render.

Normal approved path closed

A complete run: evidence, policy, human approval bound to that exact evidence set, one authorized action, close.

Recovery: not_applicable · Chain integrity: verified · Last safe checkpoint: approved

#TransitionActorUncertaintyAuthorizationApprovalEvidence setReason codes
0draft evidence_collectedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
1evidence_collected policy_evaluatedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
2policy_evaluated approvedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
3approved action_authorizedintake-agentnoneallowedgranteda2607099341ballowed, approval_required
4action_authorized action_completedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
5action_completed closedintake-agentnonenot_evaluatednot_requireda2607099341ballowed

Denied policy path denied

An operation removed by a policy layer is denied with a machine-readable reason code, and no action is authorized.

Recovery: not_applicable · Chain integrity: verified · Last safe checkpoint: approved

#TransitionActorUncertaintyAuthorizationApprovalEvidence setReason codes
0draft evidence_collectedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
1evidence_collected policy_evaluatedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
2policy_evaluated approvedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
3approved deniedintake-agentnonedeniednot_requireda2607099341bpolicy_denied

Uncertainty requiring human review needs_human_review

A blocking uncertainty routes to human review instead of being resolved by the agent in its own favour.

Recovery: requires_human_review · Chain integrity: verified · Last safe checkpoint: evidence_collected

#TransitionActorUncertaintyAuthorizationApprovalEvidence setReason codes
0draft evidence_collectedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
1evidence_collected needs_human_reviewintake-agentdeclared_blockingdeniednot_requireda2607099341buncertainty_blocks_decision

Approval expiry expired

A granted approval that has aged past its window cannot authorize an action; the workflow moves to expired.

Recovery: requires_human_review · Chain integrity: verified · Last safe checkpoint: approved

#TransitionActorUncertaintyAuthorizationApprovalEvidence setReason codes
0draft evidence_collectedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
1evidence_collected policy_evaluatedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
2policy_evaluated approvedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
3approved expiredintake-agentnonedeniedexpireda2607099341bapproval_expired

Changed evidence after approval needs_human_review

Revising evidence after approval invalidates the binding; the granted approval does not carry over to the new evidence set.

Recovery: requires_human_review · Chain integrity: verified · Last safe checkpoint: approved

#TransitionActorUncertaintyAuthorizationApprovalEvidence setReason codes
0draft evidence_collectedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
1evidence_collected policy_evaluatedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
2policy_evaluated approvedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
3approved needs_human_reviewintake-agentnonedeniedpending206f869ccb7fapproval_binding_stale

Duplicate or replayed action action_authorized

Repeating a transition with the same idempotency key returns the original record. No second event is appended and no second intent is produced.

Recovery: indeterminate_side_effect · Chain integrity: verified · Last safe checkpoint: approved

#TransitionActorUncertaintyAuthorizationApprovalEvidence setReason codes
0draft evidence_collectedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
1evidence_collected policy_evaluatedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
2policy_evaluated approvedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
3approved action_authorizedintake-agentnoneallowedgranteda2607099341ballowed, approval_required

Interrupted execution and recovery action_authorized

An authorized action with no receipt is classified indeterminate and routed to a human rather than retried.

Recovery: indeterminate_side_effect · Chain integrity: verified · Last safe checkpoint: approved

#TransitionActorUncertaintyAuthorizationApprovalEvidence setReason codes
0draft evidence_collectedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
1evidence_collected policy_evaluatedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
2policy_evaluated approvedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
3approved action_authorizedintake-agentnoneallowedgranteda2607099341ballowed, approval_required

Attempted policy bypass denied

An exception object that is not correctly signed does not widen the policy; the transition is denied with exception_invalid.

Recovery: not_applicable · Chain integrity: verified · Last safe checkpoint: approved

#TransitionActorUncertaintyAuthorizationApprovalEvidence setReason codes
0draft evidence_collectedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
1evidence_collected policy_evaluatedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
2policy_evaluated approvedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
3approved deniedintake-agentnonedeniednot_requireda2607099341bpolicy_denied, exception_invalid

Tenant, template and instance policy conflict denied

A lower layer cannot restore authority a higher layer removed. The most restrictive applicable rule wins.

Recovery: not_applicable · Chain integrity: verified · Last safe checkpoint: approved

#TransitionActorUncertaintyAuthorizationApprovalEvidence setReason codes
0draft evidence_collectedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
1evidence_collected policy_evaluatedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
2policy_evaluated approvedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
3approved deniedintake-agentnonedeniednot_requireda2607099341bpolicy_denied

Metadata-only audit guarantee policy_evaluated

A fully populated timeline contains references, digests, bounded classifications and caller labels — and no source document text.

Recovery: not_applicable · Chain integrity: verified · Last safe checkpoint: policy_evaluated

#TransitionActorUncertaintyAuthorizationApprovalEvidence setReason codes
0draft evidence_collectedintake-agentnonenot_evaluatednot_requireda2607099341ballowed
1evidence_collected policy_evaluatedintake-agentdeclared_non_blockingnot_evaluatednot_requireda2607099341ballowed

Schemas and documentation

Synthetic evaluation corpus — not a customer result — evaluation-grade prototype, not a compliance certification. Schema version 1.0.0.