{
  "checker": {
    "claims": [
      {
        "claim": "jinja2 renders a template from stdin when data is piped in",
        "command": "<guest-path> <guest-path> - --format json -D foo=stdin",
        "evidence": "Hello World! Answer=42 stdin\n",
        "expected": "Hello World! Answer=42 stdin",
        "input": "piped JSON data with template from file",
        "kind": "claim",
        "outcome": "Real input produced the expected result: Hello World! Answer=42 stdin",
        "returncode": 0,
        "source": "Read data from files or stdin",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "jinja2 accepts inline variables defined with -D",
        "command": "<guest-path> <guest-path> <guest-path> --format json -D foo=bar -D answer=42",
        "evidence": "Hello World! Answer=42 bar\n",
        "expected": "Hello World! Answer=42 bar",
        "input": "template.j2 data.json -D foo=bar",
        "kind": "claim",
        "outcome": "Real input produced the expected result: Hello World! Answer=42 bar",
        "returncode": 0,
        "source": "Define variables inline with `-D key=value`",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "jinja2 loads custom filters from a module given with -F",
        "command": "<guest-path> <guest-path> <guest-path> -F myfilters",
        "evidence": "dlroW WORLD!\n",
        "expected": "dlroW WORLD!",
        "input": "filt.j2 with reverse and shout filters from myfilters.py",
        "kind": "claim",
        "outcome": "Real input produced the expected result: dlroW WORLD!",
        "returncode": 0,
        "source": "$ jinja2 template.j2 data.json -F myfilters",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected: jinja2cli/cli.py (main() renders one template per invocation from argv/stdin and exits), pyproject.toml [project.scripts] jinja2 = jinja2cli:main, docs/cli.md. No cron, scheduler, loop, webhook, --once or --now option exists; the tool runs once per invocation and is run by the user or by external schedulers.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected: jinja2cli/cli.py (main() renders one template per invocation from argv/stdin and exits), pyproject.toml [project.scripts] jinja2 = jinja2cli:main, docs/cli.md. No cron, scheduler, loop, webhook, --once or --now option exists; the tool runs once per invocation and is run by the user or by external schedulers.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "<guest-path>",
        "<guest-path>",
        "--format",
        "json",
        "-D",
        "foo=bar",
        "-D",
        "answer=42"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "stdout": "Hello World! Answer=42 bar",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Render a template from a data file in one command, per the quickstart",
        "command": "<guest-path> <guest-path> <guest-path> --format json -D foo=quick",
        "deferred": false,
        "evidence": "Hello World! Answer=42 quick",
        "expected": "Hello World! Answer=42 quick",
        "input": "template.j2 data.json --format json -D foo=quick",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "docs/quickstart.md",
        "verdict": "yes"
      },
      {
        "claim": "Write rendered output to a file with -o (silent on stdout)",
        "command": "<guest-path> <guest-path> <guest-path> --format json -D foo=file -o <guest-path>",
        "deferred": false,
        "evidence": "Hello World! Answer=42 file\n",
        "expected": "file contains Hello World! Answer=42 file",
        "input": "template.j2 data.json -o out/example.txt -D foo=file",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "docs/cli.md",
        "verdict": "yes"
      },
      {
        "claim": "Repository test suite passes",
        "command": "<guest-path> -v -p no:cacheprovider",
        "deferred": false,
        "evidence": "                  [ 88%]\ntests/test_parse_qs.py::test_parse_qs[foo=-qs_data1] PASSED              [ 90%]\ntests/test_parse_qs.py::test_parse_qs[foo=bar-qs_data2] PASSED           [ 92%]\ntests/test_parse_qs.py::test_parse_qs[foo=bar&ham=spam-qs_data3] PASSED  [ 94%]\ntests/test_parse_qs.py::test_parse_qs[foo.bar=ham&ham.spam=eggs-qs_data4] PASSED [ 96%]\ntests/test_parse_qs.py::test_parse_qs[foo=bar%20ham%20spam-qs_data5] PASSED [ 98%]\ntests/test_parse_qs.py::test_parse_qs[foo=bar%2Eham%2Espam-qs_data6] PASSED [100%]\n\n======================== 49 passed, 4 skipped in 1.18s =========================",
        "expected": "49 passed, 4 skipped",
        "input": "pytest -v run from the checkout",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "Justfile (test recipe: uv run pytest -v)",
        "verdict": "yes"
      },
      {
        "claim": "Run the bats integration tests",
        "command": "",
        "deferred": false,
        "evidence": "bats is not installed in the guest, so the bats suite was not run; the pytest suite was run instead. Not attempted: sudo apt-get -o DPkg::Lock::Timeout=300 install bats.",
        "expected": "documented command completes successfully",
        "input": "",
        "kind": "example",
        "outcome": "bats is not installed in the guest, so the bats suite was not run; the pytest suite was run instead. Not attempted: sudo apt-get -o DPkg::Lock::Timeout=300 install bats.",
        "source": "Justfile (bats recipe: bats -T tests/bats)",
        "verdict": "blocked"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "Installed from the local pinned checkout (pip install <guest-path>) instead of PyPI pip install jinja2-cli, so the tested code is exactly the pinned source.",
    "Installed pytest into the venv because the Justfile test recipe uses it (uv was not installed; pytest was run directly instead of uv run pytest).",
    "The bats integration suite (Justfile bats recipe) was not run: bats is not installed in the guest. Not attempted: sudo apt-get -o DPkg::Lock::Timeout=300 install bats.",
    "Sample template and data were created in <guest-path> because the checkout has no sample files. A cached demo output file from one manual run was removed before replay.",
    "No uv installed; README's uv tool install path was not used."
  ],
  "fault_owner": null,
  "main_blocker": null,
  "operation": "Render a Jinja2 template with data from a file or stdin using the jinja2 command (pinned jinja2-cli 1.0.1 from the checkout)",
  "operation_scope": "Ubuntu 24.04 guest, Python 3.12.3, venv at <guest-path> with jinja2 3.1.6 and the checkout installed. Built-in JSON format only; optional yaml/xml/hjson/json5 extras not installed. No browser, network service or credentials needed.",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "python3 -m venv <guest-path>",
    "<guest-path> install <guest-path>   (README: pip install jinja2-cli)",
    "<guest-path> template.j2 data.json --format json -D foo=bar -D answer=42",
    "cat data.json | <guest-path> template.j2 - --format json -D foo=stdin",
    "<guest-path> filt.j2 data.json -F myfilters   (README custom filters example)",
    "<guest-path> template.j2 data.json --format json -D foo=file -o <guest-path>",
    "<guest-path> install pytest; <guest-path> -v -p no:cacheprovider   (Justfile test recipe)"
  ],
  "stuck_step": null,
  "suggested_fix": "None required for the tested CLI operations. Optional: install bats and run the bats suite to cover integration tests."
}
