FlowSentinel
Synthetic adversarial identity · zero live authority
Evidence identity algebra

Same-looking evidence is not the same evidence.

These cases mutate exact provenance, provider-run, fixture, workflow, provider, raw-execution, or saved-definition identity and feed the result through the real deterministic recovery gates. Duplicate evidence is not extra confidence, two missing IDs are not an exact match, and volatile provider metadata is not semantic drift.

Identity algebra catalog root

sha256:b865dd07fc4418ea019a71d18a429b1844fba61fd59f267460a4f489b2c598b6

15

Adversarial cases

15

Cross-gate assertions pass

0

Production authority granted

provenance

Provenance → eligibility → lifecycle

6 cases
Expected identity propagationduplicate-assurance-provenance

Duplicate Assurance Twin provenance is ambiguous, not stronger

Duplicate the exact Assurance Twin provenance ref.

Algebra root

5e525fed37b6…cdea5b16

Mutation footprint

assurance-twin refs: 1 -> 2

baseline input · 445111ad0f02…7c9a9e33

mutated input · 9812a1a13ed6…adf4f09c

Exact baseline

provenance
assurance-definition-bound-v1
eligibility
eligible:shadow
lifecycle
recovery-evidence-verified
recovery verified
true

After mutation

provenance
invalid
eligibility
ineligible
lifecycle
shadow-provenance-required
recovery verified
false
assurance-twin-provenance-required
✓

baseline provenance is exact v1

✓

mutated provenance becomes invalid

✓

baseline candidate is shadow-eligible

✓

mutated candidate is ineligible

✓

baseline lifecycle is recovery-evidence-verified

✓

mutated lifecycle requires fresh provenance

✓

mutated lifecycle exposes the same classifier binding

Duplicate evidence does not increase confidence; no arbitrary Twin ref may be selected. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationduplicate-definition-provenance

Duplicate definition provenance is ambiguous, not stronger

Duplicate the exact provider-definition provenance ref.

Algebra root

9559be7d09ea…361bda40

Mutation footprint

definition refs: 1 -> 2

baseline input · 445111ad0f02…7c9a9e33

mutated input · ea2223a66fd9…63031cf5

Exact baseline

provenance
assurance-definition-bound-v1
eligibility
eligible:shadow
lifecycle
recovery-evidence-verified
recovery verified
true

After mutation

provenance
invalid
eligibility
ineligible
lifecycle
shadow-provenance-required
recovery verified
false
current-definition-provenance-required
✓

baseline provenance is exact v1

✓

mutated provenance becomes invalid

✓

baseline candidate is shadow-eligible

✓

mutated candidate is ineligible

✓

baseline lifecycle is recovery-evidence-verified

✓

mutated lifecycle requires fresh provenance

✓

mutated lifecycle exposes the same classifier binding

Duplicate definition evidence is ambiguous even when the strings are equal. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationmissing-definition-provenance

Partial provenance cannot silently downgrade to legacy

Remove the provider-definition provenance while retaining Assurance Twin provenance.

Algebra root

49eb5d3b5b1a…ec9ab0ff

Mutation footprint

definition refs: 1 -> 0

baseline input · 445111ad0f02…7c9a9e33

mutated input · d6763679e3c2…8e00a21f

Exact baseline

provenance
assurance-definition-bound-v1
eligibility
eligible:shadow
lifecycle
recovery-evidence-verified
recovery verified
true

After mutation

provenance
invalid
eligibility
ineligible
lifecycle
shadow-provenance-required
recovery verified
false
current-definition-provenance-required
✓

baseline provenance is exact v1

✓

mutated provenance becomes invalid

✓

baseline candidate is shadow-eligible

✓

mutated candidate is ineligible

✓

baseline lifecycle is recovery-evidence-verified

✓

mutated lifecycle requires fresh provenance

✓

mutated lifecycle exposes the same classifier binding

Partial v1 provenance is invalid rather than historical baseline-only evidence. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationmalformed-assurance-provenance

Malformed Assurance Twin provenance fails closed

Replace the exact content-addressed Twin ref with assurance-twin://latest.

Algebra root

af8d080f9cc2…08b5291c

Mutation footprint

assurance-twin ref: exact SHA path -> moving alias

baseline input · 445111ad0f02…7c9a9e33

mutated input · c9b395e231d0…d2f00ab9

Exact baseline

provenance
assurance-definition-bound-v1
eligibility
eligible:shadow
lifecycle
recovery-evidence-verified
recovery verified
true

After mutation

provenance
invalid
eligibility
ineligible
lifecycle
shadow-provenance-required
recovery verified
false
assurance-twin-provenance-invalid
✓

baseline provenance is exact v1

✓

mutated provenance becomes invalid

✓

baseline candidate is shadow-eligible

✓

mutated candidate is ineligible

✓

baseline lifecycle is recovery-evidence-verified

✓

mutated lifecycle requires fresh provenance

✓

mutated lifecycle exposes the same classifier binding

