{
  "checker": {
    "claims": [
      {
        "claim": "agents drive herdr through the cli and socket api",
        "command": "<guest-path> api schema",
        "evidence": "schemas: error_response, event, request, subscription_event, success_response\n\nUse `herdr api schema --json` to print the full schema.\nUse `herdr api schema --output PATH` to write it to a file.\n",
        "expected": "the bundled socket API schema is printed with its request and response schema list",
        "input": "herdr api schema",
        "kind": "claim",
        "outcome": "Real input produced the expected result: schemas: error_response, event, request, subscription_event, success_response",
        "returncode": 0,
        "source": "agents drive herdr through the cli and socket api",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Inspected README.md and CLI help (herdr, server, workspace, pane, tab, session, config, api): no cron, scheduler, --once, --now or webhook entry point. The only interval loop is the in-TUI tab bar status command runner (src/app/tab_bar_status.rs), which runs inside the interactive TUI and is not a README promise; it cannot be triggered once from the CLI.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Inspected README.md and CLI help (herdr, server, workspace, pane, tab, session, config, api): no cron, scheduler, --once, --now or webhook entry point. The only interval loop is the in-TUI tab bar status command runner (src/app/tab_bar_status.rs), which runs inside the interactive TUI and is not a README promise; it cannot be triggered once from the CLI.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "server"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "herdr server running; you can use any herdr CLI command in another terminal.\napi socket: <guest-path>\nclient socket: <guest-path>\nlogs: <guest-path>\ndid you mean to open the Herdr TUI? run `herdr`; you do not need `herdr server`.",
      "stdout": "",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "just test runs the repository's documented test recipes; this runs its docs-contract recipe",
        "command": "just docs-contract-test",
        "deferred": false,
        "evidence": "es maintained corrections [787.18ms]\n\nscripts/docs/versions.test.ts:\n(pass) normalizeVersion > normalizes 0.7.5 [0.04ms]\n(pass) normalizeVersion > normalizes v0.7.5\n(pass) normalizeVersion > rejects non-release refs [0.03ms]\n(pass) sortVersionsNewestFirst > sorts semantic versions numerically [0.14ms]\n\nscripts/docs/preview.integration.test.ts:\n(pass) preview documentation snapshots > snapshots and validates the selected commit exactly [247.12ms]\n(pass) preview documentation snapshots > rejects snapshot drift [226.63ms]\n\n 7 pass\n 0 fail\n 21 expect() calls\nRan 7 tests across 3 files. [1273.00ms]",
        "expected": "bun docs tests pass",
        "input": "just docs-contract-test",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "justfile docs-contract-test (README.md development section: just test)",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "The README installer installs the latest release (0.9.5), not a build of the pinned commit; the pinned commit was built separately from source with cargo.",
    "Source build needed installs not stated in the README: rustup, Zig 0.16.0, build-essential, pkg-config, unzip, Node, bun, just (cargo install, since apt just 1.21 rejects the [script] attribute), cargo-nextest.",
    "Debug test build was SIGKILLed on 4 GB RAM; reran with CARGO_BUILD_JOBS=1, CARGO_PROFILE_DEV_DEBUG=0, CARGO_PROFILE_TEST_DEBUG=0, which succeeded.",
    "Claims cannot use stays_running (120 s window), so the server-start claim was replaced with the finite herdr api schema command; the server-start behaviour is covered by the stays_running probe.",
    "Cycle check: detected false. The only interval loop is the in-TUI tab bar status runner, which is not a README promise and cannot be triggered from the CLI."
  ],
  "fault_owner": null,
  "main_blocker": null,
  "operation": "herdr server (headless) start and CLI socket API operation",
  "operation_scope": "Linux x86_64 (Ubuntu 24.04, 4 GB RAM, 2 CPUs); Rust 1.96.1; Zig 0.16.0; Node 22.23.4; bun 1.4.4; just 1.59.0; cargo-nextest 0.9.149; Python 3.12.3",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "Ran README installer: curl -fsSL https://herdr.dev/install.sh | sh (installed release 0.9.5 to ~/.local/bin)",
    "Installed prerequisites for source build: rustup toolchain 1.96.1 with clippy and rustfmt, build-essential, pkg-config, Zig 0.16.0",
    "Built pinned source with cargo build --release (target/release/herdr, 0.9.5)",
    "Installed just, cargo-nextest, Node, bun, unzip for the documented development recipes",
    "Ran just test (documented test recipe): rc 0",
    "Ran herdr server (headless) and verified it reports the socket paths",
    "Exercised socket API via herdr workspace create/list against the running server, then stopped it with herdr server stop",
    "Replayed claim with herdr api schema: prints schemas error_response, event, request, subscription_event, success_response",
    "Ran checker: <env-var>=<guest-path> python3 -I <guest-path> --validate --replay: valid true, no problems"
  ],
  "stuck_step": null,
  "suggested_fix": null
}
