{
  "run_id": "reason-machines--reason-network-claude-haiku-5-5-1792796429555117173",
  "checker": {
    "claims": [
      {
        "claim": "The MCP server gives agents a list_team tool",
        "command": "<guest-path> mcp tools/call {\"tool\": \"list_team\", \"arguments\": {}}",
        "evidence": "you are alice on box\\nalice \u00b7 box \u00b7 this machine\\n  workspace-agent  agent  up 0s  reason-machines/reason-network@master  pull \u00b7 \u2190 you\\nInvite people with this line: Join the Reason Network: https://reasonmachines.com/network/join/#rn1-7AIljJXkslkGuRIkBkbKwbSN6VnJ28uhhMUHPUCcwzUEZGVtbwAuaHR0cHM6Ly9yZWxheS1zZm8xLmNvbXB1dGUucmVhc29ubWFjaGluZXMuY29tLwEErBSKRq3YXewhStPipPtT2aZ2nLTY2Tko7fNEHjYrmV21vh84Bs0\\npush = sees messages right away, even when idle \u00b7 turn = at its next step \u00b7 pull = when it checks\\n\"}], \"isError\": false}",
        "expected": "the team listing with the local member alice",
        "input": "{\"tool\": \"list_team\", \"arguments\": {}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: you are alice on box",
        "source": "Agents get three tools, `list_team`, `send_message` and `ask_user`, plus",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "reason-network who shows who is around on the team",
        "command": "<guest-path> who",
        "evidence": "team demo \u00b7 you are alice on box\n\n\u25cf alice \u00b7 box \u00b7 this machine  no sessions\n",
        "expected": "the team header naming alice on box",
        "input": "who",
        "kind": "claim",
        "outcome": "Real input produced the expected result: team demo \u00b7 you are alice on box",
        "returncode": 0,
        "source": "reason-network who",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Inspected README.md, src/main.rs subcommands, src/daemon/*, src/mcp.rs and tests. The README documents no cron, schedule, --once or --now mode. The only timed code is reconnect/retry sleeps inside the daemon (src/net.rs, src/daemon/teamops.rs) and the macOS tray refresh (src/tray.rs), none of them a user-triggered product cycle. Messages wait for an offline recipient and are delivered when they return, which is event-driven rather than a schedule.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Inspected README.md, src/main.rs subcommands, src/daemon/*, src/mcp.rs and tests. The README documents no cron, schedule, --once or --now mode. The only timed code is reconnect/retry sleeps inside the daemon (src/net.rs, src/daemon/teamops.rs) and the macOS tray refresh (src/tray.rs), none of them a user-triggered product cycle. Messages wait for an offline recipient and are delivered when they return, which is event-driven rather than a schedule.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "mcp"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "reason-network",
        "version": "0.12.11"
      },
      "tool_result": {
        "content": [
          {
            "text": "team demo \u00b7 you are alice on box\nalice \u00b7 box \u00b7 this machine\n  workspace-agent  agent  up 0s  reason-machines/reason-network@master  pull \u00b7 \u2190 you\nInvite people with this line: Join the Reason Network: https://reasonmachines.com/network/join/#rn1-7AIljJXkslkGuRIkBkbKwbSN6VnJ28uhhMUHPUCcwzUEZGVtbwAuaHR0cHM6Ly9yZWxheS1zZm8xLmNvbXB1dGUucmVhc29ubWFjaGluZXMuY29tLwEErBSKRq3YXewhStPipPtT2aZ2nLTY2Tko7fNEHjYrmV21vh84Bs0\npush = sees messages right away, even when idle \u00b7 turn = at its next step \u00b7 pull = when it checks\n",
            "type": "text"
          }
        ],
        "isError": false
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 3011,
      "tools": [
        "ask_user",
        "check_inbox",
        "list_team",
        "send_message"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Format check passes as the README build line starts",
        "command": "<guest-path> fmt --check",
        "deferred": false,
        "evidence": "",
        "expected": "no formatting diff",
        "input": "cargo fmt --check",
        "kind": "example",
        "outcome": "command completed successfully with no output",
        "returncode": 0,
        "source": "README.md Build section",
        "verdict": "yes"
      },
      {
        "claim": "Clippy with warnings denied passes",
        "command": "<guest-path> clippy --all-targets -- -D warnings",
        "deferred": false,
        "evidence": "Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.95s",
        "expected": "Finished without warnings",
        "input": "cargo clippy --all-targets -- -D warnings",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Build section",
        "verdict": "yes"
      },
      {
        "claim": "The repository unit and integration tests pass",
        "command": "<guest-path> test",
        "deferred": false,
        "evidence": "nt_change_when_proofs_expire ... ok\n\ntest result: ok. 202 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.46s\n\n\nrunning 2 tests\ntest an_unsigned_install_takes_any_build ... ok\ntest a_signed_install_takes_only_its_teams_builds ... ok\n\ntest result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.87s\n\n    Finished `test` profile [unoptimized + debuginfo] target(s) in 2.03s\n     Running unittests src/main.rs (target/debug/deps/reason_network-26d52bea24eb6ea4)\n     Running tests/install_script.rs (target/debug/deps/install_script-756caa08fcf6e16e)",
        "expected": "202 unit tests pass",
        "input": "cargo test",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Build section",
        "verdict": "yes"
      },
      {
        "claim": "The hook flows pass against an isolated daemon",
        "command": "python3 tests/e2e/hooks.py",
        "deferred": false,
        "evidence": "ion as the sender was told (delivered)\nPASS: push, inbox listed after-list-now: once listed, mail goes into it\nPASS: push, inbox listed after-list-later: 'push l 0' reached the session as the sender was told (delivered)\nPASS: push, inbox listed after-list-later: 'push l 1' reached the session as the sender was told (delivered)\nPASS: push, inbox listed after-list-later: once listed, mail goes into it\nPASS: an MCP server collects no zombies across daemon restarts\nPASS: \u2026and doesn't race to start daemons\nPASS: hook exits 0 and prints nothing when Reason Network is broken\n\n63/63 hook checks passed",
        "expected": "63 of 63 hook checks pass",
        "input": "python3 tests/e2e/hooks.py",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Build section (python3 tests/e2e/hooks.py)",
        "verdict": "yes"
      },
      {
        "claim": "The guided team setup works through a pseudo-terminal",
        "command": "python3 tests/e2e/guided.py",
        "deferred": false,
        "evidence": ") and get the team link\nPASS: agents found were set up without asking\nPASS: a friend joins with the link by typing only their name\nPASS: the same link works for the next friend; a taken name is asked again\nPASS: `Reason Network` after joining shows the team instead of asking again\nPASS: a bad link is caught at the prompt, and Ctrl-C exits cleanly\nPASS: joining it, a person sees the name as typed\nPASS: joining it, an agent in a terminal sees the name defanged\nPASS: joining it, an agent in a terminal sees the name defanged\n\n9/9 guided checks passed  (state in /tmp/reason-network-guided-wle08107)",
        "expected": "9 of 9 guided checks pass",
        "input": "python3 tests/e2e/guided.py",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Build section (python3 tests/e2e/guided.py)",
        "verdict": "yes"
      },
      {
        "claim": "Codex delivery routing works against a fake CLI",
        "command": "python3 tests/e2e/codex_busy.py",
        "deferred": false,
        "evidence": "ued at the interrupt, while its confirmation may come\nPASS: never confirmed: queued once that is overdue\nPASS: never confirmed: \u2026once\nPASS: long gap: mail is still waiting for the hook, not queued\nPASS: long gap: the next PostToolUse shows it, once\nPASS: long tool call: mail during it is not queued behind the turn\nPASS: long tool call: the PostToolUse after it shows the mail, once\nPASS: long turn: all 7 messages arrived at the next PostToolUse\nPASS: long turn: none queued\nPASS: restart: mail waiting for a running turn reaches the next PostToolUse\nPASS: restart: \u2026and is not queued\n\n35/35 passed",
        "expected": "all 35 checks pass",
        "input": "python3 tests/e2e/codex_busy.py",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Build section (python3 tests/e2e/codex_busy.py)",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
