{
  "object": "curbi.story.evidence",
  "schemaVersion": 1,
  "story": "49k",
  "title": "The extra k that turned $49 into $49,000",
  "synthetic": true,
  "customerTransactionOccurred": false,
  "providerActionPerformed": false,
  "roi": "A reproduced checker defect becomes an inspectable story and a portable regression.",
  "sources": {
    "currentBranch": "deploy/production",
    "currentSourceSha": "eaa1a7be74fce48ead286b91837eab4e013a22ea",
    "currentCheckerBlobSha": "110dce3c366eb3068bb1e0f3394912319db5962e",
    "currentAmountsTestBlobSha": "818f6de38197968e04a4dcc0b397dc5284bf1dac",
    "testsFirstSha": "ef5e155e4d0cffeb8d27f0bc80b064c55a39417c",
    "fixSha": "0e419a5a230ec20f9ea83b3d4f7433c5923d1c32",
    "testsFirstCheckerUrl": "https://github.com/Curbi-Inc/curbi-platform/blob/ef5e155e4d0cffeb8d27f0bc80b064c55a39417c/revenue-engine/claimcheck-web-v14/v15/check-api.js",
    "fixUrl": "https://github.com/Curbi-Inc/curbi-platform/commit/0e419a5a230ec20f9ea83b3d4f7433c5923d1c32",
    "guardUrl": "https://github.com/Curbi-Inc/curbi-platform/blob/eaa1a7be74fce48ead286b91837eab4e013a22ea/revenue-engine/claimcheck-web-v14/v38/amounts.test.mjs#L14",
    "limitationsUrl": "https://github.com/Curbi-Inc/curbi-platform/blob/eaa1a7be74fce48ead286b91837eab4e013a22ea/revenue-engine/claimcheck-web-v14/v38/overlap.test.mjs#L68"
  },
  "historicalReproduction": {
    "kind": "local source reproduction; not a historical live API observation",
    "request": {
      "policy": {"prices": [{"item": "Starter", "amount": 49}]},
      "reply": "Starter is $49k."
    },
    "before": {"pass": true, "findings": []},
    "after": {
      "pass": false,
      "findings": [{"rule": "price:mismatch", "span": [11, 15], "text": "$49k", "why": "Starter is $49, not $49000."}]
    },
    "controlsPassingBothVersions": ["Starter is $49.", "Starter is $49 monthly."]
  },
  "liveObservation": {
    "observedAt": "2026-10-30T02:38:38Z",
    "localDate": "2026-10-29",
    "localTimezone": "America/New_York",
    "endpoint": "https://curbi.io/api/v1/check",
    "method": "POST",
    "headers": {"Content-Type": "application/json", "User-Agent": "curbi-quickstart/1.0"},
    "request": {
      "version": "2026-11-01",
      "policy": {"prices": [{"item": "Starter", "amount": 49}]},
      "cases": [
        {"id": "magnitude", "reply": "Starter is $49k."},
        {"id": "control", "reply": "Starter is $49."},
        {"id": "uppercase", "reply": "Starter is $49K per year."},
        {"id": "range", "reply": "Starter is $49–99."}
      ]
    },
    "httpStatus": 200,
    "cfRay": "a5270b80cc043b08-EWR",
    "dateHeader": "Fri, 30 Oct 2026 02:38:38 GMT",
    "elapsedMs": 139,
    "timingScope": "One already-configured Python batch HTTP request; not setup, landing-to-catch or model inference time.",
    "response": {
      "object": "check.batch",
      "version": "2026-11-01",
      "recordTrust": "caller_supplied_unverified",
      "pass": false,
      "results": [
        {
          "id": "magnitude", "recordTrust": "caller_supplied_unverified", "pass": false,
          "findings": [{"rule": "price:mismatch", "span": [11, 15], "text": "$49k", "why": "Starter is $49, not $49000."}],
          "proof": {"scope": "operation_and_subject_only", "factsAuthenticated": false, "replayProtection": "within_request_only", "authorizationGranted": false}
        },
        {
          "id": "control", "recordTrust": "caller_supplied_unverified", "pass": true, "findings": [],
          "proof": {"scope": "operation_and_subject_only", "factsAuthenticated": false, "replayProtection": "within_request_only", "authorizationGranted": false}
        },
        {
          "id": "uppercase", "recordTrust": "caller_supplied_unverified", "pass": false,
          "findings": [{"rule": "price:mismatch", "span": [11, 15], "text": "$49K", "why": "Starter is $49, not $49000."}],
          "proof": {"scope": "operation_and_subject_only", "factsAuthenticated": false, "replayProtection": "within_request_only", "authorizationGranted": false}
        },
        {
          "id": "range", "recordTrust": "caller_supplied_unverified", "pass": false,
          "findings": [{"rule": "price:mismatch", "span": [15, 17], "text": "99", "why": "Starter is $49, not $99."}],
          "proof": {"scope": "operation_and_subject_only", "factsAuthenticated": false, "replayProtection": "within_request_only", "authorizationGranted": false}
        }
      ]
    }
  },
  "liveControls": [
    {
      "observedAt": "2026-10-30T02:39:51Z",
      "request": {"version": "2026-11-01", "policy": {"prices": [{"item": "Starter", "amount": 49000}]}, "reply": "Starter is $49k."},
      "httpStatus": 200, "cfRay": "a5270d48e9517a81-EWR", "pass": true, "findings": []
    },
    {
      "observedAt": "2026-10-30T02:39:51Z",
      "request": {"version": "2026-11-01", "policy": {"prices": [{"item": "Starter", "amount": 49}]}, "reply": "Starter is $49 monthly."},
      "httpStatus": 200, "cfRay": "a5270d49ee082ef5-EWR", "pass": true, "findings": []
    }
  ],
  "targetedSourceTests": {"scope": "v38/amounts.test.mjs + v38/overlap.test.mjs", "passed": 137, "failed": 0, "skipped": 0, "todo": 0},
  "portableFixtureVerification": {
    "artifact": "story-regression.test.mjs",
    "scope": "Unchanged local file against the live public API; synthetic inputs only. Not a browser-download or deployed-route test.",
    "passed": 2, "failed": 0, "skipped": 0, "todo": 0,
    "mutationControl": {"change": "Expected span [11,15] changed to [11,14] in a temporary copy only", "rejected": true, "failure": "ERR_ASSERTION: actual [11,15], expected [11,14]", "otherControlPassed": true},
    "staticChecks": ["evidence JSON parsed", "HTML fragment parsed", "JavaScript syntax valid"]
  },
  "routeBeforeIntegration": {
    "url": "https://curbi.io/stories/49k/",
    "httpStatus": 200,
    "actualContent": "homepage fallback, not a story",
    "title": "Curbi | Agent action evidence and integration repair",
    "canonical": "https://curbi.io/",
    "cfRay": "a5270d903b5a728d-EWR"
  },
  "productionSigning": "off",
  "whatThisDoesNotProve": [
    "No customer loss or payment prevention is demonstrated.",
    "The supplied policy has not been authenticated as business truth.",
    "No provider action or receipt was verified in this example.",
    "The checker does not have complete linguistic or currency-expression coverage.",
    "A passing text check grants no authority to act.",
    "An observation timestamp and Ray ID are not continuous health monitoring or independent institutional certification."
  ]
}
