{
  "run_id": "TayHCode--homelab-kit-claude-haiku-5-5-1792642256136417341",
  "checker": {
    "claims": [
      {
        "claim": "The kit generates a REBUILD.md host index and leaves unknown facts as TODOs; check summarises the TODO count",
        "command": "uv run --no-project --python 3.12 -- python -m homelab_kit --repo ../my-lab check",
        "evidence": "34 items to fill in (run fill)\nKeep this repository private; use check --privacy for an explicit gh lookup\n",
        "expected": "TODO count summary",
        "input": "check on the lab repo after collect",
        "kind": "claim",
        "outcome": "Real input produced the expected result: 34 items to fill in (run fill)",
        "returncode": 0,
        "source": "The kit generates a REBUILD.md host index and leaves unknown facts as TODOs.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "collect --dry-run makes no connections and writes nothing",
        "command": "uv run --no-project --python 3.12 -- python -m homelab_kit --repo ../my-lab collect --dry-run",
        "evidence": "No connections or writes; add --verbose for every planned command and file\n",
        "expected": "No connections or writes message",
        "input": "collect --dry-run on the lab repo",
        "kind": "claim",
        "outcome": "Real input produced the expected result: No connections or writes",
        "returncode": 0,
        "source": "`--dry-run` prints a compact host summary, makes no connections and writes nothing;",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Inspected README.md (Limits: 'It installs no background services, schedules or auto-update tasks. Run it manually.'), pyproject.toml entry points and homelab_kit/*.py. No scheduler, loop, --once/--now, or webhook code exists; the only cron references are capture of the user's crontab as read-only text. Product runs only when the operator invokes a command.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Inspected README.md (Limits: 'It installs no background services, schedules or auto-update tasks. Run it manually.'), pyproject.toml entry points and homelab_kit/*.py. No scheduler, loop, --once/--now, or webhook code exists; the only cron references are capture of the user's crontab as read-only text. Product runs only when the operator invokes a command.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "uv",
        "run",
        "--no-project",
        "--python",
        "3.12",
        "--",
        "python",
        "-m",
        "homelab_kit",
        "--repo",
        "../my-lab",
        "check"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "stdout": "Capture privacy:\nWARNING: captures may contain personal details; review these files before git add or committing.\nhosts/example-control/observed/commands/addresses.txt: WARNING: review IP addresses, MAC addresses before committing\nhosts/example-control/observed/commands/applications.txt: WARNING: review hostnames before committing\nhosts/example-control/observed/commands/block-devices.txt: WARNING: review hostnames before committing\nhosts/example-control/observed/commands/cpu.txt: WARNING: review hostnames before committing\nhosts/example-control/observed/commands/hostname.txt: WARNING: review hostnames before committing\nhosts/example-control/observed/commands/hosts.txt: WARNING: review IP addresses, hostnames, tailnet/host lists before committing\nhosts/example-control/observed/commands/listeners.txt: WARNING: review hostnames before committing\nhosts/example-control/observed/commands/memory.txt: WARNING: review hostnames before committing\nhosts/example-control/observed/commands/routes.txt: WARNING: review IP addresses, MAC addresses before committing\nhosts/example-control/observed/commands/services.txt: WARNING: review hostnames, account names (current user), launchd labels before co\n[excerpt truncated]",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Documented offline test suite passes on Python 3.11",
        "command": "uv run --no-project --python 3.11 -- python -m unittest discover -s tests -q",
        "deferred": false,
        "evidence": " before collect\nWARNING: local file /etc/sample.conf does not exist; host added, check the path before collect\nWARNING: local file /etc/shadow does not exist; host added, check the path before collect\nWARNING: local file /etc/missing.conf does not exist; host added, check the path before collect\nWARNING: local file /etc/sample.conf does not exist; host added, check the path before collect\nWARNING: local file C:/example/app.conf does not exist; host added, check the path before collect\n----------------------------------------------------------------------\nRan 168 tests in 5.241s\n\nOK (skipped=1)",
        "expected": "exit 0, all tests pass",
        "input": "tests directory",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md (Testing, uv run --no-project --python 3.11 -- python -m unittest discover -s tests -q)",
        "verdict": "yes"
      },
      {
        "claim": "Documented offline test suite passes on Python 3.14",
        "command": "uv run --no-project --python 3.14 -- python -m unittest discover -s tests -q",
        "deferred": false,
        "evidence": " before collect\nWARNING: local file /etc/sample.conf does not exist; host added, check the path before collect\nWARNING: local file /etc/shadow does not exist; host added, check the path before collect\nWARNING: local file /etc/missing.conf does not exist; host added, check the path before collect\nWARNING: local file /etc/sample.conf does not exist; host added, check the path before collect\nWARNING: local file C:/example/app.conf does not exist; host added, check the path before collect\n----------------------------------------------------------------------\nRan 168 tests in 5.722s\n\nOK (skipped=1)",
        "expected": "exit 0, all tests pass",
        "input": "tests directory",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md (Testing, uv run --no-project --python 3.14 -- python -m unittest discover -s tests -q)",
        "verdict": "yes"
      },
      {
        "claim": "fill prints the agent brief for the lab repo",
        "command": "uv run --no-project --python 3.12 -- python -m homelab_kit --repo ../my-lab fill",
        "deferred": false,
        "evidence": "- `hosts/example-control/observed/commands/cpu.txt`\n  - `hosts/example-control/observed/commands/hostname.txt`\n  - `hosts/example-control/observed/commands/hosts.txt`\n  - `hosts/example-control/observed/commands/kernel.txt`\n  - `hosts/example-control/observed/commands/listeners.txt`\n  - `hosts/example-control/observed/commands/memory.txt`\n  - `hosts/example-control/observed/commands/os-release.txt`\n  - `hosts/example-control/observed/commands/routes.txt`\n  - `hosts/example-control/observed/commands/services.txt`\n\nRun `python3 -m homelab_kit --repo PATH check` (Windows: `py -3 -m homelab_kit`).",
        "expected": "brief header printed",
        "input": "fill --repo ../my-lab",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md (Fill with your own agent)",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
