{
  "checker": {
    "claims": [
      {
        "claim": "ownership errors are refused at compile time",
        "command": "<guest-path> run",
        "evidence": "value was moved before this use\n  --> <guest-path>\n   |\n11 |     archive = move(prices)\n   |               ------------ 'prices' moved here\n  help: re-initialize 'prices' before this point, or borrow instead of moving\n",
        "expected": "use-after-move diagnostic and nonzero exit",
        "input": "project main.py that prints a list after move()",
        "kind": "claim",
        "outcome": "Real input produced the expected result: value was moved before this use",
        "returncode": 1,
        "source": "Aliasing a non-Copy value without `move()` (a compile-time ownership error)",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "project scaffold runs under the native backend",
        "command": "<guest-path> run",
        "evidence": "Hello from myapp!\n",
        "expected": "Hello from myapp!",
        "input": "myapp project from serp new",
        "kind": "claim",
        "outcome": "Real input produced the expected result: Hello from myapp!",
        "returncode": 0,
        "source": "serp run                           # build (LLVM, debug) + run",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected (README quick start, serp CLI commands new/check/build/run, tools/*.py CI scripts). Serpentine is a one-shot compiler/runner with no cron, scheduler, loop, webhook or --once product mode; the only 'schedule' hits are asyncio task scheduling inside the runtime prelude.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected (README quick start, serp CLI commands new/check/build/run, tools/*.py CI scripts). Serpentine is a one-shot compiler/runner with no cron, scheduler, loop, webhook or --once product mode; the only 'schedule' hits are asyncio task scheduling inside the runtime prelude.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "new",
        "probeapp2"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "stdout": "serp: created project 'probeapp2' at <guest-path>\nserp: created .venv with serpentine-shim installed\nserp: get started with `serp run` (or `python main.py`) in <guest-path>",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "run the accept corpus locally",
        "command": "<guest-path> tools/run_accept_tests.py",
        "deferred": false,
        "evidence": "tests/accept/105_finally_loop_jumps.py\nok   tests/accept/106_try_assigned_locals.py\nok   tests/accept/109_lambda_none.py\nok   tests/accept/110_multi_comprehensions.py\nok   tests/accept/111_noncopy_captures.py\nok   tests/accept/112_format_specs.py\nok   tests/accept/034_two_module/main.py\nok   tests/accept/059_package_import/main.py\nok   tests/accept/075_cross_module_inherit/main.py\nok   tests/accept/077_classmethod_models/main.py\nok   tests/accept/091_dup_class_names/main.py\nok   tests/accept/107_class_attr_bindings/main.py\nok   tests/accept/108_plain_import/main.py\n\n112/112 accept tests passed",
        "expected": "all accept tests pass",
        "input": "tests/accept programs",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "tests/README.md",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "Ubuntu 24.04 is externally managed, so pip was run inside a venv at <guest-path> instead of system-wide.",
    "Installed serpentine-lang 0.7.4 from PyPI rather than building ./shim and ./compiler from the checkout. The workspace is not a git checkout and I did not run the git fetch of pinned commit fe585a98f4ef6c72578b98da4fe3e73782e0440e, so the provided snapshot was used as-is.",
    "serp build printed a warning that LLVM bitcode inlining was unavailable (LLVM 23 producer vs LLVM 22 reader) and linked the runtime as a plain library; the binary still built and matched CPython output.",
    "The first validation attempts were blocked by the checker for claims that passed a .py file argument; the claim was moved to a serp project (moveproj) and run with the documented 'serp run' form. The moveproj project is hand-made setup, not a checker-generated output.",
    "The accept corpus was run with the PyPI-installed serp, not the checkout's compiler."
  ],
  "fault_owner": null,
  "main_blocker": null,
  "operation": "Install Serpentine (serp CLI) and compile/run a Python program natively, plus reject a use-after-move ownership error at compile time",
  "operation_scope": "Linux x86_64, Ubuntu 24.04, Python 3.12 venv with serpentine-lang 0.7.4 from PyPI; rustc and cc present; no browser needed",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "python3 -m venv <guest-path> && <guest-path> install serpentine-lang",
    "serp new myapp --git",
    "serp run (in myapp) -> Hello from myapp!",
    "serp build main.py -o <guest-path> (native binary)",
    "README Ref[list[float]] mean example: serp run / serp build -> mean 21.25  max   23.0 from both CPython and native binary",
    "README ownership example in a project (serp new moveproj): serp run -> use-after-move error, exit 1",
    "python tools/run_accept_tests.py (tests/README.md) -> 112/112 accept tests passed"
  ],
  "stuck_step": null,
  "suggested_fix": null
}
