{
  "schema": "school_workflow_verification@v1",
  "generatedAt": "2026-10-03T14:22:37.404Z",
  "evidenceType": "Synthetic acceptance run in disposable PostgreSQL and n8n. Not client savings or production evidence.",
  "sourceHashes": {
    "ansible/roles/build/files/n8n-workflows/ecole-update.json": "39c6f5f9ccb04b12e86d04003087b727546ce6085a2d653efa5f2f6693b46640",
    "src/lib/integrations/n8n-webhook.ts": "a57419a9857e8a9e7111e2191d98ecf7e20429d23b3cd8761ab5aa21e45c52ad",
    "prisma/schema.prisma": "4eec7437b9c547d89d11c4a3a662d0d2ea911a4a1e0fd13f669cd954237b5fa6",
    "src/app/api/internal/workflows/route.ts": "370bcef8c70de1af68ecedfab02e6e84579c693c6e2e6dddf496e2f5f3d83374"
  },
  "tools": {
    "node": "v22.23.1",
    "postgresImage": "postgres:17-alpine",
    "n8nImage": "n8nio/n8n:2.38.7",
    "n8nImageId": "sha256:a8c95f75c6fdf65f5f2b7a7b354744eaa1c62bb911b5c00af6499c3f38e4cd32"
  },
  "observations": [
    {
      "scenario": "transaction-rollback",
      "passed": true,
      "queueRows": 0
    },
    {
      "scenario": "unavailable-receiver-retained",
      "passed": true,
      "status": "PENDING",
      "error": "TRANSPORT_FAILURE",
      "attempts": 1
    },
    {
      "scenario": "backoff-respected",
      "passed": true
    },
    {
      "scenario": "pause-preserves-queue",
      "passed": true
    },
    {
      "scenario": "failure-retained",
      "passed": true
    },
    {
      "scenario": "ack-retained",
      "passed": true
    },
    {
      "scenario": "bounded-timeout",
      "passed": true
    },
    {
      "scenario": "retry-exhaustion-visible",
      "passed": true
    },
    {
      "scenario": "operator-endpoint-fails-closed",
      "passed": true
    },
    {
      "scenario": "operator-status-exposes-failure-without-school-data",
      "passed": true
    },
    {
      "scenario": "aggregate-observation-without-invented-savings",
      "passed": true
    },
    {
      "scenario": "authenticated-manual-retry-audited",
      "passed": true
    },
    {
      "scenario": "unauthenticated-webhook-rejected",
      "passed": true
    },
    {
      "scenario": "invalid-input-rejected",
      "passed": true
    },
    {
      "scenario": "expired-lease-recovered-with-one-claim",
      "passed": true
    },
    {
      "scenario": "duplicate-delivery-single-stable-journal",
      "passed": true,
      "journal": {
        "schemaVersion": 1,
        "eventId": "0323d077-271c-4cd7-a7cc-81488ffcd15a",
        "updatedAt": "2026-10-03T14:22:00.160Z",
        "schoolId": "synthetic-school",
        "name": "Synthetic school",
        "actor": {
          "id": "synthetic-actor",
          "name": "Synthetic actor"
        },
        "changes": [
          {
            "field": "name",
            "label": "Nom",
            "before": "Before",
            "after": "Synthetic school"
          }
        ]
      },
      "fileCount": 1
    },
    {
      "scenario": "write-failure-not-acknowledged",
      "passed": true
    },
    {
      "scenario": "write-failure-recovered",
      "passed": true
    }
  ],
  "limits": [
    "Authenticated school UI covered separately by action authorization tests; this run exercises its transactional queue primitive.",
    "No AI model or RAG is used by this deterministic journal workflow.",
    "No measured customer savings or production rollout is established."
  ]
}
