{
  "checker": {
    "claims": [
      {
        "claim": "Start an MCP server from a YAML config",
        "command": "<guest-path> mcp --config server.yaml tools/call {\"tool\": \"CalculatorTool\", \"arguments\": {\"operation\": \"mean\", \"values\": [2, 4, 9]}}",
        "evidence": "'result': 5.0, 'operation': 'mean', 'metadata': {'available_operations': ['correlation', 'mean', 'median', 'std', 'derivative', 'integrate']}}\"}], \"isError\": false}",
        "expected": "tool result with 'result': 5.0",
        "input": "{\"tool\": \"CalculatorTool\", \"arguments\": {\"operation\": \"mean\", \"values\": [2, 4, 9]}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: 'result': 5.0",
        "source": "parrot mcp --config server.yaml",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "@schedule is registered via the scheduler manager and runs under aiohttp on_startup; no standalone CLI trigger was found, so no cycle was exercised.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "@schedule is registered via the scheduler manager and runs under aiohttp on_startup; no standalone CLI trigger was found, so no cycle was exercised.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "mcp",
        "--config",
        "server.yaml"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "description": "AI-Parrot Tools via MCP Protocol",
        "name": "parrot-calc-mcp",
        "version": "1.0.0"
      },
      "tool_result": {
        "content": [
          {
            "text": "{'status': 'success', 'result': 5.0, 'operation': 'mean', 'metadata': {'available_operations': ['correlation', 'mean', 'median', 'std', 'derivative', 'integrate']}}",
            "type": "text"
          }
        ],
        "isError": false
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 1269,
      "tools": [
        "CalculatorTool"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": null,
        "command": "<guest-path> autonomous create --agent out/my_agent.py-checker-b6da0f48de064eadb1cfa80b57db3604",
        "deferred": false,
        "evidence": " deprecated and no longer needed (FEAT-462).\n    # orchestrator.stop() flushes the final OTLP batch; an atexit hook is also\n    # registered as a safety net for non-orchestrated exits.\n    async def on_cleanup(_app: web.Application) -> None:\n        await orchestrator.stop()\n\n    app.on_cleanup.append(on_cleanup)\n\n    return app\n\n\n# ---------------------------------------------------------------------------\n# Development entry-point\n# ---------------------------------------------------------------------------\n\nif __name__ == \"__main__\":\n    web.run_app(create_app(), host=\"0.0.0.0\", port=8080)\n",
        "expected": "documented command completes successfully",
        "input": "<guest-path> autonomous create --agent out/my_agent.py-checker-b6da0f48de064eadb1cfa80b57db3604",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": null,
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "Used pip instead of uv for installation.",
    "parrot conf init does not work with the pinned navconfig 3.0.0; kardex env create was used instead.",
    "The --config loader cannot load WorkingMemoryToolkit (module under parrot.tools.working_memory). The memory probe used parrot mcp-local instead, and the --config claim used CalculatorTool.",
    "Did not run the README Quick Start (needs OpenAI credentials), the scheduler, or make test.",
    "The autonomous example was verified by checker replay; the checker writes it to a suffixed fresh path."
  ],
  "fault_owner": "product",
  "main_blocker": null,
  "operation": "Install ai-parrot from the pinned commit 5f59e1b7b9018f0075e1e7c720ac57d2aa1f3fe0 and run README CLI operations: parrot mcp --config server.yaml (MCP stdio tool call), parrot autonomous create --agent my_agent.py",
  "operation_scope": "Local stdio MCP server and sample-agent scaffolding in a disposable VM; README Quick Start (needs OpenAI credentials), scheduler trigger, and make test were not run.",
  "outcome": "working",
  "plain_failure": "parrot conf init fails with exit 2: kardex: error: argument command: invalid choice: 'create' (choose from 'env', 'vault', 'log').",
  "steps": [
    "Created a Python 3.12.3 venv at <guest-path> (README requires >=3.11,<3.14) and installed ai-parrot from PyPI, then ai-parrot-tools and ai-parrot-server from the pinned source with pip.",
    "Set SITE_ROOT=<guest-path> and scaffolded with kardex env create.",
    "parrot conf init failed: navconfig 3.0.0 (pinned in uv.lock) rejects 'kardex create'. Used kardex env create as a workaround.",
    "Ran parrot mcp-local memory and called wm_store_result; it returned preview parrot-probe-7341.",
    "Wrote server.yaml with an MCPServer root key and ran parrot mcp --config server.yaml. WorkingMemoryToolkit failed to load because the loader only resolves parrot.tools.<name>. CalculatorTool loaded and tools/call returned 'result': 5.0.",
    "Ran parrot autonomous create --agent out/my_agent.py; it wrote a sample agent file, verified by the checker replay.",
    "Ran the checker with --validate --replay; valid=true."
  ],
  "stuck_step": "parrot conf init (README Installation step); the command fails with exit code 2 and 'invalid choice: create'.",
  "suggested_fix": "Change parrot conf init to call 'kardex env create' (or pin a navconfig version that provides 'kardex create'). Fix the --config loader to resolve toolkits under subpackages such as parrot.tools.working_memory."
}
