{
  "run_id": "aulasneo--tutor-contrib-panorama-claude-haiku-5-5-1793136391852389588",
  "checker": {
    "claims": [
      {
        "claim": "Default mode is DEMO",
        "command": "tutor config printvalue PANORAMA_MODE",
        "evidence": "DEMO\n",
        "expected": "DEMO",
        "input": "tutor config printvalue PANORAMA_MODE",
        "kind": "claim",
        "outcome": "Real input produced the expected result: DEMO",
        "returncode": 0,
        "source": "Since 16.3.0, the default mode of Panorama is `DEMO`.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "MFE port default is 2100",
        "command": "tutor config printvalue PANORAMA_MFE_PORT",
        "evidence": "2100\n",
        "expected": "2100",
        "input": "tutor config printvalue PANORAMA_MFE_PORT",
        "kind": "claim",
        "outcome": "Real input produced the expected result: 2100",
        "returncode": 0,
        "source": "| `PANORAMA_MFE_PORT` | `2100` | Internal port of the Panorama MFE |",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Base prefix default is openedx",
        "command": "tutor config printvalue PANORAMA_BASE_PREFIX",
        "evidence": "openedx\n",
        "expected": "openedx",
        "input": "tutor config printvalue PANORAMA_BASE_PREFIX",
        "kind": "claim",
        "outcome": "Real input produced the expected result: openedx",
        "returncode": 0,
        "source": "| `PANORAMA_BASE_PREFIX` | `openedx` | Directory inside the `PANORAMA_BUCKET` to store the raw data |",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Hourly schedule at a random minute",
        "command": "tutor config printvalue PANORAMA_CRONTAB",
        "evidence": "54 * * * *\n",
        "expected": "54 * * * *",
        "input": "tutor config printvalue PANORAMA_CRONTAB",
        "kind": "claim",
        "outcome": "Real input produced the expected result: 54 * * * *",
        "returncode": 0,
        "source": "Hourly dataset updates at a random minute",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled extraction cron line is rendered for non-DEMO modes",
        "command": "tutor config save",
        "evidence": "Configuration saved to <guest-path>\nEnvironment generated in <guest-path>",
        "expected": "Environment generated with the cron line",
        "input": "TUTOR_ROOT=<guest-path> with PANORAMA_MODE=CUSTOM",
        "kind": "cycle",
        "method": "rendered crontab in CUSTOM mode via tutor config save (no ELT run; no AWS/MySQL available)",
        "outcome": "Triggered one cycle by hand (rendered crontab in CUSTOM mode via tutor config save (no ELT run; no AWS/MySQL available); normal trigger: PANORAMA_CRONTAB hourly cron): Configuration saved to <guest-path>\nEnvironment generated in <guest-path>",
        "returncode": 0,
        "schedule": "PANORAMA_CRONTAB hourly cron",
        "source": "tutorpanorama/templates/panorama/apps/panorama-elt/crontab",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "tutor",
        "config",
        "printvalue",
        "PANORAMA_MODE"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "stdout": "DEMO",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Unit contract tests pass",
        "command": "make test-unit PYTHON=<guest-path>",
        "deferred": false,
        "evidence": "<guest-path> -m pytest tests\n============================= test session starts ==============================\nplatform linux -- Python 3.12.3, pytest-9.1.1, pluggy-1.7.0\nrootdir: <guest-path>\nconfigfile: pyproject.toml\nplugins: platformdirs-4.13.6\ncollected 28 items\n\ntests/test_fluentbit.py ssss                                             [ 14%]\ntests/test_verawood.py ........................                          [100%]\n\n======================== 24 passed, 4 skipped in 1.96s =========================",
        "expected": "pytest reports no failures",
        "input": "make test-unit PYTHON=<guest-path>",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "Makefile test-unit",
        "verdict": "yes"
      },
      {
        "claim": "Navigation tests pass on generated MFE config",
        "command": "make test-navigation PYTHON=<guest-path>",
        "deferred": false,
        "evidence": " imports have no duplicate local bindings\n  ---\n  duration_ms: 8.072928\n  type: 'test'\n  ...\n# Subtest: generated frontend-base configuration has no duplicate local bindings\nok 4 - generated frontend-base configuration has no duplicate local bindings\n  ---\n  duration_ms: 8.606376\n  type: 'test'\n  ...\n1..4\n# tests 4\n# suites 0\n# pass 4\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 5226.247804\nnpm warn deprecated whatwg-encoding@3.1.1: Use @exodus/bytes instead for a more spec-conformant and faster implementation\n\u26a0\ufe0f  Failed to enable plugin 'indigo': plugin 'indigo' is not installed.",
        "expected": "node tests pass",
        "input": "make test-navigation PYTHON=<guest-path>",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "Makefile test-navigation",
        "verdict": "yes"
      },
      {
        "claim": "Formatting check passes",
        "command": "make test-format PYTHON=<guest-path>",
        "deferred": false,
        "evidence": "black --check --diff --exclude templates ./tutorpanorama\nAll done! \u2728 \ud83c\udf70 \u2728\n3 files would be left unchanged.",
        "expected": "black leaves files unchanged",
        "input": "make test-format PYTHON=<guest-path>",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "Makefile test-format",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
