{
  "version": "educational-harness-round.v1",
  "frozen_at_utc": "2026-11-05T07:28:14.750567+00:00",
  "label": "demo de arnés determinista con traza sintética",
  "dataset_seed": null,
  "seed_reason": "literal fixed JSON dataset, no random generator",
  "raw_inputs": [
    {
      "id": "reg-001-timeout-como-respuesta",
      "role": "regression",
      "input": {
        "tool": "catalogo.buscar",
        "status": "error",
        "error_code": "TIMEOUT",
        "content": "Tiempo de espera agotado al consultar el catálogo"
      },
      "expected": {
        "ok": false,
        "error_code": "TIMEOUT",
        "message": "Tiempo de espera agotado al consultar el catálogo"
      }
    },
    {
      "id": "ctl-001-sin-resultados-es-valido",
      "role": "control",
      "input": {
        "tool": "catalogo.buscar",
        "status": "ok",
        "content": "Sin resultados para «Atlas de nubes de cobre»"
      },
      "expected": {
        "ok": true,
        "answer": "Sin resultados para «Atlas de nubes de cobre»"
      }
    },
    {
      "id": "ctl-002-titulo-con-palabra-error",
      "role": "control",
      "input": {
        "tool": "catalogo.buscar",
        "status": "ok",
        "content": "Disponible: «Crónica de un error feliz», 2 ejemplares en sala B"
      },
      "expected": {
        "ok": true,
        "answer": "Disponible: «Crónica de un error feliz», 2 ejemplares en sala B"
      }
    },
    {
      "id": "res-001-servicio-no-disponible",
      "role": "reserved",
      "input": {
        "tool": "catalogo.buscar",
        "status": "unavailable",
        "error_code": "SERVICE_UNAVAILABLE",
        "content": "Catálogo en mantenimiento programado"
      },
      "expected": {
        "ok": false,
        "error_code": "SERVICE_UNAVAILABLE",
        "message": "Catálogo en mantenimiento programado"
      }
    }
  ],
  "case_ids": [
    "reg-001-timeout-como-respuesta",
    "ctl-001-sin-resultados-es-valido",
    "ctl-002-titulo-con-palabra-error",
    "res-001-servicio-no-disponible"
  ],
  "reserved_case_ids": [
    "res-001-servicio-no-disponible"
  ],
  "fixed_before_execution": true,
  "rounds": 1,
  "steps": [
    "freeze input/code hashes",
    "run before once against all four cases",
    "run fixed once against identical cases",
    "derive table and result from captured output"
  ],
  "author_model": {
    "requested_model": "claude-opus-5-5",
    "reported_models": [
      "claude-opus-5-5"
    ],
    "is_error": false,
    "transport": "claude CLI OAuth sanitized environment",
    "raw_receipt_private": "private/author-raw.json",
    "raw_receipt_sha256": "33e350ccf4841e11308b3f6fa2b9c68b1c72f8a324aa24b1e2972431449aa83a",
    "total_cost_usd_declared": 0.3232778,
    "cost_caution": "CLI declared cost, not remaining balance or proof of additional charge",
    "role": "educational author; not evaluated agent",
    "api_exhaustion_evidence": "work/2026-11-04/orquestacion/claude-api-saldo-agotado.json"
  },
  "evaluated_model": null,
  "runtime": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]",
  "python_executable": "/mnt/datos/PROYECTOS/ai-informator/.venv/bin/python",
  "frozen_sha256": {
    "cases.json": "ef2fd52724aa81b3c25d5a1df74f685beefa4f3816b65367c094c87bd24f6e13",
    "trace.json": "181545c0230bcd296e27eeba425bc6a6f14c342d3f24db29641c903d1329b2fe",
    "before.py": "478ad7d456fa746fbb2e5e9d773072c39f185c8e347a59ff2fcbb18ea71a49d2",
    "fixed.py": "b3c460c1d67b13794526c5be52a23c46e3a227ca3787ba8fb00bd7f9b16c355f",
    "test_harness.py": "139dea30314c9abcb3c37676da23b048ac31d921a2d8b0fcd3898c88a2619c1d",
    "design.json": "d9f672711cccddf0f16228019ebcdd81a01629371a4147b2cfe14ae67a361ffd"
  },
  "cautions": [
    "Synthetic tool fixture, no captured LLM run",
    "No NVIDIA software, benchmark, API, or GPU executed",
    "Reserved case authored in advance; not tuned after observing output",
    "Four cases cannot establish general agent reliability",
    "No editorial QA is claimed here"
  ]
}
