{
  "version": 1,
  "evaluatedAt": "2026-08-03",
  "evaluationType": "synthetic-control-path-check",
  "systemUnderTest": "AI Guides Factory task-ledger safeguards",
  "dataClassification": "synthetic, public-safe, no guide or personal data",
  "summary": {
    "scenarios": 3,
    "passed": 3,
    "failed": 0
  },
  "scenarios": [
    {
      "id": "dead-worker-reaping",
      "setup": "Register one synthetic worker with a process identifier that does not exist.",
      "action": "Run the ledger reaper and inspect the task state.",
      "expected": "The task is marked failed and no running slot remains occupied.",
      "observed": "The task was marked failed with a reaped status and the running count returned to zero.",
      "result": "pass"
    },
    {
      "id": "concurrency-limit",
      "setup": "Configure one allowed concurrent task and hold that slot with a live process.",
      "action": "Attempt to acquire a second slot with a 150 millisecond deadline.",
      "expected": "The second acquisition is blocked and exits after the deadline.",
      "observed": "The second acquisition timed out and returned the documented concurrency-timeout exit code.",
      "result": "pass"
    },
    {
      "id": "total-task-limit",
      "setup": "Configure a one-task total budget and complete the first registered task.",
      "action": "Attempt to register a second task.",
      "expected": "The second registration is refused even though the first task is complete.",
      "observed": "The ledger refused the second task and returned the documented total-cap exit code.",
      "result": "pass"
    }
  ],
  "limitations": [
    "This is a three-scenario synthetic safeguard check, not a production load test.",
    "It evaluates task-ledger control paths, not research accuracy, writing quality, reviewer judgement, or end-to-end bundle quality.",
    "It does not establish external usage, reliability at scale, or business impact."
  ]
}
