{
  "schemaVersion": "flightrules.evidence/v1",
  "release": {
    "id": "019fa006-423c-73c0-8864-69549f9099d4",
    "key": "refund-agent-v2",
    "environment": "railway",
    "commitSha": null,
    "imageDigest": null,
    "firstObservedAt": "2026-07-26T20:03:12.392Z"
  },
  "baseline": {
    "releaseKey": "refund-agent-v1",
    "routeFamilyId": "019fa000-0898-722d-8d5d-1710e98a3ad9",
    "fingerprint": "43070aa4af4f6c2c912a8d7bcc724f1d199e0425dc8ad7256b528eec195cb037",
    "approvedRouteCount": 1
  },
  "decision": {
    "outcome": "fail",
    "exitCode": 2,
    "decisionHash": "c5fc5afd456c1cc4d60b6e5a154a0954e2a9fb522c40d47d7c4ce458d259d77e",
    "evaluationId": "019fa006-4240-70db-b2cb-c78fa51eed33",
    "evaluationStatus": "fail",
    "evaluatorVersion": "1.0.0"
  },
  "contract": {
    "id": "019fa000-1484-718f-a748-2f040a8afab5",
    "key": "refund-agent-railway",
    "version": "0.1.0",
    "contentHash": "2a714715d8f5b3ce28dd9e062f608d799cfb0aa2197a58ce48d8ca2a01a8d513",
    "state": "active"
  },
  "gate": {
    "minCompletedRuns": 20,
    "maxViolationPercent": "0.5",
    "maxUnknownRoutePercent": "1",
    "maxLatencyRegressionPercent": "20",
    "maxTokenRegressionPercent": "25",
    "zeroToleranceRuleIds": [
      "attribute-payment-refund-agent-idempotency-present-2e1b0f99",
      "attribute-payment-refund-handler-agent-idempotency-present-7e79c0b5",
      "require-fraud-check-4dccc488",
      "require-order-lookup-e3cbe09a",
      "require-policy-retrieve-98fbf144",
      "single-customer-notify-external-d1867585",
      "single-customer-notify-handler-external-98ffb98a",
      "single-payment-refund-handler-write-82eaae51",
      "single-payment-refund-write-8846bedd"
    ]
  },
  "counts": {
    "evaluatedRuns": 8,
    "passedRuns": 0,
    "failedRuns": 8,
    "erroredRuns": 0,
    "insufficientRuns": 0,
    "violations": 80,
    "criticalViolations": 24,
    "zeroToleranceViolations": 24,
    "unknownRouteRuns": 8,
    "duplicateSideEffectRuns": 8,
    "missingPrerequisiteRuns": 8,
    "degradedTraceRuns": 0,
    "observedRouteFamilies": 1,
    "approvedRouteFamiliesCovered": 0,
    "approvedRouteFamiliesDeclared": 1
  },
  "rates": {
    "violation": {
      "numerator": 8,
      "denominator": 8,
      "decimal": "1.000000",
      "percent": "100.000000"
    },
    "unknownRoute": {
      "numerator": 8,
      "denominator": 8,
      "decimal": "1.000000",
      "percent": "100.000000"
    },
    "duplicateSideEffect": {
      "numerator": 8,
      "denominator": 8,
      "decimal": "1.000000",
      "percent": "100.000000"
    },
    "missingPrerequisite": {
      "numerator": 8,
      "denominator": 8,
      "decimal": "1.000000",
      "percent": "100.000000"
    }
  },
  "changes": {
    "latency": {
      "metric": "run.duration_ms",
      "baseline": 189,
      "candidate": 1589,
      "changePercent": "740.740740",
      "measured": true
    },
    "tokens": {
      "metric": "gen_ai.usage.total_tokens",
      "baseline": null,
      "candidate": null,
      "changePercent": null,
      "measured": false
    },
    "retries": {
      "metric": "agent.retry.count",
      "baseline": 0,
      "candidate": 2,
      "changePercent": null,
      "measured": false
    }
  },
  "typedChanges": [
    {
      "kind": "cardinality_changed",
      "label": "Cardinality changed",
      "severity": "behavioural",
      "subject": "payment.refund",
      "baselineCount": 1,
      "candidateCount": 2
    },
    {
      "kind": "edge_removed",
      "label": "Missing edge",
      "severity": "structural",
      "subject": "fraud.check->fraud.check.handler|parent",
      "baselineCount": null,
      "candidateCount": null
    },
    {
      "kind": "edge_removed",
      "label": "Missing edge",
      "severity": "structural",
      "subject": "policy.retrieve->policy.retrieve.handler|parent",
      "baselineCount": null,
      "candidateCount": null
    },
    {
      "kind": "edge_removed",
      "label": "Missing edge",
      "severity": "structural",
      "subject": "refund.request->fraud.check|parent",
      "baselineCount": null,
      "candidateCount": null
    },
    {
      "kind": "edge_removed",
      "label": "Missing edge",
      "severity": "structural",
      "subject": "refund.request->policy.retrieve|parent",
      "baselineCount": null,
      "candidateCount": null
    },
    {
      "kind": "edge_removed",
      "label": "Missing edge",
      "severity": "structural",
      "subject": "refund.request->refund.calculate|parent",
      "baselineCount": null,
      "candidateCount": null
    },
    {
      "kind": "node_removed",
      "label": "Removed step",
      "severity": "structural",
      "subject": "fraud.check",
      "baselineCount": 1,
      "candidateCount": 0
    },
    {
      "kind": "node_removed",
      "label": "Removed step",
      "severity": "structural",
      "subject": "fraud.check.handler",
      "baselineCount": 1,
      "candidateCount": 0
    },
    {
      "kind": "node_removed",
      "label": "Removed step",
      "severity": "structural",
      "subject": "policy.retrieve",
      "baselineCount": 1,
      "candidateCount": 0
    },
    {
      "kind": "node_removed",
      "label": "Removed step",
      "severity": "structural",
      "subject": "policy.retrieve.handler",
      "baselineCount": 1,
      "candidateCount": 0
    },
    {
      "kind": "node_removed",
      "label": "Removed step",
      "severity": "structural",
      "subject": "refund.calculate",
      "baselineCount": 1,
      "candidateCount": 0
    },
    {
      "kind": "retry_increased",
      "label": "Retry increase",
      "severity": "behavioural",
      "subject": "payment.refund",
      "baselineCount": 0,
      "candidateCount": 1
    },
    {
      "kind": "retry_increased",
      "label": "Retry increase",
      "severity": "behavioural",
      "subject": "payment.refund.handler",
      "baselineCount": 0,
      "candidateCount": 1
    },
    {
      "kind": "route_unknown",
      "label": "Route not approved",
      "severity": "structural",
      "subject": "22ffa0c0e578ef70a32a34aae7830f40aeef027aae28e66006601e80f99c7466",
      "baselineCount": null,
      "candidateCount": null
    },
    {
      "kind": "side_effect_duplicated",
      "label": "Duplicate side effect",
      "severity": "structural",
      "subject": "payment.refund|write",
      "baselineCount": 1,
      "candidateCount": 2
    }
  ],
  "findings": [
    {
      "code": "ZERO_TOLERANCE_VIOLATION",
      "implies": "fail",
      "severity": "critical",
      "summary": "24 zero-tolerance violation(s) were observed. A zero-tolerance rule has no permitted rate.",
      "expected": "0 zero-tolerance violation(s)",
      "observed": "24 violation(s)",
      "ruleId": null
    },
    {
      "code": "VIOLATION_RATE_EXCEEDED",
      "implies": "fail",
      "severity": "critical",
      "summary": "100.000000% of runs violated the contract; the gate permits at most 0.5%.",
      "expected": "at most 0.5%",
      "observed": "100.000000% (8 of 8)",
      "ruleId": null
    },
    {
      "code": "UNKNOWN_ROUTE_RATE_EXCEEDED",
      "implies": "fail",
      "severity": "high",
      "summary": "100.000000% of runs followed a route the contract does not approve; the gate permits at most 1%.",
      "expected": "at most 1%",
      "observed": "100.000000% (8 of 8)",
      "ruleId": null
    },
    {
      "code": "LATENCY_REGRESSION_EXCEEDED",
      "implies": "fail",
      "severity": "medium",
      "summary": "p95 latency moved 740.740740% against the baseline; the gate permits at most 20%.",
      "expected": "at most 20%",
      "observed": "740.740740% (189 ms to 1589 ms)",
      "ruleId": null
    },
    {
      "code": "RELEASE_BUDGET_EXCEEDED",
      "implies": "fail",
      "severity": "medium",
      "summary": "Release-wide p95 of run.duration_ms was 1589, over the budget of 227.",
      "expected": "at most 227",
      "observed": "1589",
      "ruleId": "budget-release-duration-ms-90268c56"
    },
    {
      "code": "MIN_RUNS_NOT_MET",
      "implies": "insufficient_data",
      "severity": "high",
      "summary": "8 completed run(s) were evaluated; the contract requires at least 20 before a release decision.",
      "expected": "at least 20 run(s)",
      "observed": "8 run(s)",
      "ruleId": null
    }
  ],
  "disclosures": [
    {
      "code": "RETRY_CHANGE_NOT_MEASURED",
      "summary": "No usable baseline value for agent.retry.count, so its change could not be measured."
    },
    {
      "code": "TOKEN_REGRESSION_NOT_MEASURED",
      "summary": "No usable baseline value for gen_ai.usage.total_tokens, so its change could not be measured."
    }
  ],
  "evidence": {
    "representativeFailingTraceIds": [
      "1860df10f915cf6880631ec2206e18b2",
      "190770545baf3e9ddf3d7f3b80cbf608",
      "262049ed4b847a968d8209c0b396b2eb",
      "402d65a6c9e07b4a2bd0dd44624d7100",
      "7eab676eb948ebe9bcb706f697413725"
    ],
    "representativePassingTraceIds": [],
    "violatedRuleIds": [
      "budget-run-duration-ms-69ef06b5",
      "require-fraud-check-4dccc488",
      "require-payment-refund-a4f9c9ee",
      "require-policy-retrieve-98fbf144",
      "require-refund-calculate-973f0a45",
      "retries-bounded-73060ad7",
      "route-approved-family-5e4bcff6",
      "single-payment-refund-write-8846bedd"
    ],
    "zeroToleranceRuleIds": [
      "require-fraud-check-4dccc488",
      "require-policy-retrieve-98fbf144",
      "single-payment-refund-write-8846bedd"
    ],
    "observedRouteFingerprints": [
      "22ffa0c0e578ef70a32a34aae7830f40aeef027aae28e66006601e80f99c7466"
    ]
  },
  "generatedAt": "2026-07-27T03:49:43.356Z"
}
