{
  "run_id": "TayHCode--tailscale-agent-access-claude-haiku-5-5-1792644847350310105",
  "date": "2026-10-22T04:59:39.538825+00:00",
  "repo": "TayHCode/tailscale-agent-access",
  "kind": "repo",
  "source": "https://github.com/TayHCode/tailscale-agent-access",
  "commit": "e43cfd6e93bb2e58811dcea3f9266dec8b52658e",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-1924d8f529c6fc4500abb29916f5c9ac942027957e7b82d725d5610040cd3b4a",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 308.2758510829881,
  "total_s": 332.18847250938416,
  "steps": [
    "cd <guest-path> && pwd && ls -la && id -u && (git status 2>&1 | head -3) && cat README.md 2>/dev/null | head -200",
    "cd <guest-path> && python3 --version && ls -la .coldpass tests .github && cat policy.json && cat release-check.json && cat .gitignore && cat CONTRIBUTING.md && ls -R .github tests | head -50",
    "cd <guest-path> && python3 agent_access.py summary; echo \"rc=$?\"; python3 agent_access.py validate; echo \"rc=$?\"",
    "cd <guest-path> && rm -f .coldpass/generated-fragment.hujson && python3 agent_access.py generate --output .coldpass/generated-fragment.hujson; echo \"rc=$?\"; cat .coldpass/generated-fragment.hujson; echo; echo ---; python3 -m unittest discover -s tests 2>&1 | tail -5; echo \"rc=$?\"",
    "cd <guest-path> && python3 agent_access.py diff --against .coldpass/generated-fragment.hujson; echo \"rc=$?\"; python3 agent_access.py diff --against policy.json; echo \"rc=$?\"; ls -la .coldpass",
    "cd <guest-path> && cat > .coldpass/scoped-policy.json <<'EOF'\n{\n  \"version\": 1,\n  \"lan_hosts\": [{\"name\": \"printer\", \"address\": \"<internal-ip>\", \"service\": \"printer\"}],\n  \"agents\": [\n    {\n      \"name\": \"agent-a\",\n      \"tag\": \"tag:agent-agent-a\",\n      \"preset\": \"scoped\",\n      \"allow\": [{\"host\": \"printer\", \"ports\": [\"tcp:631\", \"udp:8000-8010\"]}],\n      \"never\": [\"unlisted_lan_hosts\",\"other_agents\",\"internet_or_exit_nodes\",\"tailnet_administration\",\"policy_or_device_changes\",\"all_unlisted_ports\"]\n    }\n  ]\n}\nEOF\npython3 agent_access.py --policy .coldpass/scoped-policy.json validate; echo \"rc=$?\"; python3 agent_access.py --policy .coldpass/scoped-policy.json summary; echo \"rc=$?\"",
    "cd <guest-path> && python3 agent_access.py --policy .coldpass/scoped-policy.json generate --output .coldpass/probe-scoped.hujson; echo \"rc=$?\"; cat .coldpass/probe-scoped.hujson",
    "cd <guest-path> && grep -n -i -E \"cron|schedul|loop|webhook|--once|--now|sleep|while |daemon|time\\.\" agent_access.py | head; echo \"grep rc=$?\"; ls -la <guest-path> /inputs/ 2>&1 | head -20; grep -n -F 'Requires Python 3.10 or newer; no packages or network access are needed.' README.md; grep -n -F 'Choose `everything` to grant an agent all IP traffic to all destinations.' README.md; grep -n -F 'Run `python3 agent_access.py validate`' README.md; grep -n -F 'or `scoped` to grant only its listed LAN hosts and ports.' README.md; grep -n -F 'prints additions and removals.' README.md",
    "cd <guest-path> && rm -f .coldpass/generated-fragment.hujson .coldpass/probe-scoped.hujson && mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'\n{\"kind\":\"cli\",\"argv\":[\"python3\",\"agent_access.py\",\"--policy\",\".coldpass/scoped-policy.json\",\"generate\",\"--output\",\".coldpass/probe-scoped.hujson\"],\"cwd\":\"<guest-path>\",\"expected_file\":\".coldpass/probe-scoped.hujson\",\"expected_text\":\"<internal-ip>\"}\nEOF\ncat > .coldpass/claims.json <<'EOF'\n[\n{\"kind\":\"claim\",\"claim\":\"Quickstart runs offline with Python 3.10+ and no packages\",\"source\":\"Requires Python 3.10 or newer; no packages or network access are needed.\",\"input\":\"python3 agent_access.py summary\",\"expected\":\"Summary lists agent-a with its tag\",\"probe_kind\":\"cli\",\"argv\":[\"python3\",\"agent_access.py\",\"summary\"],\"expected_text\":\"agent-a (tag:agent-agent-a)\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"everything preset grants all IP traffic to all destinations\",\"source\":\"Choose `everything` to grant an agent all IP traffic to all destinations.\",\"input\":\"python3 agent_access.py summary (checked-in policy)\",\"expected\":\"Each agent shows the everything preset grant\",\"probe_kind\":\"cli\",\"argv\":[\"python3\",\"agent_access.py\",\"summary\"],\"expected_text\":\"Everything preset: grants all IP traffic to all destinations.\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"validate command checks the policy\",\"source\":\"Run `python3 agent_access.py validate`\",\"input\":\"python3 agent_access.py validate\",\"expected\":\"Policy is valid.\",\"probe_kind\":\"cli\",\"argv\":[\"python3\",\"agent_access.py\",\"validate\"],\"expected_text\":\"Policy is valid.\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"scoped preset grants only listed LAN hosts and ports\",\"source\":\"or `scoped` to grant only its listed LAN hosts and ports.\",\"input\":\"scoped policy with printer <internal-ip> on tcp:631 and udp:8000-8010\",\"expected\":\"Summary states the printer grant on those ports only\",\"probe_kind\":\"cli\",\"argv\":[\"python3\",\"agent_access.py\",\"--policy\",\".coldpass/scoped-policy.json\",\"summary\"],\"expected_text\":\"Grants access to printer (<internal-ip>) on tcp:631, udp:8000-8010.\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"diff never writes files and prints additions\",\"source\":\"prints additions and removals.\",\"input\":\"diff --against policy.json (no grants array)\",\"expected\":\"Lists the three everything grants as additions\",\"probe_kind\":\"cli\",\"argv\":[\"python3\",\"agent_access.py\",\"diff\",\"--against\",\"policy.json\"],\"expected_text\":\"Added grants:\",\"cwd\":\"<guest-path>\"}\n]\nEOF\ncat > .coldpass/examples.json <<'EOF'\n[\n{\"kind\":\"example\",\"claim\":\"Quickstart summary\",\"source\":\"README.md Quickstart\",\"input\":\"summary of checked-in policy\",\"expected\":\"Agent Tailscale grants header printed\",\"argv\":[\"python3\",\"agent_access.py\",\"summary\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"Agent Tailscale grants\"},\n{\"kind\":\"example\",\"claim\":\"Validate the checked-in policy\",\"source\":\"README.md Quickstart\",\"input\":\"validate checked-in policy\",\"expected\":\"Policy is valid.\",\"argv\":[\"python3\",\"agent_access.py\",\"validate\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"Policy is valid.\"},\n{\"kind\":\"example\",\"claim\":\"Generate the Tailscale policy fragment to a file\",\"source\":\"README.md Manual application / Quickstart generate\",\"input\":\"generate --output .coldpass/example-fragment.hujson\",\"expected\":\"Fragment file written with the agent tag\",\"argv\":[\"python3\",\"agent_access.py\",\"generate\",\"--output\",\".coldpass/example-fragment.hujson\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_file\":\".coldpass/example-fragment.hujson\",\"expected_text\":\"tag:agent-agent-a\"},\n{\"kind\":\"example\",\"claim\":\"Diff against an existing policy without writing\",\"source\":\"README.md Quickstart diff command\",\"input\":\"diff --against policy.json\",\"expected\":\"Added grants section listed\",\"argv\":[\"python3\",\"agent_access.py\",\"diff\",\"--against\",\"policy.json\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"Added grants:\"},\n{\"kind\":\"example\",\"claim\":\"Offline unit test suite from release-check\",\"source\":\"CONTRIBUTING.md\",\"input\":\"python3 -m unittest discover -s tests\",\"expected\":\"All 35 offline tests pass\",\"argv\":[\"python3\",\"-m\",\"unittest\",\"discover\",\"-s\",\"tests\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"OK\"}\n]\nEOF\ncat > .coldpass/cycles.json <<'EOF'\n{\"detected\":false,\"reason\":\"Entry points inspected: agent_access.py has only argparse subcommands (summary, validate, generate, diff) and no scheduler, cron, loop, webhook, --once or --now option; the only 'exit 2' path is a parser error. The tool runs once per invocation, so no product cycle exists.\",\"checks\":[]}\nEOF\nfor f in probe claims examples cycles; do python3 -I -c \"import json,sys; json.load(open(sys.argv[1])); print('ok', sys.argv[1])\" .coldpass/$f.json; done",
    "cd <guest-path> && COLDPASS_WORKSPACE=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -60; echo \"rc=${PIPESTATUS[0]}\"",
    "cd <guest-path> && python3 -I - <<'EOF'\nimport json\np='.coldpass/claims.json'\nc=json.load(open(p))\nc[1]['source']='Choose `everything` to grant an agent all IP traffic to all destinations,'\nassert c[1]['source'] in open('README.md',encoding='utf-8').read()\njson.dump(c,open(p,'w'),indent=1)\nprint('fixed')\nEOF\nCOLDPASS_WORKSPACE=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -80; echo \"rc=${PIPESTATUS[0]}\"",
    "cd <guest-path> && ls -la .coldpass && cat > .coldpass/report.json <<'EOF'\n{\n  \"outcome\": \"working\",\n  \"fault_owner\": null,\n  \"operation\": \"Generate and review Tailscale grant fragments for agent-a/b/c with the offline agent_access.py CLI (summary, validate, generate, diff, and a scoped policy via --policy)\",\n  \"operation_scope\": \"Offline only, Python 3.12.3 (README requires 3.10+), standard library only, no network or Tailscale connection. Scoped test used a placeholder RFC1918 printer address in .coldpass/scoped-policy.json, not a real LAN value. Product runs once per invocation; no product cycle.\",\n  \"steps\": [\n    \"python3 --version (3.12.3, meets README Requires Python 3.10 or newer)\",\n    \"python3 agent_access.py summary\",\n    \"python3 agent_access.py validate\",\n    \"python3 agent_access.py generate --output <fresh path>\",\n    \"python3 agent_access.py diff --against policy.json\",\n    \"python3 -m unittest discover -s tests (release-check.json / CONTRIBUTING.md offline test command): 35 tests OK\",\n    \"python3 agent_access.py --policy .coldpass/scoped-policy.json validate / summary / generate --output .coldpass/probe-scoped.hujson\",\n    \"COLDPASS_WORKSPACE=<guest-path> python3 -I <guest-path> --validate --replay: valid true, replay PASS\"\n  ],\n  \"deviations\": [\n    \"/inputs/coldpass-preflight.py does not exist in this guest; ran the checker at <guest-path> instead (same arguments).\",\n    \"First validate pass rejected claim 2 because the quote had a trailing period not present in README line 3 (comma follows 'destinations'); corrected the quote to the exact substring and re-ran; passed.\",\n    \"Workspace is not a git repository and no command needed Git metadata, so the git init/fetch/reset pin procedure was not run. Source snapshot was used as supplied.\",\n    \"No install was needed: no packages or Node/uv, product is stdlib-only and Python 3.12.3 is present.\",\n    \"Scoped-mode test used a policy in .coldpass (not policy.local.json) and the RFC1918 placeholder <internal-ip>, since the README's 192.0.2.25 is rejected by validation.\"\n  ],\n  \"stuck_step\": null,\n  \"main_blocker\": null,\n  \"plain_failure\": null,\n  \"suggested_fix\": \"None needed for this run. Optionally, the repo could document that the offline test command prints its OK line to stderr.\"\n}\nEOF\npython3 -I -c \"import json; d=json.load(open('.coldpass/report.json')); print('report ok', d['outcome'])\"",
    "cd <guest-path> && COLDPASS_WORKSPACE=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | python3 -I -c \"import json,sys; d=json.load(sys.stdin); print('valid', d.get('valid'), 'problems', d.get('problems'), 'replay', d.get('replay',{}).get('status'))\""
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": "Generate and review Tailscale grant fragments for agent-a/b/c with the offline agent_access.py CLI (summary, validate, generate, diff, and a scoped policy via --policy)",
  "suggested_fix": null,
  "tokens_in": 280567,
  "tokens_out": 14130,
  "cost_usd": 0.01606985,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "python3",
          "agent_access.py",
          "--policy",
          ".coldpass/scoped-policy.json",
          "generate",
          "--output",
          ".coldpass/probe-scoped.hujson-checker-e5494a2a69364b7a9f246bcb2b9243c4"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "",
        "stderr": "",
        "expected_file": ".coldpass/probe-scoped.hujson-checker-e5494a2a69364b7a9f246bcb2b9243c4",
        "file_checked": true,
        "file_excerpt": "<internal-ip>\"\n      ],\n      \"ip\": [\n        \"tcp:631\",\n        \"udp:8000-8010\"\n      ]\n    }\n  ],\n  \"tests\": [\n    {\n      \"src\": \"tag:agent-agent-a\",\n      \"proto\": \"tcp\",\n      \"accept\": [\n        \"<internal-ip>:631\"\n      ],\n      \"deny\": [\n        \"198.51.100.10:631\"\n      ]\n    },\n    {\n      \"src\": \"tag:agent-agent-a\",\n      \"proto\": \"udp\",\n      \"accept\": [\n        \"<internal-ip>:8000-8010\"\n      ],\n      \"deny\": [\n        \"198.51.100.10:8000-8010\"\n      ]\n    }\n  ]\n}\n",
        "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."
    ],
    "static": {
      "dependency_note": "OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check."
    },
    "evidence_url": "/safety/?run=TayHCode--tailscale-agent-access-claude-haiku-5-5-1792644847350310105",
    "evidence_file": "/data/safety/TayHCode--tailscale-agent-access-claude-haiku-5-5-1792644847350310105.json.gz"
  },
  "agent_execution": "native_agent",
  "agent_runtime": "claude-code",
  "agent_runtime_version": "2.1.300 (Claude Code)",
  "tool_transport": "mcp-assigned-vm",
  "platform": "linux",
  "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": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "e43cfd6e93bb2e58811dcea3f9266dec8b52658e",
    "url": "https://github.com/TayHCode/tailscale-agent-access"
  },
  "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/tailscale-agent-access",
  "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: agent_access.py has only argparse subcommands (summary, validate, generate, diff) and no scheduler, cron, loop, webhook, --once or --now option; the only 'exit 2' path is a parser error. The tool runs once per invocation, so no product cycle exists.",
      "evidence": "Entry points inspected: agent_access.py has only argparse subcommands (summary, validate, generate, diff) and no scheduler, cron, loop, webhook, --once or --now option; the only 'exit 2' path is a parser error. The tool runs once per invocation, so no product cycle exists.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "Quickstart runs offline with Python 3.10+ and no packages",
      "source": "Requires Python 3.10 or newer; no packages or network access are needed.",
      "input": "python3 agent_access.py summary",
      "expected": "Summary lists agent-a with its tag",
      "command": "python3 agent_access.py summary",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: agent-a (tag:agent-agent-a)",
      "evidence": "agent-a (tag:agent-agent-a)\n  Everything preset: grants all IP traffic to all destinations.\n\nagent-b (tag:agent-agent-b)\n  Everything preset: grants all IP traffic to all destinations.\n\nagent-c (tag:agent-agent-c)\n  Everything preset: grants all IP traffic to all destinations.\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "everything preset grants all IP traffic to all destinations",
      "source": "Choose `everything` to grant an agent all IP traffic to all destinations,",
      "input": "python3 agent_access.py summary (checked-in policy)",
      "expected": "Each agent shows the everything preset grant",
      "command": "python3 agent_access.py summary",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: Everything preset: grants all IP traffic to all destinations.",
      "evidence": "Everything preset: grants all IP traffic to all destinations.\n\nagent-b (tag:agent-agent-b)\n  Everything preset: grants all IP traffic to all destinations.\n\nagent-c (tag:agent-agent-c)\n  Everything preset: grants all IP traffic to all destinations.\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "validate command checks the policy",
      "source": "Run `python3 agent_access.py validate`",
      "input": "python3 agent_access.py validate",
      "expected": "Policy is valid.",
      "command": "python3 agent_access.py validate",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: Policy is valid.",
      "evidence": "Policy is valid.\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "scoped preset grants only listed LAN hosts and ports",
      "source": "or `scoped` to grant only its listed LAN hosts and ports.",
      "input": "scoped policy with printer <internal-ip> on tcp:631 and udp:8000-8010",
      "expected": "Summary states the printer grant on those ports only",
      "command": "python3 agent_access.py --policy .coldpass/scoped-policy.json summary",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: Grants access to printer (<internal-ip>) on tcp:631, udp:8000-8010.",
      "evidence": "Grants access to printer (<internal-ip>) on tcp:631, udp:8000-8010.\n  This fragment grants LAN access only to listed addresses or ranges on listed TCP/UDP ports.\n  This fragment grants no access to other agents' Tailscale node addresses.\n  This fragment adds no Internet or exit-node access grant.\n  These network grants do not confer tailnet or user administration authority.\n  These network grants do not confer policy-edit, device-tagging, or network-configuration authority.\n  This fragment adds no unlisted TCP/UDP ports or protocols.\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "diff never writes files and prints additions",
      "source": "prints additions and removals.",
      "input": "diff --against policy.json (no grants array)",
      "expected": "Lists the three everything grants as additions",
      "command": "python3 agent_access.py diff --against policy.json",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: Added grants:",
      "evidence": "Added grants:\n+ {\"dst\":[\"*\"],\"ip\":[\"*\"],\"src\":[\"tag:agent-agent-a\"]}\n+ {\"dst\":[\"*\"],\"ip\":[\"*\"],\"src\":[\"tag:agent-agent-b\"]}\n+ {\"dst\":[\"*\"],\"ip\":[\"*\"],\"src\":[\"tag:agent-agent-c\"]}\nRemoved grants:\n  (none)\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "Quickstart summary",
      "source": "README.md Quickstart",
      "input": "summary of checked-in policy",
      "command": "python3 agent_access.py summary",
      "evidence": "e not excluded.\nA range grants the listed TCP/UDP flows to every address it covers; service labels do not restrict destinations.\nScoped mode does not model or test ICMP; the everything preset grants all IP traffic, including ICMP.\nThis fragment does not revoke credentials, host permissions, or access provided elsewhere.\n\nagent-a (tag:agent-agent-a)\n  Everything preset: grants all IP traffic to all destinations.\n\nagent-b (tag:agent-agent-b)\n  Everything preset: grants all IP traffic to all destinations.\n\nagent-c (tag:agent-agent-c)\n  Everything preset: grants all IP traffic to all destinations.",
      "deferred": false,
      "expected": "Agent Tailscale grants header printed",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Validate the checked-in policy",
      "source": "README.md Quickstart",
      "input": "validate checked-in policy",
      "command": "python3 agent_access.py validate",
      "evidence": "Policy is valid.",
      "deferred": false,
      "expected": "Policy is valid.",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Generate the Tailscale policy fragment to a file",
      "source": "README.md Manual application / Quickstart generate",
      "input": "generate --output .coldpass/example-fragment.hujson",
      "command": "python3 agent_access.py generate --output .coldpass/example-fragment.hujson-checker-da440cbb22494fe7ae49578061a25167",
      "evidence": "ent-a\": [\n      \"autogroup:admin\"\n    ],\n    \"tag:agent-agent-b\": [\n      \"autogroup:admin\"\n    ],\n    \"tag:agent-agent-c\": [\n      \"autogroup:admin\"\n    ]\n  },\n  \"grants\": [\n    {\n      \"src\": [\n        \"tag:agent-agent-a\"\n      ],\n      \"dst\": [\n        \"*\"\n      ],\n      \"ip\": [\n        \"*\"\n      ]\n    },\n    {\n      \"src\": [\n        \"tag:agent-agent-b\"\n      ],\n      \"dst\": [\n        \"*\"\n      ],\n      \"ip\": [\n        \"*\"\n      ]\n    },\n    {\n      \"src\": [\n        \"tag:agent-agent-c\"\n      ],\n      \"dst\": [\n        \"*\"\n      ],\n      \"ip\": [\n        \"*\"\n      ]\n    }\n  ],\n  \"tests\": []\n}\n",
      "deferred": false,
      "expected": "Fragment file written with the agent tag",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Diff against an existing policy without writing",
      "source": "README.md Quickstart diff command",
      "input": "diff --against policy.json",
      "command": "python3 agent_access.py diff --against policy.json",
      "evidence": "Added grants:\n+ {\"dst\":[\"*\"],\"ip\":[\"*\"],\"src\":[\"tag:agent-agent-a\"]}\n+ {\"dst\":[\"*\"],\"ip\":[\"*\"],\"src\":[\"tag:agent-agent-b\"]}\n+ {\"dst\":[\"*\"],\"ip\":[\"*\"],\"src\":[\"tag:agent-agent-c\"]}\nRemoved grants:\n  (none)",
      "deferred": false,
      "expected": "Added grants section listed",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Offline unit test suite from release-check",
      "source": "CONTRIBUTING.md",
      "input": "python3 -m unittest discover -s tests",
      "command": "python3 -m unittest discover -s tests",
      "evidence": "...................................\n----------------------------------------------------------------------\nRan 35 tests in 58.433s\n\nOK",
      "deferred": false,
      "expected": "All 35 offline tests pass",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "archived": false,
    "commits_90d": 1,
    "last_commit_at": "2026-10-14T19:53:29Z",
    "last_release_at": null,
    "median_reply_hours": null,
    "merged_prs_90d": 0,
    "note": "actively maintained: last commit 7 days ago; 1 commits and 0 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 7 days ago; 1 commits and 0 merged PRs in 90 days; 0 open issues, 0 open PRs; no releases",
  "maintained": "active",
  "maintained_note": "last commit 7 days ago",
  "last_commit_at": "2026-10-14T19:54:09Z",
  "last_release_at": null,
  "open_issues": null,
  "answered_issues": null,
  "platforms_claimed": [
    "linux"
  ],
  "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-22T04:59:39.538825+00:00",
  "tested_commit": "e43cfd6e93bb2e58811dcea3f9266dec8b52658e",
  "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": "linux",
    "backend": "hyperv",
    "transport": "mcp-assigned-vm"
  },
  "setup_identity": {
    "repo": "TayHCode/tailscale-agent-access",
    "source": "https://github.com/TayHCode/tailscale-agent-access",
    "commit": "e43cfd6e93bb2e58811dcea3f9266dec8b52658e",
    "source_revision": null,
    "os": "linux",
    "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": "e43cfd6e93bb2e58811dcea3f9266dec8b52658e",
      "url": "https://github.com/TayHCode/tailscale-agent-access"
    },
    "platform_details": {
      "os": "linux",
      "backend": "hyperv"
    },
    "platform_conflicts": null,
    "reasoning": "low",
    "service_tier": null,
    "resources": {
      "cpus": 2,
      "memory_mib": 4096,
      "disk_mib": 32768
    },
    "operation": "Generate and review Tailscale grant fragments for agent-a/b/c with the offline agent_access.py CLI (summary, validate, generate, diff, and a scoped policy via --policy)",
    "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--tailscale-agent-access-claude-haiku-5-5-1792644847350310105.txt",
  "report_url": "/reports/TayHCode--tailscale-agent-access-claude-haiku-5-5-1792644847350310105.json"
}
