{
  "checker": {
    "claims": [
      {
        "claim": "The read-only MCP server exposes the compiled ledger to agents; searching it returns the compiled objects",
        "command": "<guest-path> mcp serve --config /tmp/ekos-sample/ekos.toml --workspace /tmp/ekos-sample tools/call {\"tool\": \"ekos_search\", \"arguments\": {\"query\": \"Invoice\"}}",
        "evidence": "billing.Invoice\\\"\\n    },\\n    {\\n      \\\"id\\\": \\\"2eea1b14-c51c-51ab-9481-0f4a34162010\\\",\\n      \\\"name\\\": \\\"src/billing.py\\\"\\n    },\\n    {\\n      \\\"id\\\": \\\"9f491768-37e8-522d-b904-e1899af11a1b\\\",\\n      \\\"name\\\": \\\"apply_discount\\\"\\n    },\\n    {\\n      \\\"id\\\": \\\"3b4feb46-6ab7-5e0b-9d80-ade7b390a713\\\",\\n      \\\"name\\\": \\\"src/orders.py\\\"\\n    },\\n    {\\n      \\\"id\\\": \\\"7cff1a25-a3b9-5686-b26e-66693d36cc66\\\",\\n      \\\"name\\\": \\\"place_order\\\"\\n    }\\n  ]\\n}\", \"type\": \"text\"}], \"isError\": false}",
        "expected": "ekos_search returns the compiled object billing.Invoice",
        "input": "{\"tool\": \"ekos_search\", \"arguments\": {\"query\": \"Invoice\"}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: billing.Invoice",
        "source": "`ekos mcp serve --workspace <dir>` exposes the read-only Runtime as a Model Context Protocol",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "ekos query find searches compiled object names from the command line",
        "command": "<guest-path> query find Invoice --mode lexical --config /tmp/ekos-sample/ekos.toml",
        "evidence": "billing.Invoice\n  2eea1b14-c51c-51ab-9481-0f4a34162010  src/billing.py\n  9f491768-37e8-522d-b904-e1899af11a1b  apply_discount\n  3b4feb46-6ab7-5e0b-9d80-ade7b390a713  src/orders.py\n  7cff1a25-a3b9-5686-b26e-66693d36cc66  place_order\n",
        "expected": "lists billing.Invoice among the matches",
        "input": "find Invoice (lexical) on the committed sample repo",
        "kind": "claim",
        "outcome": "Real input produced the expected result: billing.Invoice",
        "returncode": 0,
        "source": "`ekos query find \"<text>\" --mode lexical|vector|hybrid`",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled runs: the console fires pipeline commands on a cron or interval trigger",
        "command": "",
        "evidence": "Scheduling is a feature of the EKOS web console (FastAPI, APScheduler, SQLite, auth tokens, a required notify_url). Its dependencies were not installed and the console was not started in this run, so no cycle was triggered; the Rust CLI has no cron or --once entry point.",
        "expected": "",
        "input": "",
        "kind": "cycle",
        "method": "",
        "outcome": "Scheduling is a feature of the EKOS web console (FastAPI, APScheduler, SQLite, auth tokens, a required notify_url). Its dependencies were not installed and the console was not started in this run, so no cycle was triggered; the Rust CLI has no cron or --once entry point.",
        "schedule": "",
        "source": "web/api/app/scheduler.py",
        "verdict": "blocked"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "mcp",
        "serve",
        "--config",
        "/tmp/ekos-sample/ekos.toml",
        "--workspace",
        "/tmp/ekos-sample"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "ekos",
        "version": "1.1.0"
      },
      "tool_result": {
        "content": [
          {
            "text": "{\n  \"arm_timings\": [\n    {\n      \"candidates\": 6,\n      \"elapsed_ms\": 0.569554,\n      \"source\": \"Bm25\"\n    },\n    {\n      \"candidates\": 1,\n      \"elapsed_ms\": 0.001072,\n      \"source\": \"ExactName\"\n    }\n  ],\n  \"arms_run\": {\n    \"bm25\": true,\n    \"vector\": false\n  },\n  \"matches\": [\n    {\n      \"id\": \"75f45cf5-ddd2-5e5d-b799-d1535248910e\",\n      \"name\": \"Invoice\"\n    },\n    {\n      \"id\": \"a3ab434a-8ea7-5991-add8-c66cec73f13d\",\n      \"name\": \"billing.Invoice\"\n    },\n    {\n      \"id\": \"2eea1b14-c51c-51ab-9481-0f4a34162010\",\n      \"name\": \"src/billing.py\"\n    },\n    {\n      \"id\": \"9f491768-37e8-522d-b904-e1899af11a1b\",\n      \"name\": \"apply_discount\"\n    },\n    {\n      \"id\": \"3b4feb46-6ab7-5e0b-9d80-ade7b390a713\",\n      \"name\": \"src/orders.py\"\n    },\n    {\n      \"id\": \"7cff1a25-a3b9-5686-b26e-66693d36cc66\",\n      \"name\": \"place_order\"\n    }\n  ]\n}",
            "type": "text"
          }
        ],
        "isError": false
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 13788,
      "tools": [
        "ekos_search",
        "ekos_query",
        "ekos_retrieve",
        "ekos_ekl",
        "ekos_neighborhood",
        "ekos_audit",
        "ekos_state",
        "ekos_dependents",
        "ekos_impact",
        "ekos_graph_export",
        "ekos_diff",
        "ekos_status",
        "ekos_transformation_explain",
        "ekos_transformation_diff",
        "ekos_architecture_evaluate",
        "ekos_architecture_drift",
        "ekos_architecture_diff",
        "ekos_identity_review",
        "ekos_architecture_review",
        "ekos_conflicts"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "EKL query over the ledger returns rows for a matching kind (View; none in this Python-only sample, so zero rows)",
        "command": "<guest-path> ekl 'FIND Object WHERE kind = '\"'\"'View'\"'\"'' --config /tmp/ekos-sample/ekos.toml",
        "deferred": false,
        "evidence": "0 rows.",
        "expected": "0 rows.",
        "input": "FIND Object WHERE kind = 'View'",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md, Views (RFC 0169) section",
        "verdict": "yes"
      },
      {
        "claim": "Optional documented test suite of the Rust workspace",
        "command": "<guest-path> test --workspace",
        "deferred": false,
        "evidence": "ql_dialect_clickhouse\n   Doc-tests ekos_plugin_sql_dialect_databricks\n   Doc-tests ekos_plugin_sql_dialect_mssql\n   Doc-tests ekos_plugin_sql_dialect_mysql\n   Doc-tests ekos_plugin_sql_dialect_oracle\n   Doc-tests ekos_plugin_sql_dialect_postgres\n   Doc-tests ekos_plugin_sql_dialect_snowflake\n   Doc-tests ekos_plugin_sql_dialect_trino\n   Doc-tests ekos_plugin_treasury\n   Doc-tests ekos_recovery\n   Doc-tests ekos_runtime\n   Doc-tests ekos_scheduler\n   Doc-tests ekos_segment_backend\n   Doc-tests ekos_semantic\n   Doc-tests ekos_session\n   Doc-tests ekos_simulation\n   Doc-tests ekos_sql_dialect_sdk",
        "expected": "test result: ok",
        "input": "cargo test --workspace from ekos/",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md, Verify the install section",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "Installer fetched release v1.1.0 instead of the pinned commit 8698c2f7; probes and claims used the source-built snapshot binary (also v1.1.0).",
    "Debug test build exhausted the 30G disk; recovered by deleting only own target/debug and running tests with reduced debug info.",
    "Scheduler/cycle feature (web console, FastAPI + APScheduler) was not installed or started; recorded as blocked in cycles.json with no argv."
  ],
  "fault_owner": "none",
  "main_blocker": null,
  "operation": "ekos mcp serve (stdio) and ekos query find on the committed sample repo; ekos ekl and cargo test --workspace as examples",
  "operation_scope": "EKOS v1.1.0 Rust CLI built from the pinned snapshot at ekos/target/release/ekos; sample repo /tmp/ekos-sample; web console scheduling not exercised",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "Read README; installed build-essential via sudo apt-get and Rust via rustup minimal profile (repo pin 1.98.0 fetched automatically).",
    "Ran install.sh with EKOS_CLI_ONLY=1 to avoid the browser wizard; installed release v1.1.0.",
    "Built from source: cargo build --release -p ekos in ekos/ (about 7m44s).",
    "Initialized and ran init --detect, build, recover, resolve, compile, commit on /tmp/ekos-sample; coverage ok.",
    "Probed MCP ekos_search for Invoice over stdio; result contains billing.Invoice.",
    "Ran ekos query find Invoice --mode lexical; result lists billing.Invoice.",
    "Ran ekos ekl FIND Object WHERE kind = View; 0 rows (expected, Python-only sample).",
    "Ran cargo test --workspace: 3102 passed, 0 failed, 181 suites. First run hit disk full in debug build; deleted own target/debug and reran with CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0.",
    "Ran checker with --validate --replay: valid, no problems, replay PASS."
  ],
  "stuck_step": null,
  "suggested_fix": "Install and start the web console (web/api) with a notify_url to exercise scheduled cycles; provision at least 60G disk for debug test builds, or use CARGO_PROFILE_TEST_DEBUG=0."
}