A moving alias cannot stand in for exact content-addressed recovery provenance. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationmalformed-definition-provenance

Malformed provider-definition provenance fails closed

Replace the exact definition SHA ref with provider-definition://current.

Algebra root

1a4ddcd518b8…ee3fc5d3

Mutation footprint

definition ref: exact SHA path -> moving alias

baseline input · 445111ad0f02…7c9a9e33

mutated input · 0e9fe84b50fb…89684154

Exact baseline

provenance
assurance-definition-bound-v1
eligibility
eligible:shadow
lifecycle
recovery-evidence-verified
recovery verified
true

After mutation

provenance
invalid
eligibility
ineligible
lifecycle
shadow-provenance-required
recovery verified
false
current-definition-provenance-invalid
✓

baseline provenance is exact v1

✓

mutated provenance becomes invalid

✓

baseline candidate is shadow-eligible

✓

mutated candidate is ineligible

✓

baseline lifecycle is recovery-evidence-verified

✓

mutated lifecycle requires fresh provenance

✓

mutated lifecycle exposes the same classifier binding

A moving current-definition alias cannot satisfy exact provider-definition provenance. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationlegacy-provenance-removed

Removing all v1 provenance preserves history but removes current authority

Remove both v1 provenance refs and retain only the baseline snapshot ref.

Algebra root

8bfa5dc0cd38…4364ada4

Mutation footprint

assurance-twin refs: 1 -> 0definition refs: 1 -> 0

baseline input · 445111ad0f02…7c9a9e33

mutated input · 381e6d06a553…6076936e

Exact baseline

provenance
assurance-definition-bound-v1
eligibility
eligible:shadow
lifecycle
recovery-evidence-verified
recovery verified
true

After mutation

provenance
legacy-baseline-only
eligibility
ineligible
lifecycle
shadow-provenance-required
recovery verified
false
assurance-twin-provenance-requiredcurrent-definition-provenance-required
✓

baseline provenance is exact v1

✓

mutated provenance becomes legacy-baseline-only

✓

baseline candidate is shadow-eligible

✓

mutated candidate is ineligible

✓

baseline lifecycle is recovery-evidence-verified

✓

mutated lifecycle requires fresh provenance

✓

mutated lifecycle exposes the same classifier binding

Historical baseline-only evidence remains truthful but cannot satisfy current provenance-bound recovery. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

smoke-identity

Run / fixture replay identity

7 cases
Expected identity propagationrun-id-missing

Matching absent run IDs cannot authorize replay capture

Remove both evidence and result provider-run identities.

Algebra root

275b3d23ab1e…98c47a02

Mutation footprint

evidence.runId: run-1 -> nullresult.runId: run-1 -> null

baseline input · 40118a09a274…bfab22b9

mutated input · 73a9bf1adc40…b4476389

Exact baseline

identity exact
true
capture preflight
allowed
run identity
run-1
fixture identity
fixture-1

After mutation

identity exact
false
capture preflight
denied
run identity
∅
fixture identity
fixture-1
run-id-missing
✓

baseline replay-capture preflight is allowed

✓

mutated replay-capture preflight is denied

✓

identity mutation makes exact identity false

✓

production-authority firewall remains false

Absence on both sides is not exact run identity. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationrun-id-mismatch

Provider-run mismatch blocks replay capture

Change only the result run ID.

Algebra root

2af5c848a24b…eaf0617c

Mutation footprint

result.runId: run-1 -> run-2

baseline input · 40118a09a274…bfab22b9

mutated input · 371a034b3bd0…dea8ccc5

Exact baseline

identity exact
true
capture preflight
allowed
run identity
run-1
fixture identity
fixture-1

After mutation

identity exact
false
capture preflight
denied
run identity
∅
fixture identity
fixture-1
run-id-mismatch
✓

baseline replay-capture preflight is allowed

✓

mutated replay-capture preflight is denied

✓

identity mutation makes exact identity false

✓

production-authority firewall remains false

A different provider run cannot inherit evidence from the observed run. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationfixture-id-missing

Matching absent fixture IDs cannot authorize replay capture

Remove both evidence and result fixture identities.

Algebra root

348ee33c4b93…588283ac

Mutation footprint

evidence.fixtureId: fixture-1 -> nullresult.fixtureId: fixture-1 -> empty

baseline input · 40118a09a274…bfab22b9

mutated input · 3243200f2cae…0c2d63dd

Exact baseline

identity exact
true
capture preflight
allowed
run identity
run-1
fixture identity
fixture-1

After mutation

identity exact
false
capture preflight
denied
run identity
run-1
fixture identity
∅
fixture-id-missing
✓

baseline replay-capture preflight is allowed

✓

mutated replay-capture preflight is denied

✓

identity mutation makes exact identity false

✓

production-authority firewall remains false

Absence on both sides is not exact fixture identity. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationfixture-id-mismatch

Fixture mismatch blocks replay capture

