{
  "run_id": "TayHCode--homelab-kit-claude-haiku-5-5-1792647304661373885",
  "date": "2026-10-22T05:41:26.242497+00:00",
  "repo": "TayHCode/homelab-kit",
  "kind": "repo",
  "source": "https://github.com/TayHCode/homelab-kit",
  "commit": "9bf395d7cb0279a666e03b634bfc1f864dbba32e",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-1924d8f529c6fc4500abb29916f5c9ac942027957e7b82d725d5610040cd3b4a",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 308.21582975704223,
  "total_s": 381.5810720920563,
  "steps": [
    "cd C:\\coldpass\\workspace; Get-ChildItem -Force | Select-Object Name,Length | Format-Table; Get-Content README.md -TotalCount 200; C:\\coldpass\\python\\python.exe --version; git --version",
    "cd C:\\coldpass\\workspace; (Get-Content README.md -Raw) -split \"`n\" | Select-Object -Skip 150 | Out-String -Width 400; Get-ChildItem -Force .coldpass, homelab_kit, tests | Format-Table Name,Length -AutoSize | Out-String",
    "cd C:\\coldpass\\workspace; C:\\coldpass\\python\\python.exe -m venv C:\\coldpass\\venv; if ($LASTEXITCODE -ne 0) {\"venv failed $LASTEXITCODE\"}; C:\\coldpass\\venv\\Scripts\\python.exe --version; C:\\coldpass\\venv\\Scripts\\python.exe -m pip install . 2>&1 | Select-Object -Last 15; C:\\coldpass\\venv\\Scripts\\homelab-kit.exe --version 2>&1",
    "New-Item -ItemType Directory -Force C:\\coldpass\\out | Out-Null; cd C:\\coldpass\\out; $h='C:\\coldpass\\venv\\Scripts\\homelab-kit.exe'; & $h demo demo-lab 2>&1; \"rc=$LASTEXITCODE\"; & $h --repo demo-lab check 2>&1; \"rc=$LASTEXITCODE\"; & $h --repo demo-lab collect --dry-run 2>&1; \"rc=$LASTEXITCODE\"; & $h --repo demo-lab fill 2>&1 | Select-Object -First 30; \"rc=$LASTEXITCODE\"; Get-ChildItem C:\\coldpass\\out\\demo-lab | Select-Object Name | Out-String",
    "cd C:\\coldpass\\out; $h='C:\\coldpass\\venv\\Scripts\\homelab-kit.exe'; & $h init my-lab 2>&1; \"rc=$LASTEXITCODE\"; & $h --repo my-lab add-host example-control --local 2>&1; \"rc=$LASTEXITCODE\"; & $h --repo my-lab collect --dry-run 2>&1; \"rc=$LASTEXITCODE\"; & $h --repo my-lab collect 2>&1; \"rc=$LASTEXITCODE\"; & $h --repo my-lab fill 2>&1 | Select-Object -First 40; \"rc=$LASTEXITCODE\"; & $h --repo my-lab check 2>&1; \"rc=$LASTEXITCODE\"",
    "cd C:\\coldpass\\workspace; Select-String -Path homelab_kit\\*.py -Pattern 'cron|schedul|--once|--now|loop|webhook|daemon' -CaseSensitive:$false | Select-Object -First 15 | ForEach-Object { $_.Filename + ':' + $_.LineNumber + ': ' + $_.Line.Trim() }; Write-Output '---'; C:\\coldpass\\venv\\Scripts\\homelab-kit.exe --repo C:\\coldpass\\out\\my-lab fill --host example-control 2>&1 | Select-String 'observed' | Select-Object -First 8 | ForEach-Object { $_.Line }; Write-Output '---'; Get-Content C:\\coldpass\\out\\my-lab\\hosts\\example-control\\observed\\commands\\os-release.txt -TotalCount 3",
    "cd C:\\coldpass\\workspace; C:\\coldpass\\venv\\Scripts\\python.exe -m unittest discover -s tests -q 2>&1 | Select-Object -Last 8; \"rc=$LASTEXITCODE\"",
    "cd C:\\coldpass\\workspace; C:\\coldpass\\venv\\Scripts\\python.exe -m unittest discover -s tests -q 2>&1 | Select-String -Pattern '^(ERROR|FAIL):|^[A-Za-z]*Error|Error:' | Select-Object -First 30 | ForEach-Object { $_.Line }",
    "cd C:\\coldpass\\workspace; New-Item -ItemType Directory -Force .coldpass | Out-Null\n$enc = New-Object System.Text.UTF8Encoding($false)\n$exe = 'C:\\\\coldpass\\\\venv\\\\Scripts\\\\homelab-kit.exe'\n$probe = @\"\n{\n  \"kind\": \"cli\",\n  \"argv\": [\"$exe\", \"--repo\", \"C:\\\\\\\\coldpass\\\\\\\\out\\\\\\\\my-lab\", \"collect\", \"--host\", \"example-control\"],\n  \"cwd\": \"C:\\\\\\\\coldpass\\\\\\\\out\",\n  \"expected_text\": \"example-control: partial\"\n}\n\"@\n$claims = @\"\n[\n  {\n    \"kind\": \"claim\",\n    \"claim\": \"Local mode collects the control machine with the OS collector\",\n    \"source\": \"Local mode uses the OS collector on the control machine.\",\n    \"input\": \"collect --dry-run on my-lab after add-host example-control --local\",\n    \"expected\": \"dry-run lists example-control as a local host\",\n    \"probe_kind\": \"cli\",\n    \"argv\": [\"$exe\", \"--repo\", \"C:\\\\\\\\coldpass\\\\\\\\out\\\\\\\\my-lab\", \"collect\", \"--dry-run\"],\n    \"cwd\": \"C:\\\\\\\\coldpass\\\\\\\\out\",\n    \"expected_text\": \"Host example-control (local)\"\n  },\n  {\n    \"kind\": \"claim\",\n    \"claim\": \"Unknown facts are left as TODOs and counted by check\",\n    \"source\": \"The kit generates a REBUILD.md host index and leaves unknown facts as TODOs.\",\n    \"input\": \"check on my-lab\",\n    \"expected\": \"check reports items still to fill in\",\n    \"probe_kind\": \"cli\",\n    \"argv\": [\"$exe\", \"--repo\", \"C:\\\\\\\\coldpass\\\\\\\\out\\\\\\\\my-lab\", \"check\"],\n    \"cwd\": \"C:\\\\\\\\coldpass\\\\\\\\out\",\n    \"expected_text\": \"items to fill in (run fill)\"\n  }\n]\n\"@\n$cycles = @\"\n{\n  \"detected\": false,\n  \"reason\": \"Entry points inspected: no product scheduler. A grep of homelab_kit/*.py for cron, schedul, --once, --now, loop, webhook and daemon found only the user crontab and Windows scheduled-task inventory commands in collect.py and platforms.py. README Limits says: It installs no background services, schedules or auto-update tasks. Run it manually. The product runs only when a user invokes a command.\",\n  \"checks\": []\n}\n\"@\n$examples = @\"\n[\n  {\n    \"kind\": \"example\",\n    \"claim\": \"Demo lab check reports capture privacy status without connecting to machines\",\n    \"source\": \"README.md ## Quickstart (Try a safe example without connecting to any machine)\",\n    \"input\": \"--repo demo-lab check\",\n    \"expected\": \"prints capture privacy summary\",\n    \"argv\": [\"$exe\", \"--repo\", \"C:\\\\\\\\coldpass\\\\\\\\out\\\\\\\\demo-lab\", \"check\"],\n    \"cwd\": \"C:\\\\\\\\coldpass\\\\\\\\out\",\n    \"expected_text\": \"No privacy patterns found\"\n  },\n  {\n    \"kind\": \"example\",\n    \"claim\": \"Dry-run collect makes no connections or writes\",\n    \"source\": \"README.md ## Quickstart (Try a safe example without connecting to any machine)\",\n    \"input\": \"--repo demo-lab collect --dry-run\",\n    \"expected\": \"lists hosts and states no connections or writes\",\n    \"argv\": [\"$exe\", \"--repo\", \"C:\\\\\\\\coldpass\\\\\\\\out\\\\\\\\demo-lab\", \"collect\", \"--dry-run\"],\n    \"cwd\": \"C:\\\\\\\\coldpass\\\\\\\\out\",\n    \"expected_text\": \"No connections or writes\"\n  },\n  {\n    \"kind\": \"example\",\n    \"claim\": \"fill prints the agent brief for the lab\",\n    \"source\": \"README.md ## Fill with your own agent\",\n    \"input\": \"--repo my-lab fill\",\n    \"expected\": \"prints the fill-homelab-docs brief\",\n    \"argv\": [\"$exe\", \"--repo\", \"C:\\\\\\\\coldpass\\\\\\\\out\\\\\\\\my-lab\", \"fill\"],\n    \"cwd\": \"C:\\\\\\\\coldpass\\\\\\\\out\",\n    \"expected_text\": \"Fill the owner's private homelab docs\"\n  },\n  {\n    \"kind\": \"example\",\n    \"claim\": \"Offline unit test suite passes on the development Python\",\n    \"source\": \"README.md ## Development\",\n    \"reason\": \"Ran python -m unittest discover -s tests -q with the VM Python 3.14.0 venv from the checkout: FAILED (failures=1, errors=7, skipped=1). Failures are POSIX-only: os.mkfifo, os.killpg, umask 0o077 expectation (511 != 448), /etc/ and unix-style paths, and filename characters Windows rejects. Not counted as passing; the product's Windows local collection was exercised instead.\"\n  }\n]\n\"@\n[IO.File]::WriteAllText(\"$PWD\\.coldpass\\probe.json\", $probe, $enc)\n[IO.File]::WriteAllText(\"$PWD\\.coldpass\\claims.json\", $claims, $enc)\n[IO.File]::WriteAllText(\"$PWD\\.coldpass\\cycles.json\", $cycles, $enc)\n[IO.File]::WriteAllText(\"$PWD\\.coldpass\\examples.json\", $examples, $enc)\nforeach ($f in 'probe','claims','cycles','examples') { $o = Get-Content \"$PWD\\.coldpass\\$f.json\" -Raw | ConvertFrom-Json; \"$f ok\" }\nGet-Content .coldpass\\probe.json",
    "cd C:\\coldpass\\workspace; $enc = New-Object System.Text.UTF8Encoding($false)\n$exe = 'C:\\coldpass\\venv\\Scripts\\homelab-kit.exe'; $lab='C:\\coldpass\\out\\my-lab'; $demo='C:\\coldpass\\out\\demo-lab'; $out='C:\\coldpass\\out'\n$probe = [ordered]@{ kind='cli'; argv=@($exe,'--repo',$lab,'collect','--host','example-control'); cwd=$out; expected_text='example-control: partial' }\n$claims = @(\n [ordered]@{ kind='claim'; claim='Local mode collects the control machine with the OS collector'; source='Local mode uses the OS collector on the control machine.'; input='collect --dry-run on my-lab after add-host example-control --local'; expected='dry-run lists example-control as a local host'; probe_kind='cli'; argv=@($exe,'--repo',$lab,'collect','--dry-run'); cwd=$out; expected_text='Host example-control (local)' },\n [ordered]@{ kind='claim'; claim='Unknown facts are left as TODOs and counted by check'; source='The kit generates a REBUILD.md host index and leaves unknown facts as TODOs.'; input='check on my-lab'; expected='check reports items still to fill in'; probe_kind='cli'; argv=@($exe,'--repo',$lab,'check'); cwd=$out; expected_text='items to fill in (run fill)' }\n)\n$cycles = [ordered]@{ detected=$false; reason='Entry points inspected: no product scheduler. A grep of homelab_kit/*.py for cron, schedul, --once, --now, loop, webhook and daemon found only the user crontab and Windows scheduled-task inventory commands in collect.py and platforms.py. README Limits says: It installs no background services, schedules or auto-update tasks. Run it manually. The product runs only when a user invokes a command.'; checks=@() }\n$examples = @(\n [ordered]@{ kind='example'; claim='Demo lab check reports capture privacy status without connecting to machines'; source='README.md ## Quickstart (Try a safe example without connecting to any machine)'; input='--repo demo-lab check'; expected='prints capture privacy summary'; argv=@($exe,'--repo',$demo,'check'); cwd=$out; expected_text='No privacy patterns found' },\n [ordered]@{ kind='example'; claim='Dry-run collect makes no connections or writes'; source='README.md ## Quickstart (Try a safe example without connecting to any machine)'; input='--repo demo-lab collect --dry-run'; expected='lists hosts and states no connections or writes'; argv=@($exe,'--repo',$demo,'collect','--dry-run'); cwd=$out; expected_text='No connections or writes' },\n [ordered]@{ kind='example'; claim='fill prints the agent brief for the lab'; source='README.md ## Fill with your own agent'; input='--repo my-lab fill'; expected='prints the fill-homelab-docs brief'; argv=@($exe,'--repo',$lab,'fill'); cwd=$out; expected_text=\"Fill the owner's private homelab docs\" },\n [ordered]@{ kind='example'; claim='Offline unit test suite passes on the development Python'; source='README.md ## Development'; reason='Ran python -m unittest discover -s tests -q with the VM Python 3.14.0 venv from the checkout: FAILED (failures=1, errors=7, skipped=1). Failures are POSIX-only: os.mkfifo, os.killpg, umask 0o077 expectation (511 != 448), /etc/ and unix-style paths, and filename characters Windows rejects. Not counted as passing; the product Windows local collection was exercised instead.' }\n)\n[IO.File]::WriteAllText(\"$PWD\\.coldpass\\probe.json\", ($probe | ConvertTo-Json -Depth 6), $enc)\n[IO.File]::WriteAllText(\"$PWD\\.coldpass\\claims.json\", (ConvertTo-Json -InputObject $claims -Depth 6), $enc)\n[IO.File]::WriteAllText(\"$PWD\\.coldpass\\cycles.json\", ($cycles | ConvertTo-Json -Depth 6), $enc)\n[IO.File]::WriteAllText(\"$PWD\\.coldpass\\examples.json\", (ConvertTo-Json -InputObject $examples -Depth 6), $enc)\n$p = Get-Content .coldpass\\probe.json -Raw | ConvertFrom-Json; $p.argv[2]; $p.cwd\n$c = Get-Content .coldpass\\claims.json -Raw | ConvertFrom-Json; $c[0].argv[2]",
    "$env:COLDPASS_WORKSPACE='C:\\coldpass\\workspace'; & C:\\coldpass\\python\\python.exe -I C:\\coldpass\\checker\\check.py --validate --replay 2>&1; \"rc=$LASTEXITCODE\"",
    "Test-Path C:\\inputs\\coldpass-preflight.py; Test-Path /inputs/coldpass-preflight.py; Get-Process | Where-Object { $_.ProcessName -like '*homelab*' } | Measure-Object | ForEach-Object { \"homelab processes: $($_.Count)\" }; Get-ChildItem C:\\coldpass\\workspace\\.coldpass | Select-Object Name | Out-String",
    "cd C:\\coldpass\\workspace; $enc = New-Object System.Text.UTF8Encoding($false)\n$report = [ordered]@{\n outcome='working'\n fault_owner=$null\n operation='Local homelab documentation: create a lab, add the control machine with --local, collect its OS facts, fill-brief and check it, using the README quickstart CLI on Windows.'\n operation_scope='Windows 11 guest VM, Python 3.14.0 at C:\\coldpass\\python (README requires 3.11+), homelab-kit 0.2.0 installed into a venv at C:\\coldpass\\venv. No SSH hosts, no network, no credentials, no browser. Local collection only.'\n steps=@(\n  'Read README.md; Quickstart uses python -m homelab_kit with uv or py -3; no runtime dependencies.',\n  'C:\\coldpass\\python\\python.exe -m venv C:\\coldpass\\venv',\n  'C:\\coldpass\\venv\\Scripts\\python.exe -m pip install .   (from C:\\coldpass\\workspace; built homelab_kit-0.2.0 wheel)',\n  'C:\\coldpass\\venv\\Scripts\\homelab-kit.exe --version   -> 0.2.0',\n  'homelab-kit demo demo-lab (in C:\\coldpass\\out); homelab-kit --repo demo-lab check; collect --dry-run; fill   (all exit 0)',\n  'homelab-kit init my-lab; homelab-kit --repo my-lab add-host example-control --local; collect --dry-run; collect; fill; check   (exit 0; example-control: partial with two optional PowerShell warnings)',\n  'Offline tests: C:\\coldpass\\venv\\Scripts\\python.exe -m unittest discover -s tests -q   -> FAILED (failures=1, errors=7, skipped=1), POSIX-only tests',\n  'Checker: $env:COLDPASS_WORKSPACE=C:\\coldpass\\workspace; C:\\coldpass\\python\\python.exe -I C:\\coldpass\\checker\\check.py --validate --replay -> valid true, replay PASS'\n )\n deviations=@(\n  'git is not installed in the guest, so the git init/remote/fetch/reset pin sequence was not run. The product install and run did not need Git metadata. The workspace snapshot was used as delivered and was not verified against commit 9bf395d7cb0279a666e03b634bfc1f864dbba32e.',\n  'uv was not used. The README quickstart uses uv run --no-project --python 3.12; I used the absolute venv Python 3.14.0 with pip install . and the installed homelab-kit.exe, which the README documents as the installed-CLI path.',\n  'Offline test suite is not Windows-compatible: os.mkfifo and os.killpg are missing on Windows, umask expectation 511 != 448, /etc and unix-style paths and a filename with characters Windows rejects. Recorded in examples.json as a reasoned entry, not a pass.',\n  'Local collection on Windows: block-devices.txt and volumes.txt warned local powershell failed; the host is marked partial (exit 0), which the README describes as expected for optional facts.',\n  'Preflight script /inputs/coldpass-preflight.py is not present in this VM (checked C:\\inputs and /inputs); the native checker command from the task was run instead and passed.',\n  'Demo and lab directories were created under C:\\coldpass\\out, outside the checkout; the example and probe commands read them and do not recreate them.'\n )\n stuck_step=$null\n main_blocker=$null\n plain_failure=$null\n suggested_fix='Optional: skip or mark the POSIX-only unit tests on Windows (mkfifo, killpg, umask, /etc paths, filename characters) so the documented test command passes on Windows, and treat the two optional PowerShell local-collection failures as warnings in README docs.'\n}\n[IO.File]::WriteAllText(\"$PWD\\.coldpass\\report.json\", ($report | ConvertTo-Json -Depth 6), $enc)\n$r = Get-Content .coldpass\\report.json -Raw | ConvertFrom-Json; \"outcome=$($r.outcome) steps=$($r.steps.Count)\"\n$env:COLDPASS_WORKSPACE='C:\\coldpass\\workspace'; & C:\\coldpass\\python\\python.exe -I C:\\coldpass\\checker\\check.py --validate --replay 2>&1 | ForEach-Object { if ($_ -match '\"valid\"') { $_.Substring(0,[Math]::Min(120,$_.Length)) } }; \"rc=$LASTEXITCODE\""
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": "Local homelab documentation: create a lab, add the control machine with --local, collect its OS facts, fill-brief and check it, using the README quickstart CLI on Windows.",
  "suggested_fix": null,
  "tokens_in": 444999,
  "tokens_out": 20939,
  "cost_usd": 0.02341862,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "C:\\coldpass\\venv\\Scripts\\homelab-kit.exe",
          "--repo",
          "C:\\coldpass\\out\\my-lab",
          "collect",
          "--host",
          "example-control"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "example-control: partial (see warnings)\nWARNING: commands/block-devices.txt: local powershell failed; check local tools and permissions, skip this optional fact or collect it by hand\nWARNING: commands/volumes.txt: local powershell failed; check local tools and permissions, skip this optional fact or collect it by hand\n[excerpt truncated]",
        "stderr": "",
        "needs_credentials": false,
        "needs_browser": false,
        "scope": "product operation"
      }
    }
  ],
  "safety": {
    "version": "z2x-1",
    "rules_version": "z2x-1",
    "summary": "No problems traced to this repository code in these checks.",
    "findings": [],
    "context": [],
    "limitations": [
      "A short run cannot establish that code is safe.",
      "Connections show IP addresses; proxies can hide the final hostname.",
      "Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.",
      "windows behavior observation needs an OS-native file/network/process collector; only the static scan ran.",
      "No Linux syscall trace was collected."
    ],
    "static": {
      "dependency_note": "OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check."
    },
    "evidence_url": "/safety/?run=TayHCode--homelab-kit-claude-haiku-5-5-1792647304661373885",
    "evidence_file": "/data/safety/TayHCode--homelab-kit-claude-haiku-5-5-1792647304661373885.json.gz"
  },
  "agent_execution": "native_agent",
  "agent_runtime": "claude-code",
  "agent_runtime_version": "2.1.300 (Claude Code)",
  "tool_transport": "mcp-assigned-vm",
  "platform": "windows",
  "reasoning": "low",
  "service_tier": null,
  "resources": {
    "cpus": 2,
    "memory_mib": 4096,
    "disk_mib": 32768
  },
  "native_tool_calls": 13,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "windows"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "9bf395d7cb0279a666e03b634bfc1f864dbba32e",
    "url": "https://github.com/TayHCode/homelab-kit"
  },
  "purpose": "initial",
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "fault": {
    "owner": null,
    "status": "resolved",
    "reason": null
  },
  "fix_id": null,
  "verifies_run_id": null,
  "hosting": null,
  "operation_scope": "product operation",
  "tool_calls": 13,
  "guest_setup": null,
  "runtime": null,
  "runtime_version": null,
  "runtime_revision": null,
  "source_revision": null,
  "evidence_version": null,
  "failure_origin": null,
  "evidence_strength": "readme_checked",
  "works": "yes",
  "install_s": null,
  "first_use_s": null,
  "mcp": "none",
  "needs": [],
  "needs_which": null,
  "agent_interface": [
    "cli"
  ],
  "license": "MIT",
  "repo_url": "https://github.com/TayHCode/homelab-kit",
  "cost_to_try": "free",
  "hardware": null,
  "what_failed": null,
  "local_or_hosted": "local",
  "cycle_checks": [
    {
      "kind": "cycle",
      "claim": "Scheduled or looping main behavior",
      "source": "repository entry points",
      "input": "source inspection",
      "expected": "identify the product trigger",
      "verdict": "yes",
      "outcome": "Entry points inspected: no product scheduler. A grep of homelab_kit/*.py for cron, schedul, --once, --now, loop, webhook and daemon found only the user crontab and Windows scheduled-task inventory commands in collect.py and platforms.py. README Limits says: It installs no background services, schedules or auto-update tasks. Run it manually. The product runs only when a user invokes a command.",
      "evidence": "Entry points inspected: no product scheduler. A grep of homelab_kit/*.py for cron, schedul, --once, --now, loop, webhook and daemon found only the user crontab and Windows scheduled-task inventory commands in collect.py and platforms.py. README Limits says: It installs no background services, schedules or auto-update tasks. Run it manually. The product runs only when a user invokes a command.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "Local mode collects the control machine with the OS collector",
      "source": "Local mode uses the OS collector on the control machine.",
      "input": "collect --dry-run on my-lab after add-host example-control --local",
      "expected": "dry-run lists example-control as a local host",
      "command": "'C:\\coldpass\\venv\\Scripts\\homelab-kit.exe' --repo 'C:\\coldpass\\out\\my-lab' collect --dry-run",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: Host example-control (local)",
      "evidence": "Host example-control (local)\r\n  Detect OS; fixed inventory; 0 configured files (0 paths refused)\r\n  No connections or writes; add --verbose for every planned command and file\r\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "Unknown facts are left as TODOs and counted by check",
      "source": "The kit generates a REBUILD.md host index and leaves unknown facts as TODOs.",
      "input": "check on my-lab",
      "expected": "check reports items still to fill in",
      "command": "'C:\\coldpass\\venv\\Scripts\\homelab-kit.exe' --repo 'C:\\coldpass\\out\\my-lab' check",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: items to fill in (run fill)",
      "evidence": "items to fill in (run fill)\r\nKeep this repository private; use check --privacy for an explicit gh lookup\r\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "Demo lab check reports capture privacy status without connecting to machines",
      "source": "README.md ## Quickstart (Try a safe example without connecting to any machine)",
      "input": "--repo demo-lab check",
      "command": "'C:\\coldpass\\venv\\Scripts\\homelab-kit.exe' --repo 'C:\\coldpass\\out\\demo-lab' check",
      "evidence": "Capture privacy:\r\nNo privacy patterns found; review every capture for hostnames, account names and paths before committing.\r\n37 items to fill in (run fill)\r\nKeep this repository private; use check --privacy for an explicit gh lookup",
      "deferred": false,
      "expected": "prints capture privacy summary",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Dry-run collect makes no connections or writes",
      "source": "README.md ## Quickstart (Try a safe example without connecting to any machine)",
      "input": "--repo demo-lab collect --dry-run",
      "command": "'C:\\coldpass\\venv\\Scripts\\homelab-kit.exe' --repo 'C:\\coldpass\\out\\demo-lab' collect --dry-run",
      "evidence": "Host example-compute (ssh)\r\n  Detect OS; fixed inventory; 0 configured files (0 paths refused)\r\n  No connections or writes; add --verbose for every planned command and file\r\nHost example-storage (docs)\r\n  Docs-only: nothing auto-collected",
      "deferred": false,
      "expected": "lists hosts and states no connections or writes",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "fill prints the agent brief for the lab",
      "source": "README.md ## Fill with your own agent",
      "input": "--repo my-lab fill",
      "command": "'C:\\coldpass\\venv\\Scripts\\homelab-kit.exe' --repo 'C:\\coldpass\\out\\my-lab' fill",
      "evidence": "/observed/commands/hostname.txt`\r\n  - `hosts/example-control/observed/commands/hosts.txt`\r\n  - `hosts/example-control/observed/commands/listeners.txt`\r\n  - `hosts/example-control/observed/commands/memory.txt`\r\n  - `hosts/example-control/observed/commands/os-release.txt`\r\n  - `hosts/example-control/observed/commands/programs.txt`\r\n  - `hosts/example-control/observed/commands/routes.txt`\r\n  - `hosts/example-control/observed/commands/scheduled-tasks.txt`\r\n  - `hosts/example-control/observed/commands/services.txt`\r\n\r\nRun `python3 -m homelab_kit --repo PATH check` (Windows: `py -3 -m homelab_kit`).",
      "deferred": false,
      "expected": "prints the fill-homelab-docs brief",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Offline unit test suite passes on the development Python",
      "source": "README.md ## Development",
      "input": "",
      "command": "",
      "evidence": "Ran python -m unittest discover -s tests -q with the VM Python 3.14.0 venv from the checkout: FAILED (failures=1, errors=7, skipped=1). Failures are POSIX-only: os.mkfifo, os.killpg, umask 0o077 expectation (511 != 448), /etc/ and unix-style paths, and filename characters Windows rejects. Not counted as passing; the product Windows local collection was exercised instead.",
      "deferred": false,
      "expected": "documented command completes successfully",
      "verdict": "blocked",
      "outcome": "Ran python -m unittest discover -s tests -q with the VM Python 3.14.0 venv from the checkout: FAILED (failures=1, errors=7, skipped=1). Failures are POSIX-only: os.mkfifo, os.killpg, umask 0o077 expectation (511 != 448), /etc/ and unix-style paths, and filename characters Windows rejects. Not counted as passing; the product Windows local collection was exercised instead."
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "archived": false,
    "commits_90d": 2,
    "last_commit_at": "2026-10-15T16:14:55Z",
    "last_release_at": null,
    "median_reply_hours": null,
    "merged_prs_90d": 1,
    "note": "actively maintained: last commit 6 days ago; 2 commits and 1 merged PRs in 90 days; 0 open issues, 0 open PRs; no releases",
    "open_issues": 0,
    "open_prs": 0,
    "reply_share": null,
    "reply_threads": 0,
    "verdict": "maintained"
  },
  "maintenance_verdict": "maintained",
  "maintenance_note": "actively maintained: last commit 6 days ago; 2 commits and 1 merged PRs in 90 days; 0 open issues, 0 open PRs; no releases",
  "maintained": "active",
  "maintained_note": "last commit 6 days ago",
  "last_commit_at": "2026-10-15T17:24:00Z",
  "last_release_at": null,
  "open_issues": null,
  "answered_issues": null,
  "platforms_claimed": [
    "linux",
    "mac",
    "windows"
  ],
  "topic": "agent-harness",
  "agent_interfaces": [
    {
      "interface": "cli",
      "evidence": "independent checker",
      "observed": true,
      "operation_checked": true
    }
  ],
  "agent_interfaces_note": "README metadata is a discovery hint, not pinned documentation proof. Observed interfaces were exercised in this run. An empty list means unknown.",
  "mcp_context": null,
  "tested_at": "2026-10-22T05:41:26.242497+00:00",
  "tested_commit": "9bf395d7cb0279a666e03b634bfc1f864dbba32e",
  "tested_with": {
    "agent": "claude-code",
    "agent_version": "2.1.300 (Claude Code)",
    "model": "claude-haiku-5-5",
    "model_route": "claude-haiku-5-5",
    "reasoning": "low",
    "os": "windows",
    "backend": "hyperv",
    "transport": "mcp-assigned-vm"
  },
  "setup_identity": {
    "repo": "TayHCode/homelab-kit",
    "source": "https://github.com/TayHCode/homelab-kit",
    "commit": "9bf395d7cb0279a666e03b634bfc1f864dbba32e",
    "source_revision": null,
    "os": "windows",
    "architecture": null,
    "backend": "hyperv",
    "model": "claude-haiku-5-5",
    "model_version": "claude-haiku-5-5",
    "agent_execution": "native_agent",
    "agent_runtime": "claude-code",
    "agent_runtime_version": "2.1.300 (Claude Code)",
    "tool_transport": "mcp-assigned-vm",
    "runtime": null,
    "runtime_version": null,
    "runtime_revision": null,
    "sandbox_source": null,
    "guest_setup": null,
    "source_pin": {
      "commit": "9bf395d7cb0279a666e03b634bfc1f864dbba32e",
      "url": "https://github.com/TayHCode/homelab-kit"
    },
    "platform_details": {
      "os": "windows",
      "backend": "hyperv"
    },
    "platform_conflicts": null,
    "reasoning": "low",
    "service_tier": null,
    "resources": {
      "cpus": 2,
      "memory_mib": 4096,
      "disk_mib": 32768
    },
    "operation": "Local homelab documentation: create a lab, add the control machine with --local, collect its OS facts, fill-brief and check it, using the README quickstart CLI on Windows.",
    "operation_scope": "product operation",
    "hosting": null,
    "kind": "repo",
    "test_version": "readme-1924d8f529c6fc4500abb29916f5c9ac942027957e7b82d725d5610040cd3b4a",
    "evidence_version": null
  },
  "other_model": null,
  "other_run_id": null,
  "models_agree": null,
  "furthest_model": null,
  "transcript_url": "/transcripts/TayHCode--homelab-kit-claude-haiku-5-5-1792647304661373885.txt",
  "report_url": "/reports/TayHCode--homelab-kit-claude-haiku-5-5-1792647304661373885.json"
}
