{
  "checker": {
    "details": {
      "argv": [
        "<host-path>",
        "mcp",
        "share",
        "demo",
        "local"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "stdout": "snulbug MCP policy lab\n\nproxy:     http://127.0.0.1:8080/mcp\nupstreams: files=http://127.0.0.1:41827/mcp, git=http://127.0.0.1:42313/mcp\n\n1. Listed tools through facade: files.read_file, files.shell_exec, git.status\n2. Allowed observed call: files.read_file\n3. Blocked risky call: files.shell_exec\n4. Learned policy: .snulbug-lab/learned-policy.snulbug\n5. Learned policy blocked unobserved call: git.status\n6. Amended candidate: .snulbug-lab/candidate-policy.snulbug\n7. Candidate allowed: git.status\n[excerpt truncated]",
      "working": true
    },
    "status": "PASS"
  },
  "deviations": [
    "README 'Install' says 'uv tool install snulbug[discovery]'; used source mode 'uv sync --all-extras --dev' from the checkout instead, as the pinned repo is the source.",
    "uv was not preinstalled; installed via official astral installer into ~/.local/bin, prepended to PATH.",
    "Did not run pytest or lint suites per task instructions."
  ],
  "main_blocker": null,
  "operation": "snulbug mcp share demo local (README 'Demos'): fake MCP upstreams behind a facade; lists tools through facade, allows files.read_file, blocks files.shell_exec, learns policy, amends candidate, candidate allows git.status",
  "operation_scope": "Local demo only; no external servers, credentials, or browser needed. Ran end-to-end with exit 0.",
  "outcome": "working",
  "steps": [
    "curl -LsSf https://astral.sh/uv/install.sh | sh (README Install: uv)",
    "uv sync --all-extras --dev (README Install: source mode)",
    "uv run snulbug --help equivalent: .venv/bin/snulbug --help",
    "snulbug mcp share demo local (README Demos)"
  ],
  "stuck_step": null,
  "suggested_fix": null
}