Change only the result fixture ID.

Algebra root

e0ed41ea3e2f…559775d2

Mutation footprint

result.fixtureId: fixture-1 -> fixture-2

baseline input · 40118a09a274…bfab22b9

mutated input · 59a9a901f663…8fdab85c

Exact baseline

identity exact
true
capture preflight
allowed
run identity
run-1
fixture identity
fixture-1

After mutation

identity exact
false
capture preflight
denied
run identity
run-1
fixture identity
∅
fixture-id-mismatch
✓

baseline replay-capture preflight is allowed

✓

mutated replay-capture preflight is denied

✓

identity mutation makes exact identity false

✓

production-authority firewall remains false

A replay trace cannot bind evidence from a different deterministic fixture. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationworkflow-identity-mismatch

Workflow identity mismatch blocks replay capture

Change only the result target workflow ID.

Algebra root

b2d7ebeb31ca…df4b0464

Mutation footprint

result.targetId: workflow-1 -> workflow-2

baseline input · 40118a09a274…bfab22b9

mutated input · 78a969f75d40…e7e16b0c

Exact baseline

identity exact
true
capture preflight
allowed
run identity
run-1
fixture identity
fixture-1

After mutation

identity exact
false
capture preflight
denied
run identity
run-1
fixture identity
fixture-1
workflow-identifier-mismatch
✓

baseline replay-capture preflight is allowed

✓

mutated replay-capture preflight is denied

✓

identity mutation makes exact identity false

✓

production-authority firewall remains false

A provider run from another workflow cannot satisfy this workflow's replay evidence. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationprovider-identity-mismatch

Provider identity mismatch blocks replay capture

Change the evidence provider from n8n to Make while leaving the result n8n.

Algebra root

3ccce4af5e07…669aefa1

Mutation footprint

evidence.provider: n8n -> make

baseline input · 40118a09a274…bfab22b9

mutated input · 7e1fd9add66e…d685470a

Exact baseline

identity exact
true
capture preflight
allowed
run identity
run-1
fixture identity
fixture-1

After mutation

identity exact
false
capture preflight
denied
run identity
run-1
fixture identity
fixture-1
provider-mismatch
✓

baseline replay-capture preflight is allowed

✓

mutated replay-capture preflight is denied

✓

identity mutation makes exact identity false

✓

production-authority firewall remains false

Provider namespaces are not interchangeable even when workflow/run strings match. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationraw-execution-missing

Exact metadata without provider-native execution payload cannot create replay evidence

Remove only the provider-native raw execution payload.

Algebra root

8465922e6845…9b1a1534

Mutation footprint

result.raw: present -> missing

baseline input · 40118a09a274…bfab22b9

mutated input · 19de29bfbcba…af116246

Exact baseline

identity exact
true
capture preflight
allowed
run identity
run-1
fixture identity
fixture-1

After mutation

identity exact
true
capture preflight
denied
run identity
run-1
fixture identity
fixture-1
raw-execution-missing
✓

baseline replay-capture preflight is allowed

✓

mutated replay-capture preflight is denied

✓

raw-only mutation preserves exact metadata identity

✓

production-authority firewall remains false

Exact metadata identity alone does not create an execution trace to replay. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

definition-identity

Comparable definition identity

2 cases
Expected identity propagationn8n-volatile-metadata-changed

Volatile n8n metadata does not create false definition drift

Change only explicitly allowlisted volatile top-level metadata.

Algebra root

4477ebc696a0…56232dee

Mutation footprint

id/versionId/updatedAt/active/tags changed; nodes/connections/settings unchanged

baseline input · 4490aaaa3e66…e02159d7

mutated input · 31ffb92590c0…2e7d43f4

Exact baseline

definition SHA
ab89c7a9cb42…a0f4cd9c
comparable bytes
183

After mutation

definition SHA
ab89c7a9cb42…a0f4cd9c
comparable bytes
183
✓

volatile-only edit preserves comparable SHA

✓

production-authority firewall remains false

Equality applies only to the explicit volatile top-level allowlist; semantic workflow fields remain authoritative. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.

Expected identity propagationn8n-semantic-definition-changed

Semantic n8n node changes create exact definition drift

Change one node parameter while leaving volatile metadata untouched.

Algebra root

e7b5fc259b31…91a01405

Mutation footprint

nodes[0].parameters.value: alpha -> beta

baseline input · 4490aaaa3e66…e02159d7

mutated input · 9dddd3495df8…11c9e091

Exact baseline

definition SHA
ab89c7a9cb42…a0f4cd9c
comparable bytes
183

After mutation

definition SHA
6c2ade990434…1d77330e
comparable bytes
182
✓

semantic edit changes comparable SHA

✓

production-authority firewall remains false

A semantic workflow-definition edit cannot be hidden by stable provider metadata. This is deterministic synthetic adversarial evidence only; it does not create live provider evidence, recovery authorization, replay capture authority, provider writes, or production mutation authority.