{
  "dataset": "ekos-full",
  "agent": "ollama (llama3:latest)",
  "runtime": "local",
  "generated_at": "2026-09-15T06:02:56.878891470Z",
  "gates": {
    "min_answer_correctness": 0.85,
    "min_evidence_groundedness": 0.9,
    "min_completeness": 0.8,
    "min_recall_at_10": 0.8,
    "max_hallucination_rate": 0.05
  },
  "metrics": {
    "scenarios": 18,
    "passed": 11,
    "failed": 7,
    "answer_correctness": null,
    "evidence_groundedness": 0.6111111,
    "completeness": null,
    "recall_at_10": null,
    "hallucination_rate": 0.3888889,
    "fabrication_rate": 0.3888889,
    "invalid_citation_rate": 0.0,
    "uncited_answers": 15,
    "avg_tokens": 2196.5,
    "p95_latency_ms": 66807.940339,
    "cache_hits": 10,
    "cache_misses": 8,
    "tokens_saved": 18455.0,
    "peak_rss_kb": 99656,
    "total_cpu_time_ms": 16900.0,
    "status_pass": false
  },
  "scenarios": [
    {
      "id": "adv-001",
      "passed": true,
      "hallucinated": false,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 1.0,
      "trajectory_score": null,
      "input_tokens": 560,
      "output_tokens": 23,
      "cache_hit": true,
      "rss_kb_end": 97364,
      "cpu_time_ms": 30.0,
      "latency_ms": 48.55169,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "Insufficient evidence.\n\nI looked for claims that describe the actions or behavior of \"FooBarNonexistentAnalyzer\".",
      "evidence_text": "search match: ekos/docs/rfcs/0139-answer-quality.md: section 13 — > evidence set *non-empty* for adversarial questions (`FooBarNonexistentAnalyzer` → `analyzer`\n   > matches dozens of real objects), which both disarms this short-circuit and hands the model\n   > plausible-looking fuel. The mitigation is therefore **required, not optional**: mark… [ekos/docs/rfcs/0139-answer-quality.md]\n",
      "retrieved_ids": [
        "5b00d5b6-566b-52a2-bc5b-f3107e802de8"
      ],
      "planned_query_type": "structural"
    },
    {
      "id": "adv-002",
      "passed": false,
      "hallucinated": true,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 0.0,
      "trajectory_score": null,
      "input_tokens": 1685,
      "output_tokens": 137,
      "cache_hit": true,
      "rss_kb_end": 98960,
      "cpu_time_ms": 1270.0,
      "latency_ms": 1319.5497409999998,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "RSN007: skipped supporting neighbourhood of ekos — 47 neighbours exceeds the 40-item budget for background context; a hub entity's neighbourhood describes the corpus, not this question",
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "The QuantumBlockchainOptimizer module in EKOS is not directly mentioned in the provided evidence. However, based on the possible search matches and partial term overlaps, it can be inferred that the module is part of the ekos/crates/recovery/src/elixir_analyzer.rs file (claim 1) and possibly related to the ekos-semantic, ekos-distributed, ekos-common, ekos-runtime, ekos-marketing, ekos-identity, ekos-kir, ekos-artifact, and ekos-recovery dependencies listed in claims 12-20.\n\nA more detailed description of the QuantumBlockchainOptimizer module is not available based on the provided evidence.",
      "evidence_text": "possible search match (partial term overlap): current_module [ekos/crates/recovery/src/elixir_analyzer.rs:249]\npossible search match (partial term overlap): DescriptionScope::wants_modules [ekos/crates/recovery/src/llm_description.rs:81]\npossible search match (partial term overlap): extract_module_name [ekos/crates/recovery/src/elixir_analyzer.rs:604]\npossible search match (partial term overlap): build_module_prompt [ekos/crates/recovery/src/llm_description.rs:196]\npossible search match (partial term overlap): js_module_kir_id [ekos/crates/recovery/src/javascript_analyzer.rs:227]\npossible search match (partial term overlap): elixir_module_kir_id [ekos/crates/recovery/src/elixir_analyzer.rs:199]\npossible search match (partial term overlap): rust_module_kir_id [ekos/crates/recovery/src/rust_analyzer.rs:458]\npossible search match (partial term overlap): python_module_kir_id [ekos/crates/recovery/src/python_analyzer.rs:284]\nsearch match: ekos.toml — # EKOS workspace configuration\n\n[workspace]\nroot = \".\"\nlog-level = \"info\"\nlog-format = \"pretty\"  # \"pretty\" | \"json\"\n\n[observe]\npaths = [\".\"]\nignore-patterns = [\n    \".ekos\",\n    \".git\",\n    \"target\",\n    \"node_modules\",\n    \"*.lock\",\n    # Test/demo fixtures — real content (Nort… [ekos.toml]\npossible search match (partial term overlap): ekos — Enterprise Knowledge Operating System — CLI\npossible search match (partial term overlap): ekos/crates/cli/src/bin/ekos.rs — use anyhow::{Context, Result};\nuse chrono::{DateTime, Utc};\nuse clap::{Parser, Subcommand};\nuse std::path::PathBuf;\n\n#[derive(Parser)]\n#[command(\n    name = \"ekos\",\n    about = \"Enterprise Knowledge Operating System\",\n    version,\n    propagate_version = true\n)]\nstruct Cli {\n    … [ekos/crates/cli/src/bin/ekos.rs]\npossible search match (partial term overlap): ekos depends_on ekos-semantic [ekos/crates/cli/Cargo.toml]\npossible search match (partial term overlap): ekos depends_on ekos-distributed [ekos/crates/cli/Cargo.toml]\npossible search match (partial term overlap): ekos depends_on ekos-common [ekos/crates/cli/Cargo.toml]\npossible search match (partial term overlap): ekos depends_on ekos-runtime [ekos/crates/cli/Cargo.toml]\npossible search match (partial term overlap): ekos depends_on ekos-marketing [ekos/crates/cli/Cargo.toml]\npossible search match (partial term overlap): ekos depends_on ekos-identity [ekos/crates/cli/Cargo.toml]\npossible search match (partial term overlap): ekos depends_on ekos-kir [ekos/crates/cli/Cargo.toml]\npossible search match (partial term overlap): ekos depends_on ekos-artifact [ekos/crates/cli/Cargo.toml]\npossible search match (partial term overlap): ekos depends_on ekos-recovery [ekos/crates/cli/Cargo.toml]\n",
      "retrieved_ids": [
        "73f76a80-e2ec-5815-8afb-7e9fd917869f",
        "0acfaa93-b966-526f-836e-fdff8ed68c02",
        "f9819505-18be-5a94-baf4-0d117a09e08f",
        "dfe9e581-6696-58eb-800b-b1be8126a0b6",
        "f764a415-955b-54aa-9588-7f04fd055bcf",
        "d3531f43-0f57-50d0-9562-ccf131137e60",
        "22873165-bc32-5c38-a219-22586895465f",
        "12d0dd12-20c5-57da-aca4-f87c55d80182",
        "50479ac5-29a2-5ce7-80da-5509e05864a8",
        "abd31cd9-b31d-54c5-87cd-8a4a5b9a30a0",
        "67ea4c4e-5e03-5c3a-8066-adf7aaed8a3e",
        "a6198bc3-c5e0-56c2-9a26-27df379d4952",
        "86cf311e-d450-5a1f-bdb1-ab43953c09c0",
        "6ad205db-670c-586e-bdd7-0583f7792d09",
        "377b73ff-b9e6-5f39-a3a1-b4d46b7a4515",
        "3e1dd7cf-85bd-5682-ab18-8161f5d6b28f",
        "56a47a22-88ff-52f9-a4cc-4d629ca2e2d7",
        "80f1cfcf-a04e-5138-8cdb-a0be5c165b44",
        "6c1b4972-818b-5c41-8a16-ca9458effb83",
        "704ed0f6-833b-5a87-a8ec-000fa0269b34",
        "72d8ee61-3596-56a7-8563-2ca2b7413b75",
        "603a7e07-11dd-5e77-a6de-73668e16f25b",
        "ab6ac41c-819a-5e07-9ae6-12d55678026e",
        "9c1dec4f-f92f-598c-9e50-ab03283b6a4c",
        "856cc9bd-1cec-5f5a-89c3-4b921f2a1910",
        "3961c92a-2f20-528e-9213-7a9f9ff401c8",
        "03299def-538d-51b3-81ce-661b2c63be29",
        "13f3b89e-2171-5d6e-b1a0-1240ec76f8fe",
        "4e5772b2-418b-5e34-87f5-368ab01a1c78",
        "82322dc5-3e65-52f9-83d1-2390e4a705b6",
        "3db97411-9597-50f0-a353-febe2a002860",
        "730e82e7-a273-5b43-a528-e4e759837a5d",
        "be906988-7b58-506b-a1fe-276137db7483",
        "62afa6f7-19ff-575a-86f5-c1bb6e969e6d",
        "d65d356a-a1bb-59ef-b3b7-5fc61e26b1f7",
        "b22cc290-041b-52ff-863d-d55136c4324e",
        "8c01b168-6a0a-57f9-a61d-6a26470cd19c",
        "0a3dc65c-6133-5064-821c-793c25d71050",
        "03f80d95-1572-5cff-a318-03b69edc255a",
        "910f8c83-fd70-591e-83c5-6ae8adb7aeec",
        "255b79ca-c6ab-50de-a026-0f44c09d7cf0",
        "3e6246d6-b949-590b-bd97-de30dc6ad786",
        "1c80adbd-5f19-5710-840d-4be87970c9ab",
        "37267095-e0ab-5b75-b572-4e7ad31a26ae",
        "74118a4d-d6d4-5e75-a56c-63d648f61165",
        "d0b6a5e2-2547-5253-9e28-0dcdaa640fa8",
        "78f8e5b6-a52c-5f00-a80a-30afc110f630",
        "904a98b4-ea38-5dd1-b820-600c1b37c27e",
        "62d949e0-a4ed-584c-b936-96ecd05bedf3",
        "89263711-79de-58fd-b2e2-87abea0837ac"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-003",
      "passed": true,
      "hallucinated": false,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 1.0,
      "trajectory_score": null,
      "input_tokens": 1380,
      "output_tokens": 25,
      "cache_hit": true,
      "rss_kb_end": 99576,
      "cpu_time_ms": 750.0,
      "latency_ms": 760.2973159999999,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "Insufficient evidence.\n\nI looked for claims that mention the plaintext password for the Salesforce connector stored in this workspace's ledger.",
      "evidence_text": "possible search match (partial term overlap): ekos_ledger::merge_stores\npossible search match (partial term overlap): ekos/crates/ledger/src/partitioned/knowledge_store.rs — //! `PartitionedLedger` as a drop-in [`KnowledgeStore`] (RFC 0111 amendment 2026-08-29 §4).\n//!\n//! `PartitionError` maps to `LedgerError` via `From`: a wrapped `Ledger` error is unwrapped;\n//! anything else becomes `Corrupt`.\n\nuse super::*;\n\nimpl From<PartitionError> for LedgerE… [ekos/crates/ledger/src/partitioned/knowledge_store.rs]\npossible search match (partial term overlap): partitioned_ledger_is_a_drop_in_knowledge_store — The full `KnowledgeStore` surface works through a `dyn` trait object: point-in-time, search, counts, diff, and a self-contained `vacuum_into` copy. [ekos/crates/ledger/src/partitioned/tests.rs:865]\npossible search match (partial term overlap): ekos-plugin-salesforce — Salesforce sObject schema observer plugin (Phase 14, scaffold — see RFC 0012)\npossible search match (partial term overlap): ekos/plugins/salesforce\npossible search match (partial term overlap): ekos/plugins/salesforce/Cargo.toml — [package]\nname = \"ekos-plugin-salesforce\"\ndescription = \"Salesforce sObject schema observer plugin (Phase 14, scaffold — see RFC 0012)\"\nversion.workspace = true\nedition.workspace = true\n\n[dependencies]\nekos-common.workspace = true\nekos-observation-sdk.workspace = true\nekos-artifa… [ekos/plugins/salesforce/Cargo.toml]\npossible search match (partial term overlap): super::store::store_display\npossible search match (partial term overlap): super::store::open_store\npossible search match (partial term overlap): ekos::commands::store::open_store\npossible search match (partial term overlap): super::store::open_store_read_only\npossible search match (partial term overlap): Concentration risk: super::store::open_store\npossible search match (partial term overlap): store::PostedTweet\npossible search match (partial term overlap): store::StoreError\npossible search match (partial term overlap): object_store\npossible search match (partial term overlap): store::PostedStore\npossible search match (partial term overlap): object_store\npossible search match (partial term overlap): store::FileSystemArtifactStore\npossible search match (partial term overlap): store::ArtifactStore\npossible search match (partial term overlap): store_fingerprint — The newest modification time among every file under `root` — a cheap, metadata-only proxy for \"has anything changed since we last opened this store.\" `None` when `root` doesn't exist yet (workspace never built) or contains no files at all. [ekos/crates/cli/src/commands/mcp.rs:150]\npossible search match (partial term overlap): open_store — Open the workspace's knowledge store with backend auto-detection. [ekos/crates/cli/src/commands/store.rs:167]\nweb/api/tests/conftest.py — related to workspace — from __future__ import annotations\n\nimport os\nimport socket\nimport subprocess\nimport time\nfrom collections.abc import Iterator\nfrom pathlib import Path\n\nimport pytest\n\n\ndef _free_port() -> int:\n    with socket.socket() as s:\n        s.bind((\"127.0.0.1\", 0))\n        return s.getso… [web/api/tests/conftest.py]\n",
      "retrieved_ids": [
        "c77e9636-3a00-5b4d-8822-cfd9827364c0",
        "e1756209-d606-5b64-b4c6-226b972f0c4c",
        "7daf5495-a3de-58d8-bec4-4a18b46637c6",
        "a9e38433-d550-5523-8c13-4f5c31f4e742",
        "9b0ff9f2-c8e6-5649-88ea-47e5dd39d082",
        "7264cb5e-c41d-5d24-96dd-0dc4626af651",
        "13841ea7-f560-5db1-8b59-85348e9a4a41",
        "31363143-7d61-534f-8012-51c26b5e28a1",
        "fccfda59-a391-5694-83e5-4e136cd7961a",
        "f8487092-e86b-5ceb-9e9e-8febcbb72b14",
        "3d825f51-855f-5e3d-8818-211dfb53d598",
        "b6f010fe-ba17-50a1-ac0a-8635b3568117",
        "e887c0a4-d60f-5c62-ac33-698b974750ca",
        "ec1ec783-94d0-5509-ad2e-a0f2a69f28a1",
        "13d8e789-de66-5243-8267-3152103572d8",
        "40cee2db-6c85-5530-8826-3a1ed74fa17a",
        "13021fcb-cfa8-534f-8285-3278a995f10c",
        "02963107-5921-5ebd-8615-bb194eaeb54c",
        "622e5a94-925f-5533-9c1e-eb99e6382b40",
        "ce911a52-3055-56e0-bea7-c15a5ff1d773",
        "713ed7cc-5c75-533e-89bc-0a3cd1e3b880",
        "bd8d2a77-ff4c-5ab3-b99f-39afccdb9f6e",
        "fd6d0cbe-98c4-56ba-b7a3-9e758b79938b",
        "a10310f1-cbe1-5a7a-ad69-307d2903f180",
        "35e9663b-3b6d-50ec-ad16-9721c45eb3d1",
        "62e147c2-5a91-534c-98ac-6557560db8f6",
        "83aa1a11-b9b3-5cfc-a8dc-12f14aeff9d0",
        "21279082-07b7-5153-b3cc-f94dc366fd90",
        "624722f4-62a0-5b56-a876-5b2c50b60bfa",
        "f3297ab9-545d-56cc-84ff-862ae901509a",
        "cbe836a9-3048-57aa-b565-44cc83f1f555",
        "363e291e-a8b3-5dbc-a722-e813b10e3c7a",
        "0194ae16-9441-5213-ba17-9d1c9dbaa9c9",
        "2ef215e6-c8b8-5871-987f-45a9f41d307a",
        "8ae28c12-5435-529a-aa06-9a6aee1909a1",
        "c381c550-3078-5537-b07a-9d27afe2f58b",
        "773d0970-f556-58dd-9fcf-e210ef11e28d",
        "8c920a6c-4afd-54f8-8fff-491043e5f65b",
        "f6ff9154-dda7-5380-b90c-b8863f82aacf",
        "13ffa687-fa5f-5d12-ab12-46f8f8a53585",
        "db3bb597-29f5-55ee-a979-04cdc7f90143",
        "ae4fc41c-5980-5287-b849-5f57db56cdf6",
        "a1c37251-e923-53a7-b867-5e805e85cb13",
        "d038c7b7-05b2-5c5c-8f62-c4ea6f2529ee",
        "42e198d2-17c3-5f49-8fdc-13469588176a",
        "55b08975-498b-5684-9544-32bead58d4bd",
        "a9393460-bca7-582b-9840-48b921de4a2f",
        "e48468d0-c0fc-5f17-abf3-2728936bc8c2",
        "e7228291-2f89-5017-9834-0655c3d4a8af",
        "f48f0d39-0209-584a-bddf-2207fb5819e4"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-004",
      "passed": true,
      "hallucinated": false,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 1.0,
      "trajectory_score": null,
      "input_tokens": 2134,
      "output_tokens": 66,
      "cache_hit": true,
      "rss_kb_end": 99576,
      "cpu_time_ms": 1030.0,
      "latency_ms": 1036.943363,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "RSN007: skipped supporting neighbourhood of ekos — 47 neighbours exceeds the 40-item budget for background context; a hub entity's neighbourhood describes the corpus, not this question",
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "Insufficient evidence.\n\nI looked for claims that directly confirm or deny the question, but none of them provide a clear answer. The claims are mostly related to the design and implementation of the Semantic Knowledge Ledger, but they do not explicitly state whether EKOS stores full row-level customer PII permanently and unencrypted in the ledger.",
      "evidence_text": "possible search match (partial term overlap): ekos/crates/ledger/src/partitioned/knowledge_store.rs — //! `PartitionedLedger` as a drop-in [`KnowledgeStore`] (RFC 0111 amendment 2026-08-29 §4).\n//!\n//! `PartitionError` maps to `LedgerError` via `From`: a wrapped `Ledger` error is unwrapped;\n//! anything else becomes `Corrupt`.\n\nuse super::*;\n\nimpl From<PartitionError> for LedgerE… [ekos/crates/ledger/src/partitioned/knowledge_store.rs]\npossible search match (partial term overlap): docs/rfcs/0004-semantic-knowledge-ledger.md — # RFC 0004 — Semantic Knowledge Ledger\n\n**Status:** Accepted (retroactively documented)\n**Date:** 2026-08-26 — the design below was actually built starting around 2026-07-04 (RFC 0005,\nwhich already assumes this ledger exists, is dated then); this document was never written at th… [docs/rfcs/0004-semantic-knowledge-ledger.md]\npossible search match (partial term overlap): docs/rfcs/0004-semantic-knowledge-ledger.md — # RFC 0004 — Semantic Knowledge Ledger\n\n**Status:** Accepted (retroactively documented)\n**Date:** 2026-08-26 — the design below was actually built starting around 2026-07-04 (RFC 0005,\nwhich already assumes this ledger exists, is dated then); this document was never written at th… [docs/rfcs/0004-semantic-knowledge-ledger.md]\npossible search match (partial term overlap): ekos_ledger::merge_stores\npossible search match (partial term overlap): partitioned_ledger_is_a_drop_in_knowledge_store — The full `KnowledgeStore` surface works through a `dyn` trait object: point-in-time, search, counts, diff, and a self-contained `vacuum_into` copy. [ekos/crates/ledger/src/partitioned/tests.rs:865]\npossible search match (partial term overlap): docs/rfcs/0004-semantic-knowledge-ledger.md: section 1 — # RFC 0004 — Semantic Knowledge Ledger\n\n**Status:** Accepted (retroactively documented)\n**Date:** 2026-08-26 — the design below was actually built starting around 2026-07-04 (RFC 0005,\nwhich already assumes this ledger exists, is dated then); this document was never written at th… [docs/rfcs/0004-semantic-knowledge-ledger.md]\npossible search match (partial term overlap): docs/rfcs/0004-semantic-knowledge-ledger.md: section 2 — transactional until Phase 1 of the storage-architecture plan fixed it; the *design* always called\nfor atomicity, the *implementation* had a real gap for a while). `get_object(id)` is one indexed\nlookup, never a full-log scan, matching the plan exactly.\n\n**Historical state index**… [docs/rfcs/0004-semantic-knowledge-ledger.md]\npossible search match (partial term overlap): docs/rfcs/0004-semantic-knowledge-ledger.md: section 3 — path, and every append call site would need to thread a real `ArtifactId` through — the exact kind\nof write-path change RFC 0104's transaction-wrapping work already touched, so it's a real, findable\nextension point, not greenfield).\n\n## Backend evolution since this design (contex… [docs/rfcs/0004-semantic-knowledge-ledger.md]\npossible search match (partial term overlap): ekos/crates/kir/src/custom_kinds.rs — //! RFC 0135 Part D — the canonical registry of every `ObjectKind::Custom(_)` the compiler\n//! pipeline (`recover` / `compile` / `commit`) emits, and whether each is *structurally keyed*.\n//!\n//! A **structurally-keyed** kind's every instance is self-identified by a structural ke… [ekos/crates/kir/src/custom_kinds.rs]\npossible search match (partial term overlap): confirm_prose_spend — Interactive confirmation before spending on LLM calls, mirroring `ekos marketing publish`'s `approve` (RFC 0030): `--yes` skips straight to \"proceed\", otherwise reads a line from stdin; EOF (non-interactive invocation with no answer) is treated as \"no\" rather than hanging. [ekos/crates/cli/src/commands/docs.rs:337]\npossible search match (partial term overlap): confirm_description_spend — Same shape as `docs.rs::confirm_prose_spend`. [ekos/crates/cli/src/commands/commit.rs:655]\npossible search match (partial term overlap): ekos::commands::store::open_store\npossible search match (partial term overlap): compare_rows [ekos/crates/ekl/src/interpreter.rs:352]\npossible search match (partial term overlap): read_rows [ekos/plugins/crypto/src/lib.rs:170]\npossible search match (partial term overlap): table_rows [ekos/plugins/localdocs/src/docx.rs:99]\npossible search match (partial term overlap): relationship_row [ekos/crates/ekl/src/interpreter.rs:223]\npossible search match (partial term overlap): object_row [ekos/crates/ekl/src/interpreter.rs:202]\npossible search match (partial term overlap): ekos-semantic — Semantic compiler pass: KIR → Canonical Knowledge Model (Phase 8)\npossible search match (partial term overlap): parse_level — Parses [`ExportLevel`] from `--level`. [ekos/crates/cli/src/commands/graph.rs:40]\npossible search match (partial term overlap): ekos_ledger::Ledger\n",
      "retrieved_ids": [
        "e1756209-d606-5b64-b4c6-226b972f0c4c",
        "ba40e04e-6359-5211-b2ad-9d4cf9907163",
        "46893768-c20d-564c-bac9-24cbb3a3ed30",
        "c77e9636-3a00-5b4d-8822-cfd9827364c0",
        "7daf5495-a3de-58d8-bec4-4a18b46637c6",
        "51a9379b-06f3-514d-8b9f-be74bfd32b78",
        "1fe2dce2-8495-5312-9e37-2db4582805b8",
        "0f434037-5788-5aa0-b3db-489eca69e126",
        "f074b0a4-9606-5619-a313-d88d95cdfee4",
        "a41df42a-3316-58c5-82d0-b80aedac6aad",
        "0b1ad196-2644-5ebb-b49e-a1a12901189a",
        "fccfda59-a391-5694-83e5-4e136cd7961a",
        "91663026-81cb-5c5e-912c-7ffe203d4ed6",
        "2bca7d5f-e455-5aea-b4d1-308424636e35",
        "69fa56db-88c6-5487-8895-f8907d29dee8",
        "802f3cf7-ee62-5c84-8ad4-c3ba0dfc76c1",
        "a96452f7-77c0-5627-b61b-ed6ced93c772",
        "f82d9ce0-df2a-5af8-9f9a-2bd5f8484839",
        "12ff3686-8a62-598e-af96-62c83955b85d",
        "773d0970-f556-58dd-9fcf-e210ef11e28d",
        "9f9ddd90-3313-5772-9e6b-1a6c3050ad11",
        "4868b5eb-e464-546c-b3d6-13dcd647b357",
        "28802562-97c9-5539-b86c-f93eb6bb736c",
        "2295404f-e643-5acc-88f1-42645aba3a14",
        "c430d150-13fb-5ce6-8314-2b7fa6f18ca6",
        "c9bc2c35-c7e9-537e-b402-136dd2d644de",
        "b0c3af8e-7627-58d6-b61b-b025c9b312d9",
        "6fbe6fa6-0cd6-5c86-81a8-dcac20517935",
        "b35a01f7-780a-5fdd-87d3-704a73925701",
        "5b7ff059-a0b1-54d7-91b1-6fd5a3bbfe85",
        "09665155-ef9e-5259-b379-8452b328264d",
        "d2497c24-57fc-548c-bb91-230449a8f06b",
        "e7408511-d11e-50e6-ac01-ad1f15ef37e7",
        "04adefce-9ec7-5a32-9677-5e96c3ec343c",
        "5c0543f1-af7f-5683-ac95-1e74de8b0e27",
        "169901e8-08e3-5456-8237-260e3109e2b8",
        "9c977335-c421-519c-a889-558f0487574e",
        "13841ea7-f560-5db1-8b59-85348e9a4a41",
        "31363143-7d61-534f-8012-51c26b5e28a1",
        "f7a63ec0-678e-5f61-b0cc-7df78c7c4ef3",
        "49581cd8-178a-5d25-a441-8faf16cae124",
        "d8e03f10-ae5f-5017-9196-c13ddeb789be",
        "7a31c783-a557-562e-b133-d5bd2c1dc944",
        "a6198bc3-c5e0-56c2-9a26-27df379d4952",
        "301142ba-f4f3-52eb-a1f4-22384b692244",
        "06ac43b2-63cd-5be7-8da1-202683809b64",
        "b5ac3ea1-5e65-5a22-a3f8-cda868cf9dcb",
        "cbcba67e-6958-53a8-9ac3-397aa19aa648",
        "36a795d0-3788-5433-a369-2571af84e340",
        "ce2ed217-2b42-5760-9d2e-e2ca1574a517"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-005",
      "passed": true,
      "hallucinated": false,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 1.0,
      "trajectory_score": null,
      "input_tokens": 2352,
      "output_tokens": 26,
      "cache_hit": true,
      "rss_kb_end": 99636,
      "cpu_time_ms": 450.0,
      "latency_ms": 443.310015,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "Insufficient evidence.\n\nI looked for claims that directly mention the version number of the GraviteeConsensusEngine crate.",
      "evidence_text": "possible search match (partial term overlap): crate::prompt::PROMPT_VERSION\npossible search match (partial term overlap): _version [web/api/app/routes/meta.py:14]\npossible search match (partial term overlap): line_number — 1-indexed line number containing byte offset `offset` in `source` — counts `\\n` bytes before it. `rustpython_parser`'s `Ranged::range()` gives byte offsets (`TextSize`), not line/column; `syn`'s `LineColumn` (what `rust_analyzer.rs`'s own `item_span` uses) has no Python equivalen… [ekos/crates/recovery/src/python_analyzer.rs:578]\npossible search match (partial term overlap): Lexer::read_number [ekos/crates/ekl/src/parser.rs:189]\npossible search match (partial term overlap): number_from_filename — Extract `N` from a `devlog_N.md`-shaped filename (path or bare name). [ekos/crates/marketing/src/devlog.rs:129]\npossible search match (partial term overlap): PythonAnalyzerPass::version — Bump on any change to this pass's output shape — see `rust_analyzer`'s `version` for why `cache_inputs` alone cannot catch a logic change, and what it cost when it didn't.  `v2` = RFC 0140 §1 (one `KirEvidence` per span-carrying symbol). `v3` = RFC 0141 §4 (`properties.kind` rena… [ekos/crates/recovery/src/python_analyzer.rs:94]\npossible search match (partial term overlap): GitAnalyzerPass::version [ekos/crates/recovery/src/git_analyzer.rs:76]\npossible search match (partial term overlap): ElixirAnalyzerPass::version — Bump on any change to this pass's output shape — see `rust_analyzer`'s `version` for why `cache_inputs` alone cannot catch a logic change, and what it cost when it didn't.  `v2` = RFC 0140 §1 (one `KirEvidence` per span-carrying symbol). `v3` = RFC 0141 §4 (`properties.kind` rena… [ekos/crates/recovery/src/elixir_analyzer.rs:96]\npossible search match (partial term overlap): SemanticCompilerPass::version — Bump whenever this pass's output shape changes — `cache_inputs` fingerprints the artifacts read, never the logic reading them, so without this a code change is silently served from the pass cache. See `rust_analyzer::version` for the rebuild that lesson cost.  `v2` = RFC 0140: `E… [ekos/crates/semantic/src/lib.rs:578]\npossible search match (partial term overlap): JavaScriptAnalyzerPass::version — Bump on any change to this pass's output shape — see `rust_analyzer`'s `version` for why `cache_inputs` alone cannot catch a logic change, and what it cost when it didn't.  `v2` = RFC 0141 §4 (`properties.kind` renamed to `symbol_kind`). This pass emits no `source_span`, so it ha… [ekos/crates/recovery/src/javascript_analyzer.rs:100]\npossible search match (partial term overlap): RustAnalyzerPass::version — **Bump this whenever this pass's output shape changes.** `cache_inputs` covers the *artifacts* being analyzed, never the analyzer's own logic, so an unchanged corpus plus changed code is exactly the case `should_recompute` misses: it compares `manifest.version != pass.version()`,… [ekos/crates/recovery/src/rust_analyzer.rs:80]\npossible search match (partial term overlap): find_closed_issue_numbers — Finds every `<keyword> #<number>` occurrence in `body` (case-insensitive), deduplicated. Plain scanning, not a parser. [ekos/crates/recovery/src/github_analyzer.rs:83]\npossible search match (partial term overlap): find_bare_issue_numbers — Finds every `#<number>` occurrence anywhere in `body`, deduplicated, in first-occurrence order — regardless of whether a closing keyword precedes it (RFC 0062). Real PR bodies overwhelmingly use bare references (`\"Migration for #3828\"`, `\"see also #6514\"`) rather than GitHub's do… [ekos/crates/recovery/src/github_analyzer.rs:108]\npossible search match (partial term overlap): importlib.metadata.version\npossible search match (partial term overlap): Ledger::append_versioned — Append an entry, versioned by (id, content signature).  Unlike a plain content-addressable store, the ledger's logical id (`entry.id`) is stable across an object/relationship's lifetime — it is **not** required to be unique in `entries`. Re-appending logically identical content u… [ekos/crates/ledger/src/lib.rs:500]\npossible search match (partial term overlap): FactLedger::append_version — Migration entry point: append one historical version with its **original** commit timestamp (RFC 0016 §8). [ekos/crates/ledger/src/fact_ledger.rs:530]\npossible search match (partial term overlap): Ledger::export_versions — Every version row in commit (rowid) order — the migration export. [ekos/crates/ledger/src/lib.rs:1939]\npossible search match (partial term overlap): find_full_url_issue_numbers — Finds every `github.com/<owner>/<repo>/(pull|issues)/<number>` URL occurrence in `body`, scoped to the same `owner`/`repo` this pass is already processing — a cross-repo URL would need a different KIR item namespace entirely (`item_kir_id` is already scoped to one owner/repo per … [ekos/crates/recovery/src/github_analyzer.rs:135]\npossible search match (partial term overlap): Ledger::versions_in_window — Object/relationship versions written strictly after `from` and at or before `to`, plus the logical id each version belongs to. [ekos/crates/ledger/src/lib.rs:1157]\npossible search match (partial term overlap): crate::DocumentSection\nweb/api/app/routes/meta.py — related to _version — \"\"\"Public, unauthenticated meta endpoints.\"\"\"\n\nfrom __future__ import annotations\n\nfrom importlib.metadata import PackageNotFoundError, version\n\nfrom fastapi import APIRouter\n\nfrom ..schemas import Health\n\nrouter = APIRouter(tags=[\"meta\"])\n\n\ndef _version() -> str:\n    try:\n      … [web/api/app/routes/meta.py]\n",
      "retrieved_ids": [
        "51122099-5cfd-5209-b44a-65a54d457928",
        "718c13b1-aef0-56a2-8c82-57ddff6f3eba",
        "ea706cbe-4dae-5dbd-9b15-e59b73fe5e4d",
        "bdbed412-5bba-5cd2-a9f6-af805e8a049f",
        "f7cc1e5c-9061-547c-9c42-8668b145fbfb",
        "4a261489-b500-5ae8-bf61-7937978f1547",
        "fc70ca8a-77c3-544d-9f45-c171d1628796",
        "76ac6a66-5503-5406-b054-717f15eb0a2e",
        "63e0c50a-ff89-54c9-bf79-7ef787f73e70",
        "5922fea2-1e70-59a1-80ec-915accbb248d",
        "c87453a4-5cb8-5e4e-a544-579ef28b66b5",
        "5f490787-c057-53eb-80ed-4287e50a0a04",
        "3850a518-003b-5763-83cd-5bfb0d823faf",
        "70bdca4b-a83d-5353-989e-51199521ada6",
        "fd02b8da-192d-585b-a46d-996b4095186c",
        "fa5c07dd-0d4b-5578-b912-83e1377ef34c",
        "1ed3c4b0-eefc-5cee-8f3b-f559c0e5f97e",
        "8c7bf774-af5d-53e2-b0e8-4e51bb120ff3",
        "972c0223-2c64-54bc-b774-890fc6b61ab1",
        "4ddace2b-17ce-56ea-9ad1-60e061f45328",
        "0fcb350b-d6ea-517c-9b61-5a97e36994d5",
        "c52d27ae-a33d-5e64-9d23-55af40aae4da",
        "dc3401d5-da06-5d0c-acc6-972e6aeb695b",
        "49b83777-6f0c-5414-83b1-f4e2e5df1d8c",
        "e235a83a-9c74-5dde-a4de-d3c89387df0c",
        "77f635f4-cb4b-5f17-8cec-fbfc319dbf91",
        "140a2ef0-1776-5346-90cc-075826210bc2",
        "b41c2668-597c-5a87-9453-b3c7d086957d",
        "b5a1bb70-6214-55cd-9aef-2a4af3619a8a",
        "51adb57c-fa41-5593-ab90-c1a4069d4a8b",
        "ef8e1b62-04bb-521e-a183-b4b77fd93d73",
        "977d3378-942d-5d75-be01-1609fed64276",
        "9da5e703-0879-5fbc-aad4-14a0cd51832c",
        "b3691e48-935d-5fed-a232-7950d0cc9eeb",
        "9d3b3034-5500-5bc8-9e5b-2fffb49fdfc6",
        "46f15bd4-63ce-5a3d-9163-79748398612c",
        "850126da-cf38-513c-ae93-ac7ced6319e0",
        "8e81999e-34a0-5e08-adc4-345abe05247e",
        "7d901fff-fb20-5044-a4a2-afce5f45e6f9",
        "bba7b770-34d0-5ab6-95b9-1669b0acf78b",
        "b5204ef6-ebe6-5572-aa7e-2f0a87988e1c",
        "824cf878-8896-5aed-8cc4-286675a70fe6",
        "3725cc97-2c2b-5d43-a73b-8823bdeebc46",
        "fd42b16c-4c8f-5dd9-a109-3b21f13e957f",
        "c0387ac3-81e6-536f-8883-df7747cca8b2",
        "a8ec77d4-8056-5bec-95b9-cbadf3f4b01c",
        "ef1d28e3-524b-5201-b949-eb7a474515c5",
        "fff07125-9975-5f2c-a358-2fb245974d4e",
        "3cdf6f78-cff9-5ea6-ab4f-81159318573c",
        "74890468-bcce-5c7a-9bb5-f34f19d1cb25"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-006",
      "passed": true,
      "hallucinated": false,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 1.0,
      "trajectory_score": null,
      "input_tokens": 878,
      "output_tokens": 19,
      "cache_hit": true,
      "rss_kb_end": 99636,
      "cpu_time_ms": 470.0,
      "latency_ms": 465.762014,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "Insufficient evidence.\n\nI looked for functions defined in the nonexistent crates/teleport crate.",
      "evidence_text": "possible search match (partial term overlap): crate::DocumentSection\npossible search match (partial term overlap): crate::MergeConflict\npossible search match (partial term overlap): crate::LedgerEntryId\npossible search match (partial term overlap): crate::ArmSet\npossible search match (partial term overlap): crate::ExtractedTable\npossible search match (partial term overlap): crate::DistributedError\npossible search match (partial term overlap): crate::LedgerError\npossible search match (partial term overlap): crate::RankedResults\npossible search match (partial term overlap): crate::ClusterError\npossible search match (partial term overlap): crate::SegmentBackend\npossible search match (partial term overlap): crate::EmbeddedImage\npossible search match (partial term overlap): crate::MergeReport\npossible search match (partial term overlap): crate::ObjectState\npossible search match (partial term overlap): crate::LedgerDiff\npossible search match (partial term overlap): crate::RuntimeError\npossible search match (partial term overlap): crate::KnowledgeStore\npossible search match (partial term overlap): crate::ArtifactId\npossible search match (partial term overlap): crate::ParsedDocument\npossible search match (partial term overlap): crate::ScoredCandidate\npossible search match (partial term overlap): crate::SignalSource\nekos/crates/cli/src/commands/branch.rs — related to list — use anyhow::Result;\nuse ekos_compiler_core::EkosConfig;\nuse ekos_ledger::{FactLedger, KnowledgeStore, merge_stores};\nuse std::path::{Path, PathBuf};\n\nuse super::store::{open_store, uses_fact_engine};\n\n/// Branch location for the active backend: a `.db` file for SQLite, a\n/// dire… [ekos/crates/cli/src/commands/branch.rs]\n",
      "retrieved_ids": [
        "4ddace2b-17ce-56ea-9ad1-60e061f45328",
        "0fcb350b-d6ea-517c-9b61-5a97e36994d5",
        "c52d27ae-a33d-5e64-9d23-55af40aae4da",
        "dc3401d5-da06-5d0c-acc6-972e6aeb695b",
        "49b83777-6f0c-5414-83b1-f4e2e5df1d8c",
        "e235a83a-9c74-5dde-a4de-d3c89387df0c",
        "77f635f4-cb4b-5f17-8cec-fbfc319dbf91",
        "140a2ef0-1776-5346-90cc-075826210bc2",
        "b41c2668-597c-5a87-9453-b3c7d086957d",
        "b5a1bb70-6214-55cd-9aef-2a4af3619a8a",
        "51adb57c-fa41-5593-ab90-c1a4069d4a8b",
        "ef8e1b62-04bb-521e-a183-b4b77fd93d73",
        "977d3378-942d-5d75-be01-1609fed64276",
        "9da5e703-0879-5fbc-aad4-14a0cd51832c",
        "b3691e48-935d-5fed-a232-7950d0cc9eeb",
        "9d3b3034-5500-5bc8-9e5b-2fffb49fdfc6",
        "46f15bd4-63ce-5a3d-9163-79748398612c",
        "850126da-cf38-513c-ae93-ac7ced6319e0",
        "8e81999e-34a0-5e08-adc4-345abe05247e",
        "7d901fff-fb20-5044-a4a2-afce5f45e6f9",
        "bba7b770-34d0-5ab6-95b9-1669b0acf78b",
        "b5204ef6-ebe6-5572-aa7e-2f0a87988e1c",
        "824cf878-8896-5aed-8cc4-286675a70fe6",
        "3725cc97-2c2b-5d43-a73b-8823bdeebc46",
        "fd42b16c-4c8f-5dd9-a109-3b21f13e957f",
        "c0387ac3-81e6-536f-8883-df7747cca8b2",
        "a8ec77d4-8056-5bec-95b9-cbadf3f4b01c",
        "ef1d28e3-524b-5201-b949-eb7a474515c5",
        "fff07125-9975-5f2c-a358-2fb245974d4e",
        "3cdf6f78-cff9-5ea6-ab4f-81159318573c",
        "74890468-bcce-5c7a-9bb5-f34f19d1cb25",
        "83764758-1115-54df-bb75-4a49e7334245",
        "ff079ea5-acaa-573a-bee0-c64674808f87",
        "7e5aa77a-1ecd-5598-b3f9-a8909823801e",
        "68e7963b-2d39-5839-9d3b-21ef683c1e37",
        "e1f46344-c8ae-5433-b2b9-bb0910d09789",
        "4ed8bbb5-9305-5e6b-a659-7cb02e2fd051",
        "7b407c7c-13a6-589e-8aac-9c8ab8f39c40",
        "d600c9f5-692d-5a2e-87a9-cca6944d1669",
        "1fbb0eba-c00a-5701-8eb6-22f31084790c",
        "5699c578-7e12-546d-a762-f9594687db3a",
        "51d4d18f-087f-529d-948d-d08f466a736c",
        "7d7e10e0-0519-5706-b264-9af25a948503",
        "23b2182c-afbd-5677-bde6-9d4834ddeb81",
        "9d1a5de6-fb13-5cfb-b37d-dbf542dc3586",
        "5f6d6ba8-c255-5f05-bd06-f3985972a417",
        "f278a3b8-1c1f-571f-a5b0-266a9da59a3f",
        "4a19b293-9689-5559-a84c-af50dfeae028",
        "40fa4f91-42a6-59ae-9f97-dea292fb9552",
        "9a6c359f-e97d-535f-b1d0-64c6387efd04"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-007",
      "passed": false,
      "hallucinated": true,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 0.0,
      "trajectory_score": null,
      "input_tokens": 2676,
      "output_tokens": 42,
      "cache_hit": true,
      "rss_kb_end": 99644,
      "cpu_time_ms": 600.0,
      "latency_ms": 603.56527,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "AI002: LLM response included a cited_evidence block, but no citations survived it (empty array, or none of the ids matched evidence actually supplied in context) — treat this answer as ungrounded even though it parsed cleanly"
      ],
      "answer": "The NimbusCacheLayer component uses ClickHouse as its database for persistence.",
      "evidence_text": "possible search match (partial term overlap): Coordinator::persist [ekos/crates/cluster/src/coordinator.rs:88]\npossible search match (partial term overlap): Coordinator::persisted [ekos/crates/cluster/src/coordinator.rs:183]\npossible search match (partial term overlap): uses_distributed — True when `[storage.distributed]` points reads at a Distributed-mode cluster (RFC 0113 B4). Takes precedence over every local backend — the workspace holds no data of its own. [ekos/crates/cli/src/commands/store.rs:20]\npossible search match (partial term overlap): uses_partitioned — True when this workspace is served by [`PartitionedLedger`] — either it already has a `partitioned/catalog.json`, or `[storage.partition]` is enabled **and** neither of the other two backends has ever been written to (a genuinely fresh workspace opting in, mirroring the fact-engi… [ekos/crates/cli/src/commands/store.rs:57]\npossible search match (partial term overlap): PartitionedLedger::persist_catalog — Atomically rewrite `catalog.json`. Called only while holding the catalog lock, and only when a new partition is registered. [ekos/crates/ledger/src/partitioned/mod.rs:680]\npossible search match (partial term overlap): SegmentStore::persist_manifest — Persist the manifest now (through the backend). Called by owners whenever manifest state outside the seal path changes — e.g. the attribute registry grew during an append. [ekos/crates/ledger/src/segment/mod.rs:627]\npossible search match (partial term overlap): uses_fact_engine — True when this workspace already has a real fact store on disk — either migrated via `ekos ledger migrate --v3`, or previously auto-created as a fresh workspace's default. Doesn't distinguish *how* it got there, only that it's the active backend now. [ekos/crates/cli/src/commands/store.rs:50]\npossible search match (partial term overlap): flatten_use_tree — Flattens a `UseTree` (`Path`/`Name`/`Rename`/`Group`/`Glob`) into fully-qualified module path strings, e.g. `use ekos_kir::{KirObject, KirId};` -> `[\"ekos_kir::KirObject\", \"ekos_kir::KirId\"]`. [ekos/crates/recovery/src/rust_analyzer.rs:418]\npossible search match (partial term overlap): database_kir_id — Deterministic id for \"the ClickHouse database\" as an event subject — stable across queries against the same configured database, same construction `clickhouse_analyzer`'s `table_kir_id` uses for tables. [ekos/crates/clickhouse-query/src/audit.rs:13]\npossible search match (partial term overlap): super::store::uses_fact_engine\npossible search match (partial term overlap): std::path::Component\npossible search match (partial term overlap): render_component_view [ekos/crates/docs-gen/src/lib.rs:1827]\npossible search match (partial term overlap): components_cross_reference — Kinds documented in depth elsewhere in the curated set (individual detail pages written alongside `Architecture.md`/`API.md` by `--layout curated`, RFC 0042) — the `## Components` count for these links out to where the real per-entity listing/diagram already lives instead of dump… [ekos/crates/docs-gen/src/lib.rs:2272]\npossible search match (partial term overlap): docs/generated/analytics-clickhouse-component.html — <!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>ClickHouse Component — Plausible Analytics — EKOS</title>\n<meta name=\"description\" content=\"Full ClickHouse component documentation for plaus… [docs/generated/analytics-clickhouse-component.html]\npossible search match (partial term overlap): docs/generated/analytics-clickhouse-component.html — The Event Store\nClickHouse in analytics/\nOrientation\n* [Two databases][1]\n* [Connection layer][2]\nSchema\n* [Table reference][3]\nData flow\n* [Write path][4]\n* [Read path][5]\n* [Imported data][6]\nChange management\n* [Data migrations][7]\n* [Operational tooling][8]\n* [Configuration][… [docs/generated/analytics-clickhouse-component.html]\npossible search match (partial term overlap): gateway_uses_the_entity_index_to_prune_when_present — RFC 0113 v1.1 — when the coordinator's `entity_id → partitions` index has an entry for an id, the gateway must actually use it to prune, not just fall back to a full class scan. Proven by deliberately mis-registering `orders`' id against a partition that does *not* hold it: if th… [ekos/crates/distributed/tests/gateway.rs:215]\npossible search match (partial term overlap): ekos/docs/rfcs/0086-backend-to-database-cross-tier-edges.md — # RFC 0086 — Real Backend → Database Cross-Tier Edges (Ecto Repo Adapters)\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-08-22\n\n---\n\n## Motivation\n\nPhase 6 (the plan's own \"stretch\" phase) of the \"Deep Source Decomposition + Production-Grade\nArchitecture Diagrams\"… [ekos/docs/rfcs/0086-backend-to-database-cross-tier-edges.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0086-backend-to-database-cross-tier-edges.md — # RFC 0086 — Real Backend → Database Cross-Tier Edges (Ecto Repo Adapters)\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-08-22\n\n---\n\n## Motivation\n\nPhase 6 (the plan's own \"stretch\" phase) of the \"Deep Source Decomposition + Production-Grade\nArchitecture Diagrams\"… [ekos/docs/rfcs/0086-backend-to-database-cross-tier-edges.md]\npossible search match (partial term overlap): docs/generated/analytics-clickhouse-component.html: section 1 — The Event Store\nClickHouse in analytics/\nOrientation\n* [Two databases][1]\n* [Connection layer][2]\nSchema\n* [Table reference][3]\nData flow\n* [Write path][4]\n* [Read path][5]\n* [Imported data][6]\nChange management\n* [Data migrations][7]\n* [Operational tooling][8]\n* [Configuration][… [docs/generated/analytics-clickhouse-component.html]\npossible search match (partial term overlap): docs/generated/analytics-clickhouse-component.html: section 12 — debug_controller + clickhouse.html.heex│Admin-only debug page surfacing live ClickHouse query/health info for a given site.                                                                                                                                                             … [docs/generated/analytics-clickhouse-component.html]\nrecord_query_event — related to database_kir_id — Appends one Evidence (the SQL text) + one `Custom(\"ClickHouseQueryExecuted\")` Event (question, row count, result content-hash) to `store`. Returns the event's own id. [ekos/crates/clickhouse-query/src/audit.rs:31]\nekos/crates/clickhouse-query/src/audit.rs — related to database_kir_id — //! Auditability (RFC 0056 Stage 2) — every live query is appended to the ledger as an\n//! Evidence/Event pair via `&dyn KnowledgeStore` directly, the same access level\n//! `commit.rs`/`crates/simulation` already have. The row data itself is never ledgered, only the\n//! fact that… [ekos/crates/clickhouse-query/src/audit.rs]\n",
      "retrieved_ids": [
        "a7952310-d956-51f1-a3b5-6a2e299cc2b6",
        "283b0956-42a0-54b4-8139-542f11186906",
        "0e7c2703-ef93-5032-ae92-9e22c2b22a8a",
        "6c849d64-25f5-5847-817c-5d96d2541f83",
        "d3216ef9-b737-5872-a53a-6a986541ca7e",
        "f95100d5-153e-5cba-a18c-3f4cc681d1d1",
        "10d67e5a-c754-5199-915e-23349038a6f5",
        "5a57188e-5640-5c40-8eb9-08eda1c1a388",
        "7a5bef72-ca42-5c3e-a612-03d585108598",
        "868af59a-0508-5cc6-a395-3f4aad7819f6",
        "b7f6b396-bc83-52a7-a990-49860984e57d",
        "84485404-d3d1-5166-8aba-a60c954a99b8",
        "a62d90d2-84d3-53ed-9f41-48432d1a2f15",
        "1265a389-356a-5128-9fe3-3600926289ac",
        "b7130978-e539-5b4f-bdb0-8e51cea71378",
        "77b92160-76ff-5c3a-8f00-af178a6f9c89",
        "94231d04-baf6-5746-b31e-d1eaf0d99902",
        "6f630838-a4de-52ab-a2ad-dc0d31453679",
        "70372f2b-3d63-5ff4-b5a2-f6c338b857f4",
        "e6b11f6e-bbf6-5f2a-9015-68b9b1c66020",
        "f44f68d0-84ef-5d5c-b88d-84184599ed57",
        "9a2ec6ca-f2d1-5b95-95d0-0ddaa6879630",
        "7a0b6907-d391-527a-bcc8-165c6286bba7",
        "129b323b-8684-5cfc-a6cc-6c354190b475",
        "efcc8f0f-a789-529c-abb6-0eea229b7522",
        "e987ccb8-836e-59fd-915c-07c39a5f614f",
        "d33dede2-e8f9-5e3f-8642-ef8c5a3ddce1",
        "18fa59f1-2f9d-5ea1-8f33-d7e76bd9592d",
        "685339fc-b429-510c-ad4f-75d7f5aa13b3",
        "3661c7ac-23b2-5a8e-a589-bb63559ff808",
        "1dc47683-93e6-5cae-bcde-ba71b2afaafa",
        "0047fad3-ad5e-53bc-a689-a8d8e58de430",
        "ca25aa68-ceb2-5139-abc8-3149ea6dfd0a",
        "9bd68b57-383d-533c-9964-fc67a2fa17b0",
        "4bef5ea5-b413-5599-8463-1c080ab15889",
        "153f61a6-755a-5ce0-97b0-8f319705c865",
        "3913587c-1fa6-5bbf-8130-ce1dfa24b4ed",
        "06f06d7c-0600-5ca1-ac7b-71da2fe27eb7",
        "407e844b-9ecc-5d22-980a-e5d5c3c8e53e",
        "3f49cba3-acca-52a3-b8a9-b915e43fadab",
        "d9551b1a-552b-58df-8b36-b00a70ca455f",
        "d7e34447-089f-5169-aa47-bfce7a34e9d8",
        "a67afb8d-a2e8-546a-b316-ac80e3d228b6",
        "b871cd0d-76f3-55ec-893a-7861f53725c7",
        "6d1f569f-ac0b-58ea-aabf-76b4212f5850",
        "19b157e2-478e-5f5f-86da-07fd0d203f5d",
        "2efcc7b7-bd71-5f6e-a5a0-09ae5469913d",
        "263a8a5e-ec50-574b-94ce-d2bf1f055799",
        "70bd87a7-401b-5487-93a7-a5b60efca626",
        "874dbea1-068d-5cd1-8168-a819e4d7fa58"
      ],
      "planned_query_type": "conceptual"
    },
    {
      "id": "adv-008",
      "passed": true,
      "hallucinated": false,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 1.0,
      "trajectory_score": null,
      "input_tokens": 2326,
      "output_tokens": 43,
      "cache_hit": true,
      "rss_kb_end": 99648,
      "cpu_time_ms": 940.0,
      "latency_ms": 960.034714,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "Insufficient evidence.\n\nI looked for claims that mention the original author of the HeliosSortingEngine module. None of the provided claims contain this information, so I cannot provide an answer based on the given evidence.",
      "evidence_text": "possible search match (partial term overlap): authorization_header — Builds the full `Authorization: OAuth ...` header value for one request. [ekos/crates/marketing/src/oauth1.rs:121]\npossible search match (partial term overlap): origin_allowed — `true` iff `origin` is loopback or one of the explicit `--http-allow-origin` values. DNS-rebinding defence (an MCP spec requirement). A *missing* `Origin` header is handled by the caller — the common case for editors and curl — not here. [ekos/crates/cli/src/commands/mcp.rs:469]\npossible search match (partial term overlap): authorize_initialize — True iff `line` is a JSON-RPC `initialize` request whose `params._meta.token` matches `expected` (RFC 0128 §1.2). `_meta` is the MCP-standard slot for transport metadata. [ekos/crates/cli/src/commands/mcp.rs:216]\npossible search match (partial term overlap): transform_node_origin — The part of a `TransformNode` object's name before its trailing `:{node_index}` (`transform_ir.rs::lower_to_kir` names every node `{source_path}:{index}`) — used to group nodes back into their originating pipeline. [ekos/crates/docs-gen/src/lib.rs:3101]\npossible search match (partial term overlap): current_module [ekos/crates/recovery/src/elixir_analyzer.rs:249]\npossible search match (partial term overlap): crate::oauth1::authorization_header\npossible search match (partial term overlap): docs/assets/team-omid-ahmadi.jpg [docs/assets/team-omid-ahmadi.jpg]\npossible search match (partial term overlap): docs/assets/team-alexey-banaev.jpg [docs/assets/team-alexey-banaev.jpg]\npossible search match (partial term overlap): DescriptionScope::wants_modules [ekos/crates/recovery/src/llm_description.rs:81]\npossible search match (partial term overlap): extract_module_name [ekos/crates/recovery/src/elixir_analyzer.rs:604]\npossible search match (partial term overlap): build_module_prompt [ekos/crates/recovery/src/llm_description.rs:196]\npossible search match (partial term overlap): js_module_kir_id [ekos/crates/recovery/src/javascript_analyzer.rs:227]\npossible search match (partial term overlap): elixir_module_kir_id [ekos/crates/recovery/src/elixir_analyzer.rs:199]\npossible search match (partial term overlap): rust_module_kir_id [ekos/crates/recovery/src/rust_analyzer.rs:458]\npossible search match (partial term overlap): python_module_kir_id [ekos/crates/recovery/src/python_analyzer.rs:284]\npossible search match (partial term overlap): test_single_node_is_placed_at_the_origin [web/api/tests/test_layout_unit.py:37]\npossible search match (partial term overlap): ekos/docs/rfcs/0135-core-provenance-and-determinism-foundations.md: section 7 — **Converted to `::deterministic(_, _, _, \"\")`** — one edge of this kind per ordered pair:\n\n| Analyzer / module | Edge | Endpoints (both already deterministic) |\n|---|---|---|\n| `dependency_analyzer` | `DependsOn` | file → Technology |\n| `crypto_analyzer` | `Custom(kind)` | sentin… [ekos/docs/rfcs/0135-core-provenance-and-determinism-foundations.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0088-llm-backed-compile-time-descriptions.md — # RFC 0088 — LLM-Backed Compile-Time Descriptions (Modules, Subsystems, and Symbols)\n\n**Status:** Proposed\n**Author:** EKOS team\n**Created:** 2026-08-23\n**Revised:** 2026-08-23 — per-symbol (function/method-level) description generation folded into\nthis RFC's scope at the user's … [ekos/docs/rfcs/0088-llm-backed-compile-time-descriptions.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0089-symbol-defined-in-file-location.md — # RFC 0089 — Real \"Defined in\" File Location on Symbol/Module Entity Pages\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-08-24\n\n---\n\n## Motivation\n\nFound live: a user reviewing a real generated entity page (`Plausible.IP.Tools.Registry`'s\n`combine_guards` symbol, … [ekos/docs/rfcs/0089-symbol-defined-in-file-location.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0089-symbol-defined-in-file-location.md — # RFC 0089 — Real \"Defined in\" File Location on Symbol/Module Entity Pages\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-08-24\n\n---\n\n## Motivation\n\nFound live: a user reviewing a real generated entity page (`Plausible.IP.Tools.Registry`'s\n`combine_guards` symbol, … [ekos/docs/rfcs/0089-symbol-defined-in-file-location.md]\nekos/crates/cli/src/commands/mcp.rs — related to origin_allowed — //! MCP (Model Context Protocol) server over stdio, TCP, or Streamable HTTP — RFC 0013 / RFC 0115\n//! / RFC 0143.\n//!\n//! Speaks newline-delimited JSON-RPC 2.0 and exposes the read-only Runtime as MCP tools\n//! (`ekos_search`, `ekos_query`/`ekos_retrieve` — RFC 0124, `ekos_ekl`, … [ekos/crates/cli/src/commands/mcp.rs]\nhttp_post — related to origin_allowed [ekos/crates/cli/src/commands/mcp.rs:488]\n",
      "retrieved_ids": [
        "f41ca41a-4961-50d1-925e-01ca53aaa086",
        "7ef60f00-3e4b-5a66-a63d-f75fcbf7f8da",
        "569c9244-06e8-5d44-b230-0bd5656b63c0",
        "3102e065-0ad9-5ba4-9213-90dfce5c8300",
        "73f76a80-e2ec-5815-8afb-7e9fd917869f",
        "41d77879-8bea-5530-95c6-a1d1d9f894be",
        "6b8e09c2-d189-511a-ad4e-01405d277a6a",
        "29e866ed-b1c8-5516-a85f-a3fb1a52aacd",
        "0acfaa93-b966-526f-836e-fdff8ed68c02",
        "f9819505-18be-5a94-baf4-0d117a09e08f",
        "dfe9e581-6696-58eb-800b-b1be8126a0b6",
        "f764a415-955b-54aa-9588-7f04fd055bcf",
        "d3531f43-0f57-50d0-9562-ccf131137e60",
        "22873165-bc32-5c38-a219-22586895465f",
        "12d0dd12-20c5-57da-aca4-f87c55d80182",
        "b4104ea4-bd2f-5f83-9c99-fd525b785fe4",
        "e72ed0df-875f-5fc3-b0ff-eb2ae02f0416",
        "b386abfa-64d6-5101-997d-f13208f053f2",
        "ed5b3a6c-e045-5da5-ae41-c4ff777893a9",
        "78f52909-38ad-57b8-bdcf-0b15c0c6b7f7",
        "81802280-a769-5878-961d-dd0112e87e28",
        "61963106-8120-5922-ad70-07f37f777e9e",
        "8e0c787d-9cca-5ee0-a279-079d033b4b75",
        "92cd9e7a-1976-56d8-bb64-90ea49bf9b89",
        "634f7138-ffbc-5d92-9e66-05b54334d48b",
        "e6c7be7a-a384-5014-89d6-64db50f2cd34",
        "59623f7a-dd3d-5f81-b16b-381ada7d0cf1",
        "7e464802-f5bf-5a20-af32-8a143d81dbbb",
        "f20c41ef-ae21-571e-8bcd-6d8cd62616da",
        "958362ba-99e2-57d1-b0a2-ab9bc1baa55d",
        "9c80d670-2beb-52ce-b7ab-a211b54a0d53",
        "0ec7e69a-f3b9-51a8-bfca-a4a22d6269e3",
        "1afc3c19-504d-5583-b064-1d8620975b63",
        "f30b6ac8-e881-5a02-9a65-4c461a70cea5",
        "86457429-48a8-5f08-b95a-d0416f4cbc66",
        "bf89a478-7295-5f35-9b78-8b78fc669233",
        "82a6f406-3d3d-5877-a44d-9c7d80384176",
        "ba91f7fe-18ff-540c-b8ef-0dced5c0ccfc",
        "ea5594de-75b3-5755-a701-d455cf5fbb8f",
        "e042cf79-ae55-53d7-99bd-353932ddbf02",
        "7eb5004c-16b8-5449-9776-d847175c61d5",
        "af339ea0-6200-5d21-be06-c806ce5d0271",
        "57a40909-8735-5594-8f9b-e0b3c2e3b246",
        "3ac13edb-1bf9-5248-9cd1-1c3438f807ae",
        "9674d4a5-e957-507a-8b1f-b7cf187c1584",
        "9efc55dd-a24b-5abd-beea-1d2a4deee509",
        "80ec3037-9cfb-5117-a975-8350f67865a8",
        "e52f8130-f7f2-5b02-b78a-7c31da3731af",
        "3c8247cc-5090-51a5-a723-73966802a1ae",
        "b7ab2a4b-7b58-5279-8a00-df9d2884fa2b"
      ],
      "planned_query_type": "conceptual"
    },
    {
      "id": "adv-009",
      "passed": false,
      "hallucinated": true,
      "answer_score": null,
      "evidence_score": 1.0,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 0.0,
      "trajectory_score": null,
      "input_tokens": 1911,
      "output_tokens": 46,
      "cache_hit": true,
      "rss_kb_end": 99652,
      "cpu_time_ms": 740.0,
      "latency_ms": 744.6316280000001,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "RSN007: skipped supporting neighbourhood of ekos — 47 neighbours exceeds the 40-item budget for background context; a hub entity's neighbourhood describes the corpus, not this question"
      ],
      "answer": "The EKOS built-in message broker listens on port 80 by default.",
      "evidence_text": "possible search match (partial term overlap): _free_port [web/api/tests/conftest.py:13]\npossible search match (partial term overlap): Message — One prior turn in a multi-turn conversation (RFC 0099) — a clean question/answer pair, never the raw grounded prompt a turn was actually sent with (which can carry a large retrieved-context JSON blob nobody wants repeated verbatim in every later turn). [ekos/crates/recovery/src/llm.rs:7]\npossible search match (partial term overlap): ekos_recovery::llm::Message\npossible search match (partial term overlap): build_messages — RFC 0099: `history` (empty for every pre-multi-turn caller) plus the current turn's `user` message, in order — the Messages API takes prior turns as ordinary `user`/`assistant` messages in the same array, with `system` staying the one top-level field it already was. [ekos/crates/recovery/src/anthropic.rs:61]\npossible search match (partial term overlap): handle_message — Dispatch one raw JSON-RPC line. Returns `None` for notifications (which must never be answered), `Some(response-line)` for requests. `cache` carries the opened store across calls within one server session (RFC 0097) — pass the same [`StoreCache`] for every call in a session, a fr… [ekos/crates/cli/src/commands/mcp.rs:625]\npossible search match (partial term overlap): build_messages — RFC 0099: `[system] + history + [current user turn]`, in order — Chat Completions has no separate top-level system field the way Anthropic does, so it always occupies the first slot in the same array. [ekos/crates/recovery/src/openai.rs:71]\npossible search match (partial term overlap): history_messages — Expands `history` into the `user`/`assistant` message pairs `LlmRequest::history` expects, oldest first. [ekos/crates/runtime/src/ai.rs:180]\npossible search match (partial term overlap): serve_messages — The shared dispatch loop (RFC 0115): reads one JSON-RPC message per line from `reader`, writes zero-or-one response lines to `writer`. Identical for stdio and TCP — the protocol has no idea which transport it's running over, or whether `cache` is this call's only user (stdio) or … [ekos/crates/cli/src/commands/mcp.rs:232]\npossible search match (partial term overlap): mail_parser::Message\npossible search match (partial term overlap): VirtualForum::publish_message — Posts a message to `channel`, outside the round-based Decision/Action loop — for scenario setup/seeding, not for something a `DecisionEngine` chooses mid-round. Same effect shape as `execute_action`'s round-based `PostMessage` (capacity check, `Custom(\"ActionExecuted\")` event, `P… [ekos/crates/simulation/src/forum.rs:101]\npossible search match (partial term overlap): VirtualForum::read_messages — Every message posted to `channel`, oldest first, regardless of whether it was posted via this API or a normal simulation round — both paths append the same `PostedIn` index entry. [ekos/crates/simulation/src/forum.rs:168]\npossible search match (partial term overlap): index_message_in_channel — Appends a `Custom(\"PostedIn\")` relationship from a message event to its channel — the index [`VirtualForum::read_messages`] queries, since `KnowledgeStore` has no bulk \"every event\" scan (confirmed before designing this RFC). Shared by both `VirtualForum::publish_message` and `si… [ekos/crates/simulation/src/forum.rs:29]\npossible search match (partial term overlap): ekos_ekl::interpreter::default_returns\npossible search match (partial term overlap): AiRuntimeConfig::default [ekos/crates/runtime/src/ai.rs:127]\npossible search match (partial term overlap): default_rounds [ekos/crates/simulation/src/scenario.rs:119]\npossible search match (partial term overlap): ResolverConfig::default [ekos/crates/identity/src/lib.rs:155]\npossible search match (partial term overlap): default_hashtags [ekos/crates/compiler-core/src/config.rs:235]\npossible search match (partial term overlap): ArtifactMeta::default [ekos/crates/artifact/src/lib.rs:107]\npossible search match (partial term overlap): default_root [ekos/crates/compiler-core/src/config.rs:50]\npossible search match (partial term overlap): default_true [ekos/crates/compiler-core/src/config.rs:180]\n",
      "evidence_refs": [
        "06d4f248-f8b2-48b6-a20b-c27b787bad28"
      ],
      "retrieved_ids": [
        "645e5ed2-231a-53a0-b843-424898f18136",
        "9a406fe7-cd81-58af-bc2f-f0fb7d5ca996",
        "97bcbc4c-6581-53c3-8cfb-d099a4ed1527",
        "78e603fc-4460-5370-a992-9d766e94722b",
        "98d3a175-7e2f-5ae1-82ed-c0036ee6a6f5",
        "e9f4cd3e-21b2-514b-b918-9611e42e995e",
        "e432d422-6cfc-553a-b6fd-64af0c94dc6f",
        "ce2075bf-9300-578c-9a47-b7395c7cd431",
        "21d6d3dc-99c8-5fb7-a3d7-3c5835db2293",
        "18d19ed8-dae1-5003-8940-945e6681ebb0",
        "c73a3734-da0a-51f6-808d-87ddff70d952",
        "a8810f62-63a2-54f9-85a4-29d5e6b0a0f4",
        "75de3a28-73bc-5eb7-b7ae-31561bc90c07",
        "3a720b85-379d-5e51-bb5d-dd1e14f88197",
        "9fd13023-e1bc-55dc-8b2c-bd3cfaf8bcc9",
        "57f25bef-7b5c-5595-b59e-6f07dc10f99b",
        "88f766d2-9693-5579-8cf3-a2624f967bc2",
        "75608e6d-ce35-5321-97af-f8b9d4f486b2",
        "7b4baf1d-a71f-5879-b162-60a8f58bb004",
        "41e0bfd1-3c8c-53cd-8686-d53665d70151",
        "81f7cad3-3ade-55cb-a07f-9d2c85cbcc12",
        "7116701f-4a67-5a01-a777-f75ba4cb0da5",
        "db53c97e-788e-587b-a5d4-fbff7497f34e",
        "e8c063f4-283f-5d5b-b305-9a7eb6bd7e5f",
        "86487b2d-47d6-5105-807b-404b12767a95",
        "2f8fd7dd-0445-56f5-a46f-f081e5bec339",
        "fe38f3be-a4fa-5373-ba20-1201a822e6d3",
        "3fa1fe51-5c40-500e-a4af-e9b3dfeb907f",
        "b1c150ff-c073-5a4e-b3fc-0177feaf281b",
        "ca13c105-e7f4-51cc-85a2-5efc686d89d1",
        "e8072521-557d-545e-b833-f3d849872856",
        "c4a39ee9-0abd-58b5-b650-aa1f99ead86c",
        "076be36f-62ac-5f2a-a067-91d13d70ca1d",
        "96f3be94-9761-5db0-b99a-0c705c9c55d0",
        "f3a16382-c430-5916-b0cb-5ef24b036a63",
        "ea1fcc08-437d-5def-b6c3-c16bea75dfcb",
        "260ed478-da17-59ed-a655-7164be3887e4",
        "8ebf139e-19c9-5366-962e-629a07f4ba8a",
        "bb3030a1-4fb3-5ab6-86eb-9ad82c418f8a",
        "45785f20-21e0-5b64-9864-611d05aa98b7",
        "09665155-ef9e-5259-b379-8452b328264d",
        "05043469-00a7-5c10-b185-27e31f4f06de",
        "e7ef1d2e-1bac-5fb7-bc64-8ee310a5929d",
        "08ad7fde-95bd-5d73-8bc4-8cb5a70b8fd9",
        "8365dc18-7a68-5b6c-bb0b-fcddf13ef488",
        "1161206d-7a2c-5b72-a2b1-0e17427b6772",
        "d75667d3-b33d-5ac9-a34c-f67b9ee9e04b",
        "5c036ac3-203e-5c59-88f2-d79a35ccf921",
        "09910c9d-c8a8-50a1-bcec-f7784d6df07c",
        "7de4664e-7746-5bcb-a6f9-d8cfb90d7c5a"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-010",
      "passed": true,
      "hallucinated": false,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 1.0,
      "trajectory_score": null,
      "input_tokens": 2092,
      "output_tokens": 34,
      "cache_hit": true,
      "rss_kb_end": 99656,
      "cpu_time_ms": 2620.0,
      "latency_ms": 2627.44292,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "Insufficient evidence.\n\nI looked for claims that directly address whether ekos-runtime writes directly back to enterprise source systems when a query is answered, bypassing the ledger.",
      "evidence_text": "possible search match (partial term overlap): bench_ledger_write [benchmark/benches/ledger_write.rs:5]\npossible search match (partial term overlap): benchmark/benches/ledger_write.rs — use criterion::{Criterion, criterion_group, criterion_main};\nuse ekos_kir::{KirObject, ObjectKind};\nuse ekos_ledger::Ledger;\n\nfn bench_ledger_write(c: &mut Criterion) {\n    c.bench_function(\"ledger_append_object\", |b| {\n        let dir = tempfile::tempdir().unwrap();\n        let … [benchmark/benches/ledger_write.rs]\npossible search match (partial term overlap): query_worker_reads_match_direct_partitioned_reads [ekos/crates/distributed/tests/query_worker.rs:59]\npossible search match (partial term overlap): Ledger::set_write_context — Stamp `ctx` onto every subsequent [`append`](Self::append) until changed or cleared. [ekos/crates/ledger/src/lib.rs:948]\npossible search match (partial term overlap): ekos-runtime depends_on ekos-ledger [ekos/crates/runtime/Cargo.toml]\npossible search match (partial term overlap): Ledger::query_payloads — Run a payload-returning query and decode every row. [ekos/crates/ledger/src/lib.rs:418]\npossible search match (partial term overlap): ekos-clickhouse-query depends_on ekos-runtime [ekos/crates/clickhouse-query/Cargo.toml]\npossible search match (partial term overlap): ekos-clickhouse-query depends_on ekos-ledger [ekos/crates/clickhouse-query/Cargo.toml]\npossible search match (partial term overlap): confirm_prose_spend — Interactive confirmation before spending on LLM calls, mirroring `ekos marketing publish`'s `approve` (RFC 0030): `--yes` skips straight to \"proceed\", otherwise reads a line from stdin; EOF (non-interactive invocation with no answer) is treated as \"no\" rather than hanging. [ekos/crates/cli/src/commands/docs.rs:337]\npossible search match (partial term overlap): confirm_description_spend — Same shape as `docs.rs::confirm_prose_spend`. [ekos/crates/cli/src/commands/commit.rs:655]\npossible search match (partial term overlap): build_observes_files_and_writes_ledger [ekos/crates/cli/tests/skeleton.rs:47]\npossible search match (partial term overlap): ekos_runtime::Runtime\npossible search match (partial term overlap): strip_delimiter_directives — Removes `DELIMITER <token>` lines and rewrites any occurrence of the custom delimiter token back to `;`, so the rest of the file parses as ordinary semicolon-terminated statements. Line-oriented on purpose — `DELIMITER` is always its own statement on its own line by convention (t… [ekos/plugins/sql-dialect-mysql/src/lib.rs:35]\npossible search match (partial term overlap): ekos-runtime — Read-only state reconstruction from the ledger\npossible search match (partial term overlap): ekos_ledger::Ledger\npossible search match (partial term overlap): Concentration risk: ekos_runtime::Runtime\npossible search match (partial term overlap): answer_question — Mirrors `crates/cli/src/commands/ask.rs::run` exactly — same config resolution, same provider selection, same evidence-mapping pattern (`ask.rs:29`) — just returning JSON instead of printing to stdout. [ekos/crates/demo-server/src/ask.rs:32]\npossible search match (partial term overlap): ekos-ledger — Append-only semantic knowledge ledger (skeleton — SQLite backend)\npossible search match (partial term overlap): ekos_runtime::GroupBy\npossible search match (partial term overlap): ekos_runtime::ImpactDirection\nekos-simulation — related to ekos-runtime — Deterministic multi-round simulation engine: agent decisions, actions, and world updates over the ledger (RFC 0050)\nekos-artifact — related to ekos-runtime — Content-addressable artifact types (Phase 2 — stub)\nConcentration risk: ekos-runtime — related to ekos-runtime [benchmark/Cargo.toml]\nekos-clickhouse-query — related to ekos-runtime — Live NL-to-SQL query engine over a compiled ClickHouse schema (RFC 0056, Stage 2)\nekos-compiler-core — related to ekos-runtime — Compiler infrastructure: PassManager, Scheduler, Diagnostics, Config\nserde_json — related to ekos-runtime\nchrono — related to ekos-runtime\nekos — related to ekos-runtime — Enterprise Knowledge Operating System — CLI\nthiserror — related to ekos-runtime\nekos-demo-server — related to ekos-runtime — RFC 0045 — hosted, read-only demo server: static curated docs + one evidence-cited /ask endpoint, over a fixed two-repo catalog\nasync-trait — related to ekos-runtime\nekos-ledger — related to ekos-runtime — Append-only semantic knowledge ledger (skeleton — SQLite backend)\nekos-ekl — related to ekos-runtime — Enterprise Knowledge Language: parser + interpreter (RFC 0010)\nekos-common — related to ekos-runtime — Shared types and utilities for EKOS\nekos-kir — related to ekos-runtime — Knowledge Intermediate Representation — the four canonical node types\nekos-benchmark — related to ekos-runtime\nekos-identity — related to ekos-runtime — Identity resolution — merges synonymous concepts (Phase 7)\nserde — related to ekos-runtime\nekos-integration-tests — related to ekos-runtime\nekos-recovery — related to ekos-runtime — Knowledge Recovery compiler passes: SqlAnalyzer, GitAnalyzer, LLM integration\n",
      "retrieved_ids": [
        "2a6f4970-ff0b-5b04-a962-bb848bdf2f45",
        "6b35bf13-a69a-59b1-8971-1df6156a8388",
        "0420c3b3-07d6-5545-8a6a-415dabfa362c",
        "1b7481c5-ab40-5bbe-8a7b-3302917a9d15",
        "74118a4d-d6d4-5e75-a56c-63d648f61165",
        "b8401b6d-6d8d-5633-9b6a-27c093ab2db6",
        "5555b010-913e-5440-8318-ce119e44121f",
        "f8997c6a-3602-59d2-96d1-4adcb670e5ed",
        "a41df42a-3316-58c5-82d0-b80aedac6aad",
        "0b1ad196-2644-5ebb-b49e-a1a12901189a",
        "8381b3cf-b4ab-5e24-b223-25b1e3647ee2",
        "91d0a104-38fd-5f95-be7f-51ec6f752da8",
        "c51a7892-343f-5256-8438-65cedbc3edf6",
        "f4cd2d3b-f0b0-5234-ab2b-39de3275d717",
        "773d0970-f556-58dd-9fcf-e210ef11e28d",
        "6d8ae86c-60a4-5040-a095-83ec91380f68",
        "3998780f-75ba-513f-8429-dbf224d9cc02",
        "9c977335-c421-519c-a889-558f0487574e",
        "8ae2bdb0-7767-50f6-8ce1-68f98d48a3e9",
        "75afde64-bc52-5624-a851-ac615ba1c7be",
        "d25e03f7-bc1d-5016-885f-68c89ced9222",
        "f811b927-4102-5b15-b58c-56c78578a93e",
        "5903c128-b262-5141-8155-5227155b040f",
        "11db3a5e-b888-57b6-be29-2144a2de513e",
        "ef2f4031-23a0-5aa7-a49c-5b967ce9d440",
        "93444f0e-282a-5baa-ace2-2ff766585bfe",
        "b4afefae-6322-5ed9-828d-71bc00cdf054",
        "fc7c69b2-f30c-5461-ad05-0be370c4f7d6",
        "ba6beb12-4fde-5cc8-8860-0fb6fd6fbf23",
        "a670f27c-4513-5cc4-a90a-0df2af093b4a",
        "f89e25e7-27ab-5f66-b8fe-9c08e7426a06",
        "ba21c6f1-e765-567d-826d-64466dda22c2",
        "d8e03f10-ae5f-5017-9196-c13ddeb789be",
        "1c90a1c9-205c-5cea-803a-709c5520488b",
        "e7851889-11dd-5b29-83ec-ad9d03543067",
        "120f7149-e148-56cb-bd5b-786116d2ee01",
        "1e4ab135-9d4e-5a9f-857b-af052b760e97",
        "34adbfd1-c41a-5af4-9d21-085386479cef",
        "2180f492-2378-5709-97e5-354fd0aa04cf",
        "f153ee62-96d1-5be6-bdb9-249eab66c33b",
        "e77079f8-4e2a-5131-ba2e-e077f2b320cd",
        "cb393b41-2582-587c-a703-fa1a655dc611",
        "1750725c-e944-52c0-80b0-618442c978dd",
        "6672efa9-4ce8-5c9c-a096-3c74f2963490",
        "68da2171-e206-5978-acbe-500cdf6eadd2",
        "944c015c-ad50-5e55-9238-7d57ee4ed67b",
        "2b0df9e4-7f6f-5fa7-ba55-3cc921abd287",
        "203436f8-4f5f-5f2b-93a8-b25fd11e5174",
        "71c4923a-8f1e-587c-a91a-37769f53c149",
        "49e883eb-969b-5fe4-8f78-7a8062bcae5d"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-011",
      "passed": true,
      "hallucinated": false,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 1.0,
      "trajectory_score": null,
      "input_tokens": 2206,
      "output_tokens": 144,
      "cache_hit": false,
      "rss_kb_end": 64080,
      "cpu_time_ms": 740.0,
      "latency_ms": 66807.940339,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "RSN007: skipped supporting neighbourhood of ekos — 47 neighbours exceeds the 40-item budget for background context; a hub entity's neighbourhood describes the corpus, not this question",
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "The licensing fee for the EKOS Enterprise Edition is not specified in the provided evidence claims. The MIT License is mentioned, but it does not provide information on the licensing fee.\n\nAs for which crate enforces the license check, none of the provided evidence claims mention a specific crate or module responsible for enforcing the license check. However, claim 14 mentions `rustc` as a build-time dependency that is reported if absent, and claim 15 mentions an `llm_provider_check` that reports on the checked env var. These claims do not directly relate to licensing fees or enforcement.\n\nInsufficient evidence.\nI looked for information on the licensing fee and which crate enforces the license check in the provided evidence claims.",
      "evidence_text": "possible search match (partial term overlap): LICENSE — MIT License\n\nCopyright (c) 2026 alexeyban\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto us… [LICENSE]\npossible search match (partial term overlap): Check [ekos/crates/cli/src/commands/doctor.rs:6]\npossible search match (partial term overlap): _check_allowed [web/api/app/readproc.py:39]\npossible search match (partial term overlap): collect_checks [ekos/crates/cli/src/commands/doctor.rs:155]\npossible search match (partial term overlap): Check::fail [ekos/crates/cli/src/commands/doctor.rs:40]\npossible search match (partial term overlap): check_conflicts — Whether to fail the pipeline on identity conflicts, or continue anyway.  With `force`, conflicts have already been printed above — they stay visible for the user to revisit, but no longer block `compile`/`commit` from running. [ekos/crates/cli/src/commands/resolve.rs:123]\npossible search match (partial term overlap): LeaseTable::check — Verify a lease is still yours and current — the fencing check every mutating call runs. [ekos/crates/cluster/src/lease.rs:77]\npossible search match (partial term overlap): Check::ok [ekos/crates/cli/src/commands/doctor.rs:32]\npossible search match (partial term overlap): check_role — Resolve the principal and enforce `minimum`. 401 = not authenticated, 403 = wrong role.\n    Framework-independent so both the dependency and manual call sites can use it. [web/api/app/auth.py:106]\npossible search match (partial term overlap): check_regression — `Err` (with a human-readable list) when any metric is more than `tol` below its baseline. [ekos/crates/runtime/src/retrieval_eval.rs:318]\npossible search match (partial term overlap): test_register_enforces_workspaces_root_when_configured — SonarCloud pythonsecurity:S2083 hardening: with EKOS_CONSOLE_WORKSPACES_ROOT set, a\n    registration path outside it is rejected even though it otherwise looks like a valid\n    workspace (has ekos.toml + .ekos/). [web/api/tests/test_api.py:71]\npossible search match (partial term overlap): auth.check_role\npossible search match (partial term overlap): check_not_mock — RFC 0138 Phase 4: `build_llm_provider` silently degrades to the stub `MockLlmProvider` when the configured provider's API key isn't set — a reasonable default for `recover`/`commit` (structural analysis without LLM enrichment is a legitimate degraded mode there), but for `ekos ev… [ekos/crates/cli/src/commands/eval.rs:46]\npossible search match (partial term overlap): rust_toolchain_check — `rustc` is a **build-time** dependency, never a runtime one — so its absence is reported, not failed.  If `ekos doctor` is running at all, the binary already exists; nothing in the entire codebase shells out to `rustc` or `cargo` outside of this very check. Failing here made `doc… [ekos/crates/cli/src/commands/doctor.rs:133]\npossible search match (partial term overlap): llm_provider_check — RFC 0076: this used to default the checked env var to `ANTHROPIC_API_KEY` regardless of which provider was actually configured — a real, confirmed false-negative found live against a real workspace with `provider = \"ollama\"` and Ollama running correctly locally: this check report… [ekos/crates/cli/src/commands/doctor.rs:49]\npossible search match (partial term overlap): app.readproc._check_allowed\npossible search match (partial term overlap): PassManager::check_unique_names — Pass names key the dependency graph, the cache manifest, and the execution report — duplicates would silently collapse graph nodes and then surface as a bogus \"cycle detected\" error. [ekos/crates/compiler-core/src/pass.rs:137]\npossible search match (partial term overlap): ekos/crates/ekl/Cargo.toml — [package]\nname = \"ekos-ekl\"\ndescription = \"Enterprise Knowledge Language: parser + interpreter (RFC 0010)\"\nversion.workspace = true\nedition.workspace = true\n\n[dependencies]\nekos-kir.workspace = true\nekos-runtime.workspace = true\nthiserror.workspace = true\nserde_json.workspace = t… [ekos/crates/ekl/Cargo.toml]\npossible search match (partial term overlap): docs/rfcs/0012-enterprise-connectors-scaffold.md — # RFC 0012 — Phase 14 Connector Scaffolding (SAP, Salesforce, Oracle, Fabric, Snowflake)\n\n| Field | Value |\n|-------|-------|\n| **Status** | Accepted |\n| **Author** | EKOS team |\n| **Created** | 2026-07-11 |\n| **Gating** | Phase 14 |\n\n---\n\n## Motivation\n\nPhase 14's TODO validates… [docs/rfcs/0012-enterprise-connectors-scaffold.md]\npossible search match (partial term overlap): docs/rfcs/0012-enterprise-connectors-scaffold.md — # RFC 0012 — Phase 14 Connector Scaffolding (SAP, Salesforce, Oracle, Fabric, Snowflake)\n\n| Field | Value |\n|-------|-------|\n| **Status** | Accepted |\n| **Author** | EKOS team |\n| **Created** | 2026-07-11 |\n| **Gating** | Phase 14 |\n\n---\n\n## Motivation\n\nPhase 14's TODO validates… [docs/rfcs/0012-enterprise-connectors-scaffold.md]\n",
      "retrieved_ids": [
        "5260b71a-8e57-58cb-9a59-6d004a69028e",
        "aaab3928-b38f-5009-9ee2-c51e677224ab",
        "a33eb7a9-443d-5e87-8f77-b0c0364811bb",
        "de80e0cd-3e11-5e5c-8ee2-85fe110ed8b4",
        "2825aa30-cb08-5ec6-9b4b-65a4a8900de9",
        "08f7903d-27c6-52c3-a52a-8dced4f9f34d",
        "aedbf952-15ff-531a-8b7f-ce408996efb8",
        "5da0003d-2839-5411-a0da-7f330c797391",
        "83faf12f-5580-5816-a957-d0bc2ab579f0",
        "91cb39b8-02cb-576e-ba55-8769a337043f",
        "e7e1872e-84a3-55d0-b7e1-4553cca0608b",
        "495bfa2a-f4d3-51f4-abd3-11e33baaf428",
        "52190433-2a80-521c-899e-9b172077212d",
        "7eba4a72-d9e9-5d47-8058-865433561a73",
        "e25e2683-0aaa-5c31-be81-60bb65c2b911",
        "b402adfb-5e17-501f-a9c1-c3b9a0379f35",
        "523e017f-a17a-520e-925d-295f0abfb465",
        "b31ee0b2-7af2-5643-a473-1b20006591e6",
        "cc0f6a29-7003-541b-ae92-a86280d3417b",
        "b43bf091-bf5f-595d-93a8-267723704314",
        "36367efa-f47a-5128-bdc4-c6e5498e4b1f",
        "b2f79d2f-477e-510f-9c1b-e081247c8da3",
        "60147563-32a2-5b89-8b28-56b22f0aaf33",
        "62acf0e9-41b5-5a4d-a31a-56dd0bafc792",
        "46f4c0bd-955f-564c-8c93-4f90b95d94a5",
        "6e8469cc-53a4-5a35-b46e-90565681bac5",
        "a94938c1-41b1-58d9-93a9-47bc378ecfc0",
        "c7c3745c-523a-50f3-81e6-017e85b82efd",
        "b35a01f7-780a-5fdd-87d3-704a73925701",
        "014ed96d-a8a0-596b-ba03-271bcdf3f7f6",
        "ade8a2d8-0b58-5d51-ae7a-e5f3dc33ce81",
        "b2a5aa5f-662f-5689-b9f9-b55edf58297f",
        "dd04e2d5-cb49-5208-ab61-bf91ebdac53d",
        "e536e8ed-26b1-5df1-b380-f13d994e64e9",
        "fc7c69b2-f30c-5461-ad05-0be370c4f7d6",
        "3196ae01-7e03-5e6d-aa49-cf1ae40e2fc2",
        "8a1f7336-9c41-556c-bb37-90e527bd157a",
        "c0ff2e6c-7e2f-5107-a5be-197e2c66ecef",
        "83764758-1115-54df-bb75-4a49e7334245",
        "eb1a8094-d4a7-53c0-b566-89b8439d2506",
        "9d21a111-dd3f-5173-a4ca-0ff0c8ac3f26",
        "64e6073b-fc7d-5613-a431-e54bd2b800f5",
        "e7851889-11dd-5b29-83ec-ad9d03543067",
        "ec53eab7-e4a6-5a18-8b54-d0d73bf12f83",
        "8d6ab47f-f8ab-5c0a-8b43-373b3a046cc1",
        "04adefce-9ec7-5a32-9677-5e96c3ec343c",
        "d8c09ac0-9251-522d-a257-7e85bc36df65",
        "49581cd8-178a-5d25-a441-8faf16cae124",
        "17e350f6-b618-5531-902b-b7205f8cdb60",
        "8df8e217-a1e6-5860-8fd8-842bde22ab17"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-012",
      "passed": true,
      "hallucinated": false,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 1.0,
      "trajectory_score": null,
      "input_tokens": 2963,
      "output_tokens": 31,
      "cache_hit": false,
      "rss_kb_end": 44092,
      "cpu_time_ms": 930.0,
      "latency_ms": 42746.764723,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "Insufficient evidence.\n\nI looked for claims mentioning \"ObsidianVaultSync\" or \"encryption algorithm\". None of the provided claims mention these specific terms.",
      "evidence_text": "possible search match (partial term overlap): uses_distributed — True when `[storage.distributed]` points reads at a Distributed-mode cluster (RFC 0113 B4). Takes precedence over every local backend — the workspace holds no data of its own. [ekos/crates/cli/src/commands/store.rs:20]\npossible search match (partial term overlap): uses_partitioned — True when this workspace is served by [`PartitionedLedger`] — either it already has a `partitioned/catalog.json`, or `[storage.partition]` is enabled **and** neither of the other two backends has ever been written to (a genuinely fresh workspace opting in, mirroring the fact-engi… [ekos/crates/cli/src/commands/store.rs:57]\npossible search match (partial term overlap): uses_fact_engine — True when this workspace already has a real fact store on disk — either migrated via `ekos ledger migrate --v3`, or previously auto-created as a fresh workspace's default. Doesn't distinguish *how* it got there, only that it's the active backend now. [ekos/crates/cli/src/commands/store.rs:50]\npossible search match (partial term overlap): flatten_use_tree — Flattens a `UseTree` (`Path`/`Name`/`Rename`/`Group`/`Glob`) into fully-qualified module path strings, e.g. `use ekos_kir::{KirObject, KirId};` -> `[\"ekos_kir::KirObject\", \"ekos_kir::KirId\"]`. [ekos/crates/recovery/src/rust_analyzer.rs:418]\npossible search match (partial term overlap): super::store::uses_fact_engine\npossible search match (partial term overlap): render_data_architecture — Render RFC 0068 §22 Data Architecture: real compiled `Table`/`Dataset` objects (data stores, with each one's real foreign-key edge count) and real compiled Transformation IR data flows (RFC 0027, `Custom(\"FeedsInto\")` edges) — link-through to `SequenceDiagrams.md`'s existing \"Dat… [ekos/crates/docs-gen/src/lib.rs:2287]\npossible search match (partial term overlap): commit_data_lineage — Reads the ledger's full current object/relationship set, links `TransformNode` Source/Sink nodes to the real `Table`/`Dataset` object they name (RFC 0075), and appends only the newly produced relationships. Deterministic ids (`data_lineage::link_transform_nodes_to_tables`) mean t… [ekos/crates/cli/src/commands/commit.rs:218]\npossible search match (partial term overlap): data_domains_section — RFC 0075 Data Domains: groups compiled data stores by the schema/database qualifier already present in their own `name` when the source DDL wrote one (e.g. `sales.orders` → domain `sales`) — reusing structure the store's name already carries rather than adding a new extractor. Un… [ekos/crates/docs-gen/src/lib.rs:2148]\npossible search match (partial term overlap): ObserveError::connector [ekos/crates/observation-sdk/src/lib.rs:25]\npossible search match (partial term overlap): ekos_semantic::data_lineage\npossible search match (partial term overlap): gateway_uses_the_entity_index_to_prune_when_present — RFC 0113 v1.1 — when the coordinator's `entity_id → partitions` index has an entry for an id, the gateway must actually use it to prune, not just fall back to a full class scan. Proven by deliberately mis-registering `orders`' id against a partition that does *not* hold it: if th… [ekos/crates/distributed/tests/gateway.rs:215]\npossible search match (partial term overlap): test_impact_returns_real_hop_data [web/api/tests/test_graph_live.py:105]\npossible search match (partial term overlap): ekos/crates/semantic/src/data_lineage.rs — //! RFC 0075 — links `Custom(\"TransformNode\")` Source/Sink nodes (RFC 0027 Transformation IR) to\n//! the real `Table`/`Dataset` object they read from or write to. Closes the cross-referencing gap\n//! RFC 0074's Data Architecture view found and documented explicitly rather than pa… [ekos/crates/semantic/src/data_lineage.rs]\npossible search match (partial term overlap): docs/rfcs/0022-confluence-connector.md — # RFC 0022 — Confluence Connector (Proof-of-Concept)\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-07-25\n**Gating:** none (additive; follows RFC 0012's connector pattern, RFC 0020's\nObserver + recovery-pass integration shape)\n\n---\n\n## Motivation\n\nThe original inge… [docs/rfcs/0022-confluence-connector.md]\npossible search match (partial term overlap): docs/rfcs/0022-confluence-connector.md — # RFC 0022 — Confluence Connector (Proof-of-Concept)\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-07-25\n**Gating:** none (additive; follows RFC 0012's connector pattern, RFC 0020's\nObserver + recovery-pass integration shape)\n\n---\n\n## Motivation\n\nThe original inge… [docs/rfcs/0022-confluence-connector.md]\npossible search match (partial term overlap): docs/rfcs/0020-github-connector.md — # RFC 0020 — GitHub Issues/PRs Connector (Proof-of-Concept)\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-07-24\n**Gating:** none (additive; follows RFC 0012's connector pattern, RFC 0017's\nObserver+recovery-pass integration shape)\n\n---\n\n## Motivation\n\nThe original… [docs/rfcs/0020-github-connector.md]\npossible search match (partial term overlap): docs/rfcs/0020-github-connector.md — # RFC 0020 — GitHub Issues/PRs Connector (Proof-of-Concept)\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-07-24\n**Gating:** none (additive; follows RFC 0012's connector pattern, RFC 0017's\nObserver+recovery-pass integration shape)\n\n---\n\n## Motivation\n\nThe original… [docs/rfcs/0020-github-connector.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0074-data-architecture-view.md — # RFC 0074 — Data Architecture View\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-08-22\n\n---\n\n## Motivation\n\nRFC 0068 §61 (the full MVP) shipped in Increments 1-5 (RFC 0069-0073). TODO.md's own \"Next step\"\nnote framed Increment 6 as opening §62 Phase 2, listing th… [ekos/docs/rfcs/0074-data-architecture-view.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0074-data-architecture-view.md — # RFC 0074 — Data Architecture View\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-08-22\n\n---\n\n## Motivation\n\nRFC 0068 §61 (the full MVP) shipped in Increments 1-5 (RFC 0069-0073). TODO.md's own \"Next step\"\nnote framed Increment 6 as opening §62 Phase 2, listing th… [ekos/docs/rfcs/0074-data-architecture-view.md]\npossible search match (partial term overlap): docs/presentations/clickhouse-connector.html — <!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>ClickHouse: Compiled Metadata + Live NL-to-SQL — EKOS</title>\n<meta name=\"description\" content=\"RFC 0056: ClickHouse tables compiled into the… [docs/presentations/clickhouse-connector.html]\nrender_data_architecture — related to data_domains_section — Render RFC 0068 §22 Data Architecture: real compiled `Table`/`Dataset` objects (data stores, with each one's real foreign-key edge count) and real compiled Transformation IR data flows (RFC 0027, `Custom(\"FeedsInto\")` edges) — link-through to `SequenceDiagrams.md`'s existing \"Dat… [ekos/crates/docs-gen/src/lib.rs:2287]\nekos/crates/docs-gen/src/lib.rs — related to data_domains_section — //! RFC 0035 — deterministic Markdown rendering from the compiled ledger.\n//!\n//! Pure rendering over already-compiled ledger data: no LLM, no interpretation, no new\n//! extraction. A `KirObject` plus the `KirRelationship`s that touch it plus the `KirEvidence`\n//! those relations… [ekos/crates/docs-gen/src/lib.rs]\n",
      "retrieved_ids": [
        "0e7c2703-ef93-5032-ae92-9e22c2b22a8a",
        "6c849d64-25f5-5847-817c-5d96d2541f83",
        "10d67e5a-c754-5199-915e-23349038a6f5",
        "5a57188e-5640-5c40-8eb9-08eda1c1a388",
        "868af59a-0508-5cc6-a395-3f4aad7819f6",
        "d8f9a28c-7e92-5a59-96f6-2458391f3cee",
        "d87cf33c-8398-5315-9d26-3ff2d25d4e2a",
        "0b3a2b16-7377-5e75-b52b-19c045fe7a84",
        "83aa1a11-b9b3-5cfc-a8dc-12f14aeff9d0",
        "b5ac3ea1-5e65-5a22-a3f8-cda868cf9dcb",
        "77b92160-76ff-5c3a-8f00-af178a6f9c89",
        "b0d07589-e16d-5a6f-882b-494ec2dec433",
        "8859e099-24c2-53dc-87f4-df45664a5efe",
        "7e464802-f5bf-5a20-af32-8a143d81dbbb",
        "9c80d670-2beb-52ce-b7ab-a211b54a0d53",
        "f20c41ef-ae21-571e-8bcd-6d8cd62616da",
        "958362ba-99e2-57d1-b0a2-ab9bc1baa55d",
        "4ae04863-471a-55d5-80a0-3b9619c8dc9c",
        "42c3600c-9395-543b-9742-affff8e8d6fa",
        "d9f9c95c-933e-525e-9552-daff7a8b9faa",
        "0afd7ce1-da52-5b03-992a-8cf258788e95",
        "a79b3ca2-e04d-5298-b0c1-e234234abfc0",
        "462acd25-0ead-542d-8b5c-e6d37252f355",
        "37a7d310-1ba7-5bdd-9b49-e825ba2a9467",
        "a35a3775-6b6d-563b-9267-6eb0bacdff62",
        "5961d30c-e500-5eda-972a-8299346dfc67",
        "8e0c787d-9cca-5ee0-a279-079d033b4b75",
        "61963106-8120-5922-ad70-07f37f777e9e",
        "cc0f6a29-7003-541b-ae92-a86280d3417b",
        "b43bf091-bf5f-595d-93a8-267723704314",
        "56a4c7f6-9671-58e3-8b9d-c6ced74a007c",
        "526a3a07-2e6f-5e33-b42f-c682bc32c5ad",
        "19dc0d7c-211b-5d53-a00a-385e9f698472",
        "eb101aed-59b1-5521-9deb-283867a8113e",
        "6118d2ff-3c43-5024-8cb5-7576024ff464",
        "cf60bb89-8285-5a97-9c4f-dfbaa750782a",
        "e4824fa6-631e-5378-ad68-7360cbd9e741",
        "2d9918a4-0461-517d-8cd6-ef54cf28ba7c",
        "44162fab-2c89-58bf-85b8-0c2b794c12f0",
        "8245c718-182a-5c05-bb30-d5de3ed9f895",
        "06ac92e1-83e5-5fe3-b803-1c23576ee67b",
        "1bd7f9b2-f594-574f-8e4f-32d179f2e99c",
        "bdb3a0bd-8f77-565e-b759-6bbd47b37675",
        "e3b30198-6df8-54c8-9490-c272010ee608",
        "71520c9b-9df8-5e93-af6b-518d46aa230f",
        "05ef30b4-baaf-5c78-b849-4be718fc5128",
        "95994437-94e7-51dc-8b00-fa61bf3228b6",
        "76460cdb-49b4-5fe9-92cb-c64bcc18099a",
        "d28f7a84-66dc-5e64-a0a8-fb6478375bdf",
        "4867f699-547c-589b-8c2c-bb7675f9b31f"
      ],
      "planned_query_type": "conceptual"
    },
    {
      "id": "adv-013",
      "passed": false,
      "hallucinated": true,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 0.0,
      "trajectory_score": null,
      "input_tokens": 2523,
      "output_tokens": 34,
      "cache_hit": false,
      "rss_kb_end": 43952,
      "cpu_time_ms": 1050.0,
      "latency_ms": 37565.956993,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "RSN007: skipped supporting neighbourhood of ekos — 47 neighbours exceeds the 40-item budget for background context; a hub entity's neighbourhood describes the corpus, not this question",
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "EKOS does not guarantee any SLA uptime percentage for its hosted demo server.\n\nI looked for claims that mention the guaranteed uptime or availability of the hosted demo server.",
      "evidence_text": "possible search match (partial term overlap): ekos/docs/rfcs/0045-hosted-demo-server.md — # RFC 0045 — Hosted Demo Server (read-only, two-repo MVP)\n\n**Status:** Draft\n**Author:** EKOS team\n**Created:** 2026-08-12\n\n---\n\n## Motivation\n\nThe user's framing: narrow EKOS down to one very painful task and build a server-side MVP for it,\nsuch that at least 3–5 of ~20 architec… [ekos/docs/rfcs/0045-hosted-demo-server.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0045-hosted-demo-server.md — # RFC 0045 — Hosted Demo Server (read-only, two-repo MVP)\n\n**Status:** Draft\n**Author:** EKOS team\n**Created:** 2026-08-12\n\n---\n\n## Motivation\n\nThe user's framing: narrow EKOS down to one very painful task and build a server-side MVP for it,\nsuch that at least 3–5 of ~20 architec… [ekos/docs/rfcs/0045-hosted-demo-server.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0045-hosted-demo-server.md: section 7 — - Full workspace: `cargo build --workspace && cargo test --workspace && cargo clippy --workspace -- -D warnings && cargo fmt --check` from `ekos/`, matching every prior RFC in this project.\n\n## Acceptance Criteria\n\n- [ ] EKOS-self's pre-existing `doc/` output is served as static … [ekos/docs/rfcs/0045-hosted-demo-server.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0045-hosted-demo-server.md: section 1 — # RFC 0045 — Hosted Demo Server (read-only, two-repo MVP)\n\n**Status:** Draft\n**Author:** EKOS team\n**Created:** 2026-08-12\n\n---\n\n## Motivation\n\nThe user's framing: narrow EKOS down to one very painful task and build a server-side MVP for it,\nsuch that at least 3–5 of ~20 architec… [ekos/docs/rfcs/0045-hosted-demo-server.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0045-hosted-demo-server.md: section 5 — EKOS-self skips steps 1–3 entirely (output already exists at `doc/`); only step 3's HTML\npre-render needs running once against its existing Markdown, plus pointing at EKOS's own existing\n`.ekos/` ledger for its `/ask` slot.\n\n### Live server (new: `ekos/crates/demo-server`, or a `… [ekos/docs/rfcs/0045-hosted-demo-server.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0045-hosted-demo-server.md: section 3 — - **Auth, accounts, or any write path.** The server is read-only end to end, consistent with the\n  existing invariant that the Runtime never mutates the ledger — same posture as `ekos mcp serve`\n  minus its one write tool (`ekos_identity_review`, not exposed here at all).\n- **A n… [ekos/docs/rfcs/0045-hosted-demo-server.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0045-hosted-demo-server.md: section 6 — pass. It reopens the `odoo`-style unfiltered-scan stall as a *general* problem instead of a\n  scoped one, and adds real isolation/auth/quota surface that a 5–10 minute peer demo doesn't need\n  to prove the core claim. A fixed two-repo catalog proves the same painful-task story wi… [ekos/docs/rfcs/0045-hosted-demo-server.md]\npossible search match (partial term overlap): ekos-demo-server — RFC 0045 — hosted, read-only demo server: static curated docs + one evidence-cited /ask endpoint, over a fixed two-repo catalog\npossible search match (partial term overlap): ekos/docs/rfcs/0045-hosted-demo-server.md: section 4 — - Must be `observe_paths`-scoped in its `ekos.toml`, never handed to `ekos build` as a full\n     unfiltered monorepo checkout (the `odoo/odoo` ~40,000-file stall from `devlog_12.md` is the\n     concrete failure mode being avoided).\n   - Should avoid heavily macro-driven Rust: `ru… [ekos/docs/rfcs/0045-hosted-demo-server.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0045-hosted-demo-server.md: section 2 — across every `Cargo.toml` in the workspace for axum/hyper/warp/actix returns nothing.\n- **`AiRuntime::ask` always makes a live LLM call** — there is no ledger-only/no-LLM citation mode.\n  Without a configured `ANTHROPIC_API_KEY`, `build_llm_provider` (`recover.rs:766`) silently f… [ekos/docs/rfcs/0045-hosted-demo-server.md]\npossible search match (partial term overlap): ekos_demo_server::ask\npossible search match (partial term overlap): ekos/crates/demo-server\npossible search match (partial term overlap): ekos/crates/demo-server/Cargo.toml — [package]\nname = \"ekos-demo-server\"\ndescription = \"RFC 0045 — hosted, read-only demo server: static curated docs + one evidence-cited /ask endpoint, over a fixed two-repo catalog\"\nversion.workspace = true\nedition.workspace = true\n\n[lib]\nname = \"ekos_demo_server\"\npath = \"src/lib.r… [ekos/crates/demo-server/Cargo.toml]\npossible search match (partial term overlap): ekos/crates/demo-server/src/lib.rs — //! RFC 0045 — hosted demo server. A small, read-only surface over a fixed,\n//! two-repo catalog: pre-rendered static curated docs, plus one evidence-cited\n//! `/ask` endpoint. See `ekos/docs/rfcs/0045-hosted-demo-server.md` for the\n//! full design and its explicit non-goals (no … [ekos/crates/demo-server/src/lib.rs]\npossible search match (partial term overlap): ekos_demo_server::catalog::Catalog\npossible search match (partial term overlap): ekos-demo-server depends_on ekos [ekos/crates/demo-server/Cargo.toml]\npossible search match (partial term overlap): ekos/crates/demo-server/src/main.rs — //! RFC 0045 — hosted demo server binary. Read-only: serves pre-rendered\n//! static docs for a fixed two-repo catalog plus one `POST /ask` endpoint.\n//!\n//! Usage: `demo-server [catalog.toml]` (default `catalog.toml` in cwd).\n//! `ekos.toml`'s `[llm]` for every non-Ollama repo in… [ekos/crates/demo-server/src/main.rs]\npossible search match (partial term overlap): ekos-demo-server depends_on tracing [ekos/crates/demo-server/Cargo.toml]\npossible search match (partial term overlap): ekos-demo-server depends_on dotenvy [ekos/crates/demo-server/Cargo.toml]\npossible search match (partial term overlap): ekos-demo-server depends_on toml [ekos/crates/demo-server/Cargo.toml]\n",
      "retrieved_ids": [
        "c2a3412c-5930-5c9e-a58c-faaea3210899",
        "0ee9d1e0-599e-576f-8af6-a3228a85f680",
        "16a44fbb-0459-5544-af6f-2357ba6704b7",
        "c31b81e1-9a38-5ca3-b369-03183e5b64de",
        "b0c56418-ef98-5723-b90a-18d9b8618472",
        "6374bd37-6a53-52c8-be9a-b1f0b9b448bc",
        "7b49c342-2fd4-5ccb-92dd-96b4fc11bd14",
        "36b0b879-dab1-5cae-9877-fa274c0f3f80",
        "75864bfb-65f0-5870-b99b-41319e493b31",
        "474bba10-e838-5c92-8fee-73151dd8a949",
        "260a34db-f775-5c88-b53a-f97a529cc60a",
        "7aca4ec1-aee1-51aa-8636-36340d58c082",
        "fd61bc87-2dc5-59f7-9eda-6e2a8fc31e9d",
        "285cf310-d28f-5a33-85d1-b33807c421b4",
        "fdf27082-52fb-592d-96ff-1dd9bd61a0ba",
        "acc9708f-05b0-5892-a6b5-f33df0c52fde",
        "71fe8138-13f9-580c-b169-7fb56d7d9035",
        "ce02ae6c-a375-5dfa-8744-e708788375cf",
        "681638a8-6c65-5beb-b71a-c6e54e0b9a68",
        "5b93e86e-462c-5795-bf0f-5ea23f0ffaac",
        "9110e5fe-c7f4-562a-9acb-440ca298dc90",
        "2f7f4c45-de46-5fae-9f53-b3ea9502e71c",
        "fbdd614a-c15b-5888-bf08-5492c2050b7f",
        "5b947956-d97b-51a7-8fdf-488d48f60d96",
        "d5386079-2e49-537a-9449-1eaa0e89ec7c",
        "5a78fcf4-7935-5ae0-a74c-b9a16e3142ce",
        "69a5ef19-4ef2-5e34-bcde-ecaa2b570cf5",
        "ead65a0a-8457-5052-9717-da9f93c7c6f1",
        "7c45e99c-8494-5b46-a487-3dfdce6f2c53",
        "8d8c5100-12df-5260-8e6c-9c3126af3c06",
        "35b97185-bf76-586a-9b33-e5e4b9b6dd1a",
        "194b5664-8d87-5fa6-af21-e092ff5fe986",
        "776456e1-edfa-5a52-a9e8-90969f56fdad",
        "912bedec-b234-52a1-9a63-5c07df0971eb",
        "bb1c1033-959b-5490-9a8c-b6981cbd48f1",
        "554cc926-968d-5d90-bb75-f4317ec04cdf",
        "3de21101-a57a-5736-bf8c-430b6d611564",
        "edb6e24a-8326-5132-a751-15324c092066",
        "e1378368-e805-5ad0-8170-0c43ab8e1bf9",
        "7a4cf6ec-a02b-5ffd-bf4c-e7f01af2ed3a",
        "e56a728a-4250-58b4-b872-a4263c6dc547",
        "2630f746-ada7-5644-86ba-0c755c376fc3",
        "f3fe75fd-edc6-585c-b072-41ae930ae77d",
        "6a933531-4d58-5831-a52f-cc1ac32b9e42",
        "180b0f97-127a-5e9c-812a-25ff8cf322f9",
        "c2b9d6ad-97f1-53c5-847e-7bbab3168a7e",
        "5dfdb7a9-98f2-54b3-9e70-688a9563d3aa",
        "2205e666-dc36-5ce4-bd1b-4b349b39a235",
        "96bcaf9c-2b86-561f-ae3f-557006a861ab",
        "cb667185-6150-54a9-a6d8-e4e34222ec04"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-014",
      "passed": false,
      "hallucinated": true,
      "answer_score": null,
      "evidence_score": 1.0,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 0.0,
      "trajectory_score": null,
      "input_tokens": 2148,
      "output_tokens": 225,
      "cache_hit": false,
      "rss_kb_end": 40400,
      "cpu_time_ms": 1000.0,
      "latency_ms": 57222.144097,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "RSN007: skipped supporting neighbourhood of ekos — 47 neighbours exceeds the 40-item budget for background context; a hub entity's neighbourhood describes the corpus, not this question"
      ],
      "answer": "The EKOS ledger allows an existing object to be edited in place once new evidence arrives, rather than appending a new version. This is supported by claims 11 and 12:\n\n* Claim 11: `Ledger::append — Append an entry. Idempotent — if the exact `(id, payload)` pair already exists, skip. Returns `true` if a new version was written.` This suggests that if the object's existing content is identical to the new evidence, the ledger will not create a new version.\n* Claim 12: `FactLedger::append_object — Write a KirObject. Idempotent by content signature; returns `true` when a new version was recorded.` This claim explicitly states that the append operation is idempotent and only creates a new version if the object's content has changed.",
      "evidence_text": "possible search match (partial term overlap): Ledger::append_versioned — Append an entry, versioned by (id, content signature).  Unlike a plain content-addressable store, the ledger's logical id (`entry.id`) is stable across an object/relationship's lifetime — it is **not** required to be unique in `entries`. Re-appending logically identical content u… [ekos/crates/ledger/src/lib.rs:500]\npossible search match (partial term overlap): Ledger::append_evidence — Write a KirEvidence. Idempotent. [ekos/crates/ledger/src/lib.rs:602]\npossible search match (partial term overlap): Ledger::append_object — Write a KirObject. Updates the current-state index and FTS to point at this version, even if the exact payload was already present (repointing is a cheap no-op in that case). Returns `true` if a new version was recorded — `false` means this exact content was already the latest.  … [ekos/crates/ledger/src/lib.rs:561]\npossible search match (partial term overlap): append_relationship_once — Appends a `Custom(kind_name)` relationship from `from` to `to`, unless one already exists — the same idempotency pattern `simulation.rs:: append_knows` already uses, so `like`/`follow`/`share` are safe to call more than once for the same pair. [ekos/crates/simulation/src/forum.rs:50]\npossible search match (partial term overlap): FactLedger::append_version — Migration entry point: append one historical version with its **original** commit timestamp (RFC 0016 §8). [ekos/crates/ledger/src/fact_ledger.rs:530]\npossible search match (partial term overlap): PartitionedLedger::append_evidence [ekos/crates/ledger/src/partitioned/knowledge_store.rs:21]\npossible search match (partial term overlap): FactLedger::append_evidence — Write a KirEvidence. Idempotent. [ekos/crates/ledger/src/fact_ledger.rs:503]\npossible search match (partial term overlap): DistributedLedger::append_evidence [ekos/crates/distributed/src/gateway.rs:460]\npossible search match (partial term overlap): PartitionedLedger::append_evidence — Append evidence to the `\"evidence\"` partition for its `created_at` bucket; index its id. [ekos/crates/ledger/src/partitioned/mod.rs:1099]\npossible search match (partial term overlap): Ledger::export_versions — Every version row in commit (rowid) order — the migration export. [ekos/crates/ledger/src/lib.rs:1939]\npossible search match (partial term overlap): Ledger::append — Append an entry. Idempotent — if the exact `(id, payload)` pair already exists, skip. Returns `true` if a new version was written.  RFC 0104 Phase 1: wrapped in a real transaction — `append_versioned`'s own SELECT-then-INSERT is a check-then-act pair that two racing writers could… [ekos/crates/ledger/src/lib.rs:548]\npossible search match (partial term overlap): FactLedger::append_object — Write a KirObject. Idempotent by content signature; returns `true` when a new version was recorded. [ekos/crates/ledger/src/fact_ledger.rs:497]\npossible search match (partial term overlap): PartitionedLedger::append_object [ekos/crates/ledger/src/partitioned/knowledge_store.rs:18]\npossible search match (partial term overlap): PartitionedLedger::append_object [ekos/crates/ledger/src/partitioned/mod.rs:913]\npossible search match (partial term overlap): DistributedLedger::append_object [ekos/crates/distributed/src/gateway.rs:457]\npossible search match (partial term overlap): Ledger::versions_in_window — Object/relationship versions written strictly after `from` and at or before `to`, plus the logical id each version belongs to. [ekos/crates/ledger/src/lib.rs:1157]\npossible search match (partial term overlap): Ledger::append_relationship — Write a KirRelationship. Updates the relationship index to point at this version. Returns `true` if a new version was recorded.  RFC 0104 Phase 1: wrapped in a real transaction, same reasoning as `append_object`. [ekos/crates/ledger/src/lib.rs:628]\npossible search match (partial term overlap): Ledger::append_event — Write a KirEvent. Immutable log entry — no \"current version\" concept, unlike Object/Relationship (RFC 0029: the first real write path for `EntryType::Event`, previously defined but never used). [ekos/crates/ledger/src/lib.rs:614]\npossible search match (partial term overlap): Ledger::get_evidence — Retrieve a KirEvidence by id. [ekos/crates/ledger/src/lib.rs:703]\npossible search match (partial term overlap): Ledger::evidence_count — Number of `Evidence` entries appended (RFC 0127 R2). Counts raw append entries, not distinct ids — evidence is write-once and never versioned, so the two are equal. [ekos/crates/ledger/src/lib.rs:1095]\n",
      "evidence_refs": [
        "34714a5a-3196-41de-9f7c-1084f508ae49",
        "7ede6440-9323-4fcb-8882-972e5c2a2fd4"
      ],
      "retrieved_ids": [
        "fd02b8da-192d-585b-a46d-996b4095186c",
        "46d35bf5-9fac-5d57-bfb9-856246acd8b7",
        "b71bb7ad-337a-518f-9b6e-316178f45928",
        "9429e4d7-b5e1-524e-9187-4b34e9316795",
        "fa5c07dd-0d4b-5578-b912-83e1377ef34c",
        "618aa303-5a90-5bdc-a1ae-53c53357459f",
        "2e115223-2707-56f3-853a-b59319f23c31",
        "ce59da90-64ca-541e-bb7a-09e79c776dd4",
        "562cdd48-cb3e-5ec8-a5e3-ae8384d0b7a2",
        "1ed3c4b0-eefc-5cee-8f3b-f559c0e5f97e",
        "7b3089e3-ed30-5f52-bc3c-a296097d3b8f",
        "80968d4b-8f2c-5ecc-9368-42863245986e",
        "71b46273-4bec-5c27-8ca2-63279b7e5241",
        "04825ad3-6962-5845-bf1d-7fbf1080743f",
        "d44fff5d-1561-5486-be0c-9c50d9eb4d44",
        "972c0223-2c64-54bc-b774-890fc6b61ab1",
        "7cfea349-6f7b-5501-8b20-1291291d672b",
        "0605f067-82d6-503b-9400-c9879e68fe96",
        "68cde231-8d3f-56c2-8009-cf34a2cbc0ca",
        "35d41b9a-03c8-51ce-b646-b613c61830e7",
        "f92c42cd-96e2-5b55-8bc1-2184a7ea22d5",
        "bc4b77e9-6e8d-54b0-aa9a-8fc066a535b3",
        "d640b0e7-cfd1-5693-8c96-022d84598df3",
        "619195b7-13c5-595b-9576-105aed9fa7d7",
        "5c819f15-17bf-551a-b6ed-0af5e6d43eaa",
        "00beea88-f9ec-5c1b-88bb-7bc1fedb8fa8",
        "6d896984-f9d1-581e-9808-5e59878dab08",
        "3638e3bf-a432-54bc-8ec8-3db1c55ae4e1",
        "a33eb7a9-443d-5e87-8f77-b0c0364811bb",
        "343324c6-bed2-5ed6-8e0b-bdc227b8a0bf",
        "7ef60f00-3e4b-5a66-a63d-f75fcbf7f8da",
        "a41df42a-3316-58c5-82d0-b80aedac6aad",
        "0b1ad196-2644-5ebb-b49e-a1a12901189a",
        "fb889ed1-2009-5d0a-ab6f-6ad6c82decc3",
        "c1f796f9-4eda-5e58-bfc1-90620e984000",
        "75ce5ae0-9feb-5d69-a1a5-e3e21b368279",
        "718c13b1-aef0-56a2-8c82-57ddff6f3eba",
        "09a9951a-1e35-5a79-ae5c-2c9793ae4e34",
        "6566e78a-2844-5a61-b107-a9031243d510",
        "620e9157-0074-5ad6-8b14-58801a36e4b9",
        "a66b3384-6598-57d7-b876-79c5d7ac181d",
        "a58cd217-2bcf-5516-83b6-1a7b8db7f75e",
        "e17ebc72-482b-55d0-8cb3-d68e31347276",
        "76356616-7801-5ca1-9003-e69db3599198",
        "f2714bfa-a29a-5e5c-b6ce-96c95bd2a1af",
        "48dcf9a6-293c-53ff-8cce-1ef20a74619e",
        "67ca7413-0e5e-5622-b31d-65789573a4ef",
        "4a261489-b500-5ae8-bf61-7937978f1547",
        "fc70ca8a-77c3-544d-9f45-c171d1628796",
        "76ac6a66-5503-5406-b054-717f15eb0a2e"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-015",
      "passed": false,
      "hallucinated": true,
      "answer_score": null,
      "evidence_score": 1.0,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 0.0,
      "trajectory_score": null,
      "input_tokens": 2485,
      "output_tokens": 22,
      "cache_hit": false,
      "rss_kb_end": 31960,
      "cpu_time_ms": 1010.0,
      "latency_ms": 34532.185092,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "RSN007: skipped supporting neighbourhood of ekos — 47 neighbours exceeds the 40-item budget for background context; a hub entity's neighbourhood describes the corpus, not this question"
      ],
      "answer": "EKOS licenses its vector embedding index from Ollama.",
      "evidence_text": "possible search match (partial term overlap): LICENSE — MIT License\n\nCopyright (c) 2026 alexeyban\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto us… [LICENSE]\npossible search match (partial term overlap): embedding_text — The text an object is embedded from — the same signal `SearchIndex` indexes, so a vector hit and a BM25 hit describe the same document: `name`, kind, its `ai_overview` (RFC 0088) if it has one, else a redacted content excerpt.  RFC 0141 §3: a code symbol (any object carrying `sym… [ekos/crates/recovery/src/embed.rs:386]\npossible search match (partial term overlap): build_embedding_provider — Mirrors `select_llm_provider_for_description` for `[embeddings]`. `None` when the table is absent/disabled; provider kind falls back to `[llm] provider`, then `\"mock\"` (offline). [ekos/crates/cli/src/commands/commit.rs:605]\npossible search match (partial term overlap): ekos_ledger::vector::VectorIndex\npossible search match (partial term overlap): ekos/crates/ledger/src/vector.rs — //! RFC 0125 (Phase 6 of RFC 0118) — the vector index.\n//!\n//! A sibling of [`crate::search::SearchIndex`], at `<ledger-dir>/vectors/`. **Derived and\n//! rebuildable** with its own `last_tx` watermark — the opt-in post-`commit` embed pass lags BM25\n//! by many commits, so the vec… [ekos/crates/ledger/src/vector.rs]\npossible search match (partial term overlap): seed_reference_vectors — Build the RFC 0125 vector index over an already-seeded estate, at `<ledger-root>/vectors/`, using the deterministic mock embedder. Returns a `|query| Vec<f32>` closure to hand to [`evaluate`] so query and document embeddings come from the same provider. [ekos/crates/runtime/src/retrieval_eval.rs:566]\npossible search match (partial term overlap): ekos/docs/rfcs/0125-vector-search-arm.md — # RFC 0125 — Phase 6 of RFC 0118: the SEARCH vector arm\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-09-01\n**Implemented:** 2026-09-01 (`devlog_147`)\n**Phase 6 of:** RFC 0118 · **builds on:** RFC 0119 (retrieval seam) + 0120 (RRF fusion) + 0016 (fact engine / `Se… [ekos/docs/rfcs/0125-vector-search-arm.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0125-vector-search-arm.md — # RFC 0125 — Phase 6 of RFC 0118: the SEARCH vector arm\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-09-01\n**Implemented:** 2026-09-01 (`devlog_147`)\n**Phase 6 of:** RFC 0118 · **builds on:** RFC 0119 (retrieval seam) + 0120 (RRF fusion) + 0016 (fact engine / `Se… [ekos/docs/rfcs/0125-vector-search-arm.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0125-vector-search-arm.md: section 4 — | `ekos query find --mode <lexical\\|vector\\|hybrid>` | `lexical` (default) = today. `vector` / `hybrid` embed the query and set `query_embedding`; `vector` also drops the BM25 arm (`arms.bm25 = false`), `hybrid` keeps both. Errors clearly if `[embeddings]` is not configured. |\n| … [ekos/docs/rfcs/0125-vector-search-arm.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0125-vector-search-arm.md: section 5 — returned); `compact()` at > 0.3 tombstones drops them; a `meta.json` dim mismatch wipes on open.\n- **`embed_objects`:** on a seeded ledger with `[embeddings]` mock, `ekos commit` creates\n  `vectors/meta.json` with the right `count`/`dim`; a second `commit` with no object changes\n… [ekos/docs/rfcs/0125-vector-search-arm.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0125-vector-search-arm.md: section 3 — ### 3. `[embeddings]` config + the post-`commit` embed pass\n\n```toml\n[embeddings]\nenabled = true\nprovider = \"ollama\"        # or \"openai\" | \"mock\"; falls back to [llm] provider if unset\nmodel = \"nomic-embed-text\"  # optional override\napi-key-env = \"OPENAI_API_KEY\"\ncache = true\n``… [ekos/docs/rfcs/0125-vector-search-arm.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0125-vector-search-arm.md: section 2 — | `OllamaEmbeddingProvider` | `POST {host}/api/embeddings {model, prompt}` per text (Ollama has no batch endpoint — sequential, bounded concurrency 4). Default model `nomic-embed-text` (`dim` 768). Host from `[llm] ollama-host` or `http://localhost:11434`. |\n| `OpenAiEmbeddingPro… [ekos/docs/rfcs/0125-vector-search-arm.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0125-vector-search-arm.md: section 1 — # RFC 0125 — Phase 6 of RFC 0118: the SEARCH vector arm\n\n**Status:** Accepted\n**Author:** EKOS team\n**Created:** 2026-09-01\n**Implemented:** 2026-09-01 (`devlog_147`)\n**Phase 6 of:** RFC 0118 · **builds on:** RFC 0119 (retrieval seam) + 0120 (RRF fusion) + 0016 (fact engine / `Se… [ekos/docs/rfcs/0125-vector-search-arm.md]\npossible search match (partial term overlap): ekos_ledger::index::SortOrder\npossible search match (partial term overlap): ekos_ledger::index::FactIndexes\npossible search match (partial term overlap): ekos_ledger::index::ScanPrefix\npossible search match (partial term overlap): ekos_ledger::index::IndexEntry\npossible search match (partial term overlap): index [ekos/crates/demo-server/src/main.rs:249]\npossible search match (partial term overlap): ekos/crates/ledger/src/index.rs — //! RFC 0016 Phase 3 — derived index runs in three sort orders.\n//!\n//! Segments are the truth (Phase 2); indexes are **derived and rebuildable**.\n//! Each sealed segment's facts sort into per-segment *runs* — immutable files\n//! of key-ordered entries — in three covering sort or… [ekos/crates/ledger/src/index.rs]\npossible search match (partial term overlap): ekos_ledger::exact_name_matches\n",
      "evidence_refs": [
        "c2e3dc59-c0d7-4a77-b0d4-0d7ed054b263"
      ],
      "retrieved_ids": [
        "5260b71a-8e57-58cb-9a59-6d004a69028e",
        "7343d550-dd86-52e4-b863-e3a3fb814756",
        "34719f24-1cc3-5b49-b32b-3c4b92d3c8cf",
        "c9bbb7ef-2302-5f67-aa62-f1f9de1c7819",
        "1137800e-1b4d-561e-8711-aa11bd02663c",
        "9eb64855-c4f4-5543-beb9-b861e58d52b8",
        "94017f55-a93d-5c79-bf2c-35240668a684",
        "7b4ee58b-a968-5895-88c4-7fb36ced8487",
        "3c65fbf6-81a9-5923-a3ba-5dc86694a713",
        "6501c85b-03fb-5e03-aa88-49a341988f38",
        "7d74e1d1-d372-5e90-820b-7c9f20e6756f",
        "f88cafa5-8564-5ecc-94f1-5c560d2ed65a",
        "64db826c-f714-5efe-a864-6dbb11e71ec1",
        "aa71b856-b088-5cb2-88be-6348dfe243c2",
        "31e46472-36d2-53f9-b3af-43afbff21659",
        "e797a041-21b7-5438-b447-89c0a9549468",
        "7221935c-efd2-5a91-85e3-5cc0059fc2c8",
        "38bc2773-25a6-57c1-ae28-119fe61c3ebb",
        "a43fa387-2cac-5166-bfc2-ae4c965fc2ac",
        "3484799d-e14c-5e26-bb8c-4441974cc110",
        "923d1cdd-35ae-5279-8861-c6ce665fe1d4",
        "db08b255-576a-5a3a-bc96-50b050ce1bf1",
        "f30b6ac8-e881-5a02-9a65-4c461a70cea5",
        "bf89a478-7295-5f35-9b78-8b78fc669233",
        "96b3b9fa-2184-5026-8e7e-ba8a87495b65",
        "50a81343-e67e-5867-94e1-8ea22177dac6",
        "38f04e4c-efad-5c3b-a82f-d5bb67cad13b",
        "03ad745b-ee4f-5f8e-b2c1-0f2620d67d5e",
        "2b7f0e3c-6af6-50ea-92ae-87efcb78ef30",
        "ff9dcb4f-d81c-54b5-901f-6a14f2357a40",
        "f5d05d0c-5011-5b0c-9b36-bb6885a9ba67",
        "218e1dbe-d927-5728-a4f4-ab89b9f9e650",
        "5193a5ac-46e7-531b-b656-5846be762d81",
        "d82b2a99-1473-5aab-ae80-1c6ddfda8239",
        "890f9527-fef5-5556-bf1c-41613f51627e",
        "e28cd5b0-9435-5794-8b27-e7a5979a69f4",
        "980165a9-dde4-5e41-8453-80eb75c82e2b",
        "0e296e73-d504-526b-86bd-5bd2e14bd5c4",
        "86c3b125-9f99-57be-9532-395ecbd10c77",
        "6480ddab-64fa-5943-9b80-761f8348ae58",
        "0bcabcc1-9889-50a4-ab35-e9976473dc31",
        "8adc14b5-b222-5789-8bc6-4c6fa1dd2a03",
        "c7d2bc59-793b-58f8-a8c2-9b81bb3fad47",
        "83870f14-89d1-553f-805e-cf51a31767a0",
        "9115f110-11ef-5638-8470-deeb86b5bf4f",
        "9db877c0-0fe0-5373-99ef-19beb798a02b",
        "0923a076-dffd-5c56-b01b-022d8eeb0a55",
        "52a45d56-803e-5898-b513-4c08e50d0788",
        "73bcee46-bc7e-5c65-a37b-21b09d40104a",
        "76b7e221-f491-5d30-814b-c8bd9e51ff85"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-016",
      "passed": true,
      "hallucinated": false,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 1.0,
      "trajectory_score": null,
      "input_tokens": 2737,
      "output_tokens": 27,
      "cache_hit": false,
      "rss_kb_end": 19112,
      "cpu_time_ms": 830.0,
      "latency_ms": 39093.221354,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "RSN007: skipped supporting neighbourhood of ekos — 47 neighbours exceeds the 40-item budget for background context; a hub entity's neighbourhood describes the corpus, not this question",
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "Insufficient evidence.\n\nI looked for claims that directly mention the internal Slack channel used by the EKOS team to discuss production incidents.",
      "evidence_text": "possible search match (partial term overlap): AttributeRegistry::intern — Intern a path, allocating the next id if unseen. [ekos/crates/ledger/src/fact.rs:122]\npossible search match (partial term overlap): uses_distributed — True when `[storage.distributed]` points reads at a Distributed-mode cluster (RFC 0113 B4). Takes precedence over every local backend — the workspace holds no data of its own. [ekos/crates/cli/src/commands/store.rs:20]\npossible search match (partial term overlap): uses_partitioned — True when this workspace is served by [`PartitionedLedger`] — either it already has a `partitioned/catalog.json`, or `[storage.partition]` is enabled **and** neither of the other two backends has ever been written to (a genuinely fresh workspace opting in, mirroring the fact-engi… [ekos/crates/cli/src/commands/store.rs:57]\npossible search match (partial term overlap): VirtualForum::create_channel — A `Custom(\"Channel\")` object (RFC 0048's existing convention) with an optional `resources.capacity` — a named helper over what was already possible, not new storage. [ekos/crates/simulation/src/forum.rs:82]\npossible search match (partial term overlap): uses_fact_engine — True when this workspace already has a real fact store on disk — either migrated via `ekos ledger migrate --v3`, or previously auto-created as a fresh workspace's default. Doesn't distinguish *how* it got there, only that it's the active backend now. [ekos/crates/cli/src/commands/store.rs:50]\npossible search match (partial term overlap): flatten_use_tree — Flattens a `UseTree` (`Path`/`Name`/`Rename`/`Group`/`Glob`) into fully-qualified module path strings, e.g. `use ekos_kir::{KirObject, KirId};` -> `[\"ekos_kir::KirObject\", \"ekos_kir::KirId\"]`. [ekos/crates/recovery/src/rust_analyzer.rs:418]\npossible search match (partial term overlap): index_message_in_channel — Appends a `Custom(\"PostedIn\")` relationship from a message event to its channel — the index [`VirtualForum::read_messages`] queries, since `KnowledgeStore` has no bulk \"every event\" scan (confirmed before designing this RFC). Shared by both `VirtualForum::publish_message` and `si… [ekos/crates/simulation/src/forum.rs:29]\npossible search match (partial term overlap): docs/assets/team-omid-ahmadi.jpg [docs/assets/team-omid-ahmadi.jpg]\npossible search match (partial term overlap): docs/assets/team-alexey-banaev.jpg [docs/assets/team-alexey-banaev.jpg]\npossible search match (partial term overlap): ekos/docs/rfcs/0042-production-grade-curated-docs.md — # RFC 0042 — Production-Grade Curated Documentation (Program Entities, Crate Topology, CI/CD)\n\n**Status:** Draft\n**Author:** EKOS team\n**Created:** 2026-08-09\n\n---\n\n## Motivation\n\nRFC 0037's `--layout curated` (`README.md`/`Architecture.md`/`API.md`/`SequenceDiagrams.md`) was\nrun… [ekos/docs/rfcs/0042-production-grade-curated-docs.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0042-production-grade-curated-docs.md — # RFC 0042 — Production-Grade Curated Documentation (Program Entities, Crate Topology, CI/CD)\n\n**Status:** Draft\n**Author:** EKOS team\n**Created:** 2026-08-09\n\n---\n\n## Motivation\n\nRFC 0037's `--layout curated` (`README.md`/`Architecture.md`/`API.md`/`SequenceDiagrams.md`) was\nrun… [ekos/docs/rfcs/0042-production-grade-curated-docs.md]\npossible search match (partial term overlap): super::store::uses_fact_engine\npossible search match (partial term overlap): ekos/docs/rfcs/0042-production-grade-curated-docs.md: section 1 — # RFC 0042 — Production-Grade Curated Documentation (Program Entities, Crate Topology, CI/CD)\n\n**Status:** Draft\n**Author:** EKOS team\n**Created:** 2026-08-09\n\n---\n\n## Motivation\n\nRFC 0037's `--layout curated` (`README.md`/`Architecture.md`/`API.md`/`SequenceDiagrams.md`) was\nrun… [ekos/docs/rfcs/0042-production-grade-curated-docs.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0042-production-grade-curated-docs.md: section 2 — exist at the repo root) or any other deployment/infra config. CI/CD is entirely unmodeled.\n- `toml` is already a workspace dependency (`ekos/Cargo.toml:80`, used today only by\n  `compiler-core/src/config.rs` to parse `ekos.toml` itself) — adding it to `recovery` is a\n  one-line `… [ekos/docs/rfcs/0042-production-grade-curated-docs.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0042-production-grade-curated-docs.md: section 5 — objects and their `DependsOn` edges to other crates — the real internal-architecture graph\n  CLAUDE.md's crate-map table currently only documents by hand.\n- New `## CI/CD Pipelines` section: one sub-heading per `Pipeline` object with its jobs/steps as a\n  nested bullet list — sam… [ekos/docs/rfcs/0042-production-grade-curated-docs.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0042-production-grade-curated-docs.md: section 7 — following `dependency_analyzer.rs`'s existing test shape exactly (fixture input → assert exact\n  `KirGraph` objects/relationships).\n- `ekos-docs-gen` golden-file-style tests for the rewritten `render_architecture`/`render_api`/\n  `render_sequence_diagrams`, each covering real-dat… [ekos/docs/rfcs/0042-production-grade-curated-docs.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0042-production-grade-curated-docs.md: section 4 — - Registered in `recover.rs` next to the `dep_pass`/`rust_pass` blocks: walk `observe_paths` for\n  files literally named `Cargo.toml`, read content, pass the batch to the new pass.\n- Tests mirror `dependency_analyzer.rs`'s: a 2-3 crate fixture (one root workspace manifest, one\n  … [ekos/docs/rfcs/0042-production-grade-curated-docs.md]\npossible search match (partial term overlap): exactly_one_agent_wins_a_shared_channel_capacity_race [ekos/crates/simulation/tests/conflict_fixture.rs:80]\npossible search match (partial term overlap): ekos/docs/rfcs/0042-production-grade-curated-docs.md: section 6 — is inside a test fixture\") is stale — confirmed 733 real edges exist in this repo today via\n  `rust_analyzer.rs`'s `CallVisitor`. The existing `FeedsInto`/`TransformNode` section (pipeline\n  data-flow order) is unchanged and stays clearly labeled as distinct from this new code\n  … [ekos/docs/rfcs/0042-production-grade-curated-docs.md]\npossible search match (partial term overlap): ekos/docs/rfcs/0042-production-grade-curated-docs.md: section 3 — - `DependencyAnalyzerPass`'s exact shape (`recovery/src/dependency_analyzer.rs:72-166`) — a\n  `Vec<(rel_path, content)>` batched pass writing one `KnowledgeArtifact` — is the template both\n  new passes follow, including its `Custom(\"Technology\")` object kind (reused, not duplicat… [ekos/docs/rfcs/0042-production-grade-curated-docs.md]\n",
      "retrieved_ids": [
        "1f29bac1-ffa9-5110-bbe2-6742ce05b657",
        "0e7c2703-ef93-5032-ae92-9e22c2b22a8a",
        "6c849d64-25f5-5847-817c-5d96d2541f83",
        "4270cf6e-f347-508f-96b1-b31fbfe2a92d",
        "10d67e5a-c754-5199-915e-23349038a6f5",
        "5a57188e-5640-5c40-8eb9-08eda1c1a388",
        "a8810f62-63a2-54f9-85a4-29d5e6b0a0f4",
        "6b8e09c2-d189-511a-ad4e-01405d277a6a",
        "29e866ed-b1c8-5516-a85f-a3fb1a52aacd",
        "0d6aaeb1-76cd-5449-9732-56c010bcec6c",
        "5878f8dc-bb6e-56f3-9cd1-df1a45f22375",
        "868af59a-0508-5cc6-a395-3f4aad7819f6",
        "de57e124-37a4-54be-9a69-e64c36e7a219",
        "02712ccc-11bc-5a80-9155-262b692d1937",
        "399bf51a-267a-5adf-adc2-ea806a6fec84",
        "26814fb0-2e3c-5840-9963-7276de4079e7",
        "6474ba88-a81f-5ca6-8203-c625385f265f",
        "43d160c9-27f8-50c0-8964-53fc3ef73432",
        "0a5383d0-b246-57bb-ad71-b46242d5f04e",
        "ba155b09-1364-59fe-bafe-51cfa8ecd0c5",
        "77b92160-76ff-5c3a-8f00-af178a6f9c89",
        "8e0c787d-9cca-5ee0-a279-079d033b4b75",
        "61963106-8120-5922-ad70-07f37f777e9e",
        "67ea4c4e-5e03-5c3a-8066-adf7aaed8a3e",
        "50479ac5-29a2-5ce7-80da-5509e05864a8",
        "d14cd5d5-7e8b-5520-8758-a0f58c54f43e",
        "9f6de4c5-5252-5c34-a5e1-dcad3602f956",
        "30d66d43-340b-5d81-a42c-05c191fd967d",
        "abd31cd9-b31d-54c5-87cd-8a4a5b9a30a0",
        "856cc9bd-1cec-5f5a-89c3-4b921f2a1910",
        "3961c92a-2f20-528e-9213-7a9f9ff401c8",
        "9e639ec8-3f25-5b2c-965d-f8da509c451b",
        "09d4ef4a-3da0-5db4-8121-e51896e627a8",
        "c18d7f1d-31b1-58f2-ab08-58b1eb2a4635",
        "8676c970-31d1-5ce5-90bd-611f27e232dc",
        "a6198bc3-c5e0-56c2-9a26-27df379d4952",
        "86cf311e-d450-5a1f-bdb1-ab43953c09c0",
        "6ad205db-670c-586e-bdd7-0583f7792d09",
        "377b73ff-b9e6-5f39-a3a1-b4d46b7a4515",
        "3e1dd7cf-85bd-5682-ab18-8161f5d6b28f",
        "56a47a22-88ff-52f9-a4cc-4d629ca2e2d7",
        "80f1cfcf-a04e-5138-8cdb-a0be5c165b44",
        "6c1b4972-818b-5c41-8a16-ca9458effb83",
        "704ed0f6-833b-5a87-a8ec-000fa0269b34",
        "72d8ee61-3596-56a7-8563-2ca2b7413b75",
        "603a7e07-11dd-5e77-a6de-73668e16f25b",
        "ab6ac41c-819a-5e07-9ae6-12d55678026e",
        "9c1dec4f-f92f-598c-9e50-ab03283b6a4c",
        "395f9c44-cae5-534f-b0b2-23e161c1c7a6",
        "634f7138-ffbc-5d92-9e66-05b54334d48b"
      ],
      "planned_query_type": "lexical"
    },
    {
      "id": "adv-017",
      "passed": true,
      "hallucinated": false,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 1.0,
      "trajectory_score": null,
      "input_tokens": 3875,
      "output_tokens": 29,
      "cache_hit": false,
      "rss_kb_end": 38212,
      "cpu_time_ms": 1410.0,
      "latency_ms": 58303.009795,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "RSN005: aggregate questions (\"how many …\", \"list all … by …\") are best answered by an EKL COUNT / GROUP BY query — this plan falls back to a keyword search",
        "AI001: LLM response did not include a valid cited_evidence block"
      ],
      "answer": "Insufficient evidence.\n\nI looked for claims that describe the maximum number of enterprise systems a single EKOS workspace is contractually permitted to observe.",
      "evidence_text": "possible search match (partial term overlap): line_number — 1-indexed line number containing byte offset `offset` in `source` — counts `\\n` bytes before it. `rustpython_parser`'s `Ranged::range()` gives byte offsets (`TextSize`), not line/column; `syn`'s `LineColumn` (what `rust_analyzer.rs`'s own `item_span` uses) has no Python equivalen… [ekos/crates/recovery/src/python_analyzer.rs:578]\npossible search match (partial term overlap): build_single_dot_path_workspace_has_no_project_property — The truly common case (`paths = [\".\"]`, `base == cwd`) must produce byte-identical ids to before this fix — no `project` property, no migration for existing single-project ledgers. [ekos/crates/cli/tests/skeleton.rs:325]\npossible search match (partial term overlap): ekos_observation_sdk::Observer\npossible search match (partial term overlap): Lexer::read_number [ekos/crates/ekl/src/parser.rs:189]\npossible search match (partial term overlap): number_from_filename — Extract `N` from a `devlog_N.md`-shaped filename (path or bare name). [ekos/crates/marketing/src/devlog.rs:129]\npossible search match (partial term overlap): ekos_observation_sdk::walk_observed\npossible search match (partial term overlap): build_single_non_dot_path_workspace_gets_a_real_project_property — Regression test for a real bug RFC 0088's own live verification found: a workspace with exactly *one* `[observe] paths` entry that isn't `\".\"` (this file's own `setup_workspace` fixture, `paths = [\"src\"]` — and the real shape the analytics project's own backend-only config uses, … [ekos/crates/cli/tests/skeleton.rs:353]\npossible search match (partial term overlap): Concentration risk: ekos_observation_sdk::Observer\npossible search match (partial term overlap): find_closed_issue_numbers — Finds every `<keyword> #<number>` occurrence in `body` (case-insensitive), deduplicated. Plain scanning, not a parser. [ekos/crates/recovery/src/github_analyzer.rs:83]\npossible search match (partial term overlap): find_bare_issue_numbers — Finds every `#<number>` occurrence anywhere in `body`, deduplicated, in first-occurrence order — regardless of whether a closing keyword precedes it (RFC 0062). Real PR bodies overwhelmingly use bare references (`\"Migration for #3828\"`, `\"see also #6514\"`) rather than GitHub's do… [ekos/crates/recovery/src/github_analyzer.rs:108]\npossible search match (partial term overlap): ekos-observation-sdk — Observer trait and connector contract (Phase 3)\npossible search match (partial term overlap): ekos_identity::cross_system::find_cross_system_candidates\npossible search match (partial term overlap): find_full_url_issue_numbers — Finds every `github.com/<owner>/<repo>/(pull|issues)/<number>` URL occurrence in `body`, scoped to the same `owner`/`repo` this pass is already processing — a cross-repo URL would need a different KIR item namespace entirely (`item_kir_id` is already scoped to one owner/repo per … [ekos/crates/recovery/src/github_analyzer.rs:135]\npossible search match (partial term overlap): ekos/crates/observation-sdk/Cargo.toml — [package]\nname = \"ekos-observation-sdk\"\ndescription = \"Observer trait and connector contract (Phase 3)\"\nversion.workspace = true\nedition.workspace = true\n\n[dependencies]\nekos-common.workspace = true\nekos-artifact.workspace = true\nasync-trait.workspace = true\nthiserror.workspace =… [ekos/crates/observation-sdk/Cargo.toml]\npossible search match (partial term overlap): ekos_observation_sdk::ScanContext\npossible search match (partial term overlap): ekos_observation_sdk::ObservationPackage\npossible search match (partial term overlap): ekos_observation_sdk::ObserveError\npossible search match (partial term overlap): ekos/crates/observation-sdk\npossible search match (partial term overlap): Observer — Core connector extension point.  # Contract - `scan` must not modify the workspace. - `scan` is safe to call multiple times; identical workspace state → identical artifact IDs. [ekos/crates/observation-sdk/src/lib.rs:222]\npossible search match (partial term overlap): ekos depends_on ekos-observation-sdk [ekos/crates/cli/Cargo.toml]\npossible search match (partial term overlap): ekos_observation_sdk::source_fingerprint\npossible search match (partial term overlap): Concentration risk: ekos-observation-sdk [benchmark/Cargo.toml]\npossible search match (partial term overlap): docs/rfcs/0012-enterprise-connectors-scaffold.md — # RFC 0012 — Phase 14 Connector Scaffolding (SAP, Salesforce, Oracle, Fabric, Snowflake)\n\n| Field | Value |\n|-------|-------|\n| **Status** | Accepted |\n| **Author** | EKOS team |\n| **Created** | 2026-07-11 |\n| **Gating** | Phase 14 |\n\n---\n\n## Motivation\n\nPhase 14's TODO validates… [docs/rfcs/0012-enterprise-connectors-scaffold.md]\npossible search match (partial term overlap): docs/rfcs/0012-enterprise-connectors-scaffold.md — # RFC 0012 — Phase 14 Connector Scaffolding (SAP, Salesforce, Oracle, Fabric, Snowflake)\n\n| Field | Value |\n|-------|-------|\n| **Status** | Accepted |\n| **Author** | EKOS team |\n| **Created** | 2026-07-11 |\n| **Gating** | Phase 14 |\n\n---\n\n## Motivation\n\nPhase 14's TODO validates… [docs/rfcs/0012-enterprise-connectors-scaffold.md]\npossible search match (partial term overlap): ekos/crates/observation-sdk/src/lib.rs — //! Observation SDK — contract between the compiler and connectors.\n//!\n//! Every connector (file system, git, SQL, Confluence …) implements the `Observer`\n//! trait and returns an `ObservationPackage`. The package is a typed, content-\n//! addressable collection of `ObservationAr… [ekos/crates/observation-sdk/src/lib.rs]\npossible search match (partial term overlap): ekos-simulation depends_on ekos-observation-sdk [ekos/crates/simulation/Cargo.toml]\npossible search match (partial term overlap): ekos-observation-sdk depends_on ekos-common [ekos/crates/observation-sdk/Cargo.toml]\npossible search match (partial term overlap): ekos-observation-sdk depends_on ekos-artifact [ekos/crates/observation-sdk/Cargo.toml]\npossible search match (partial term overlap): ekos-benchmark depends_on ekos-observation-sdk [benchmark/Cargo.toml]\npossible search match (partial term overlap): ekos/crates/identity/src/cross_system.rs — //! Cross-system identity resolution (RFC 0029) — a heuristic scorer for\n//! candidate matches between objects observed under different names in\n//! different systems (e.g. Informix `cust_mstr`, Postgres `customers`,\n//! Databricks `gold.dim_customer` — all \"the customer table\").… [ekos/crates/identity/src/cross_system.rs]\npossible search match (partial term overlap): observed_by — Every agent with a `Knows` edge pointing at `event_id` — a query over data `execute_action`'s own visibility fanout (`observers_for`/ `append_knows`) already produces, not a second copy of it (RFC 0054's closure of Phase 12's `observed_by` field). [ekos/crates/simulation/src/simulation.rs:469]\npossible search match (partial term overlap): _observe_of [web/api/app/config_io.py:40]\npossible search match (partial term overlap): walk_observed — Walk the source tree under `ctx.workspace_root` the way every connector does: `walkdir` with `filter_entry` pruning any **directory whose name** matches an `ignore_patterns` entry (name equality — not a glob, not a path prefix), plus a per-component `is_ignored` check on files.  … [ekos/crates/observation-sdk/src/lib.rs:100]\npossible search match (partial term overlap): observers_for — Who should gain a `Knows` edge to a just-executed action's event: every configured agent for a public action, actor + target for a private one, actor only for a self-only one. [ekos/crates/simulation/src/simulation.rs:222]\npossible search match (partial term overlap): diff_observe [web/api/app/config_io.py:76]\npossible search match (partial term overlap): observe_warnings — `[observe]`-focused lint over an already-parsed config. Pure — unit-tested directly. [ekos/crates/cli/src/commands/config.rs:31]\npossible search match (partial term overlap): Concentration risk: ekos_observation_sdk::ScanContext\npossible search match (partial term overlap): Concentration risk: ekos_observation_sdk::ObservationPackage\npossible search match (partial term overlap): Concentration risk: ekos_observation_sdk::ObserveError\npossible search match (partial term overlap): ekos-observation-sdk depends_on serde [ekos/crates/observation-sdk/Cargo.toml]\npossible search match (partial term overlap): ekos-observation-sdk depends_on chrono [ekos/crates/observation-sdk/Cargo.toml]\npossible search match (partial term overlap): ekos-observation-sdk depends_on hex [ekos/crates/observation-sdk/Cargo.toml]\npossible search match (partial term overlap): ekos-observation-sdk depends_on walkdir [ekos/crates/observation-sdk/Cargo.toml]\npossible search match (partial term overlap): ekos-observation-sdk depends_on tokio [ekos/crates/observation-sdk/Cargo.toml]\npossible search match (partial term overlap): ekos-observation-sdk depends_on sha2 [ekos/crates/observation-sdk/Cargo.toml]\npossible search match (partial term overlap): ekos-observation-sdk depends_on thiserror [ekos/crates/observation-sdk/Cargo.toml]\npossible search match (partial term overlap): test_single_node_is_placed_at_the_origin [web/api/tests/test_layout_unit.py:37]\npossible search match (partial term overlap): ekos-plugin-oracle depends_on ekos-observation-sdk [ekos/plugins/oracle/Cargo.toml]\npossible search match (partial term overlap): ekos-plugin-snowflake depends_on ekos-observation-sdk [ekos/plugins/snowflake/Cargo.toml]\npossible search match (partial term overlap): ekos-plugin-elixir depends_on ekos-observation-sdk [ekos/plugins/elixir/Cargo.toml]\n",
      "retrieved_ids": [
        "ea706cbe-4dae-5dbd-9b15-e59b73fe5e4d",
        "d881313c-aeeb-523c-932e-f0348790fe74",
        "02bf82f8-2a57-5ab5-b2a9-9b65ba6f21cf",
        "bdbed412-5bba-5cd2-a9f6-af805e8a049f",
        "f7cc1e5c-9061-547c-9c42-8668b145fbfb",
        "9daf9eba-14b5-5c76-bb5a-46df3c433423",
        "10499888-a7e7-5aec-b750-bb466d02dd6b",
        "8bc9535a-ee9f-51a7-ba0c-da92bf3a1e1e",
        "5f490787-c057-53eb-80ed-4287e50a0a04",
        "3850a518-003b-5763-83cd-5bfb0d823faf",
        "9a955a3a-55bc-587a-942d-fb81d6260052",
        "a670f27c-4513-5cc4-a90a-0df2af093b4a",
        "8c7bf774-af5d-53e2-b0e8-4e51bb120ff3",
        "8bd33342-cac2-5f5e-b076-ee49a7b9dad0",
        "b2d3ec66-4002-56dc-bb59-28fdc9b85b55",
        "f044e1d6-ac9a-5c9b-8d3f-d4249b9c429a",
        "346df89a-a54f-54d1-9e4c-26a365cc459f",
        "d9449c55-bda9-5c28-b9b6-09224705cca2",
        "3259bd58-25b4-540b-979d-5e1ca0bd4e26",
        "13f3b89e-2171-5d6e-b1a0-1240ec76f8fe",
        "7f06c68b-2052-5301-86ed-f44af3dbe4b8",
        "e458dd77-21f4-5935-82c4-893b1ae66871",
        "cc0f6a29-7003-541b-ae92-a86280d3417b",
        "b43bf091-bf5f-595d-93a8-267723704314",
        "66ce958b-7250-5ec2-954e-eacf8f64aae0",
        "be0aeaba-5201-52cf-a357-ff7bf40f8bfd",
        "838ea057-2bc7-5e27-98d5-9648623d1653",
        "c0ca8f59-9845-5daf-b6b5-fad24bdabc77",
        "b3116bcd-4057-58c7-b725-6b10065ff4bc",
        "44d130a8-ca02-506d-bc1a-21b037fb492c",
        "e9bc4ac9-626c-55c2-95ca-31d0236b1e09",
        "18bb71a4-5177-5a8e-91c6-007bfd02b8e5",
        "318e60bd-7d73-56bd-ad7d-e5d16a3ac6c1",
        "2cb3e134-63d2-5df6-9f4f-613c51a00224",
        "7e6f2f7a-e57e-5759-8669-b81c3bdd7436",
        "029ddf3a-02b1-59d0-8f34-61a2e7a06414",
        "e9b2d9a5-106c-59b7-b8d3-20efe5f81573",
        "859fd63c-f23c-5e3e-8e4f-b1b7dab54809",
        "d9903186-19d4-5d07-9acc-c2f21de5b53c",
        "e1261e78-b8e8-5921-9eb3-ebf64e480c2a",
        "f7f8c23b-c88a-5d04-97d5-73a105a67214",
        "74e43339-7b28-5c4d-ba13-f734aa775704",
        "cbf61c79-ada5-5e34-968f-43fbae461f1e",
        "a16df77b-63fb-57f0-b9ec-7fc425a02943",
        "65441bbe-4c59-57f8-bb7d-39da514807a2",
        "b5ecc1af-9b33-5731-90df-f2dc5935fb15",
        "b4104ea4-bd2f-5f83-9c99-fd525b785fe4",
        "91d8c852-e1d5-5c64-9fb7-829b703859cf",
        "e79e85ca-8677-531f-a05f-eee1262e2d97",
        "b239e317-3c54-551a-b013-a2cf8260e4e9"
      ],
      "planned_query_type": "aggregate"
    },
    {
      "id": "adv-018",
      "passed": false,
      "hallucinated": true,
      "answer_score": null,
      "evidence_score": null,
      "completeness_score": null,
      "retrieval_recall": null,
      "groundedness_score": 0.0,
      "trajectory_score": null,
      "input_tokens": 1538,
      "output_tokens": 95,
      "cache_hit": false,
      "rss_kb_end": 35428,
      "cpu_time_ms": 1030.0,
      "latency_ms": 30848.908904,
      "error": null,
      "attribution": "n/a",
      "diagnostics": [
        "RSN007: skipped supporting neighbourhood of ekos — 47 neighbours exceeds the 40-item budget for background context; a hub entity's neighbourhood describes the corpus, not this question",
        "AI002: LLM response included a cited_evidence block, but no citations survived it (empty array, or none of the ids matched evidence actually supplied in context) — treat this answer as ungrounded even though it parsed cleanly"
      ],
      "answer": "The StarlightConsensusProtocol RFC decided that EKOS's distributed write path involves the DistributedLedger gateway and Service B query workers. This is based on claim 8, which mentions the \"Distributed-mode read path: Service B query workers + the DistributedLedger gateway (impl KnowledgeStore)\".",
      "evidence_text": "possible search match (partial term overlap): ReplyOnceEngine::decide [ekos/crates/simulation/tests/forum_fixture.rs:57]\npossible search match (partial term overlap): PostOnceEngine::decide [ekos/crates/simulation/tests/forum_fixture.rs:28]\npossible search match (partial term overlap): AlwaysPostMessage::decide [ekos/crates/simulation/tests/conflict_fixture.rs:26]\npossible search match (partial term overlap): AlwaysFormAlliance::decide [ekos/crates/simulation/tests/replay_fixture.rs:21]\npossible search match (partial term overlap): AllianceSeeker::decide [ekos/crates/simulation/tests/simulation_fixture.rs:28]\npossible search match (partial term overlap): RuleBasedAgent::decide [ekos/crates/simulation/src/decision.rs:69]\npossible search match (partial term overlap): AlwaysDoNothing::decide [ekos/crates/simulation/src/decision.rs:44]\npossible search match (partial term overlap): ekos-distributed — RFC 0113 B4 — Distributed-mode read path: Service B query workers + the DistributedLedger gateway (impl KnowledgeStore)\npossible search match (partial term overlap): std::path::Path\npossible search match (partial term overlap): object_store::path::Path\npossible search match (partial term overlap): ekos_distributed::QueryWorkerClient\npossible search match (partial term overlap): ekos_distributed::DistributedLedger\npossible search match (partial term overlap): ekos/crates/distributed\npossible search match (partial term overlap): ekos/crates/distributed/Cargo.toml — [package]\nname = \"ekos-distributed\"\ndescription = \"RFC 0113 B4 — Distributed-mode read path: Service B query workers + the DistributedLedger gateway (impl KnowledgeStore)\"\nversion.workspace = true\nedition.workspace = true\n\n[features]\ndefault = []\n# Lets a partition live in object… [ekos/crates/distributed/Cargo.toml]\npossible search match (partial term overlap): test_write_command_needs_write_role [web/api/tests/test_commands.py:57]\npossible search match (partial term overlap): write_rejected [ekos/crates/distributed/src/gateway.rs:450]\npossible search match (partial term overlap): write_ndjson — NDJSON: a `header` record carrying everything except `nodes`/`edges`, then one record per node and per edge. The node/edge objects are emitted exactly as they serialize in the JSON form (short keys and all), with a `\"record\"` discriminator added. [ekos/crates/cli/src/commands/graph.rs:204]\npossible search match (partial term overlap): write_model [ekos/crates/cli/src/commands/dbt.rs:101]\npossible search match (partial term overlap): PackArtifactStore::write [ekos/crates/artifact/src/pack.rs:240]\npossible search match (partial term overlap): write_run — Write the whole index to `run-<num>.jsonl` atomically (temp + rename), lines sorted by `(kind, id, partition key)` — the AEVT-style ordering compaction/rebuild produce. [ekos/crates/ledger/src/partitioned/mod.rs:316]\n",
      "retrieved_ids": [
        "cfa08d10-5aec-5899-b20e-88da7c86b009",
        "b2caa8ea-4a79-5553-8618-51611e32277b",
        "a836e435-23c4-5242-86c5-581d77da71a3",
        "b9bc0141-8172-5248-9358-019b1cdf71a6",
        "f46418c2-9709-5823-9b14-98af9847ec88",
        "cae97649-035d-5589-bc65-5217f7d97528",
        "b9e9903e-978b-5676-a131-56a07b553458",
        "ef05d5c5-cd32-5e63-b0de-54ed19201e99",
        "629768ea-69c7-5c57-9968-511daa1f0a17",
        "55b08975-498b-5684-9544-32bead58d4bd",
        "e505f97e-79b7-5080-8f04-6e7dd5104286",
        "35268685-26b7-5ba9-886f-1f6c6652edfc",
        "6e8469cc-53a4-5a35-b46e-90565681bac5",
        "8df8e217-a1e6-5860-8fd8-842bde22ab17",
        "120f7149-e148-56cb-bd5b-786116d2ee01",
        "1e4ab135-9d4e-5a9f-857b-af052b760e97",
        "34adbfd1-c41a-5af4-9d21-085386479cef",
        "2180f492-2378-5709-97e5-354fd0aa04cf",
        "f153ee62-96d1-5be6-bdb9-249eab66c33b",
        "e77079f8-4e2a-5131-ba2e-e077f2b320cd",
        "cb393b41-2582-587c-a703-fa1a655dc611",
        "1750725c-e944-52c0-80b0-618442c978dd",
        "6672efa9-4ce8-5c9c-a096-3c74f2963490",
        "68da2171-e206-5978-acbe-500cdf6eadd2",
        "944c015c-ad50-5e55-9238-7d57ee4ed67b",
        "2b0df9e4-7f6f-5fa7-ba55-3cc921abd287",
        "203436f8-4f5f-5f2b-93a8-b25fd11e5174",
        "71c4923a-8f1e-587c-a91a-37769f53c149",
        "49e883eb-969b-5fe4-8f78-7a8062bcae5d",
        "29b447d5-5d04-56c9-975b-c5508fff1b84",
        "4eef672b-4d41-5e7b-8a98-d28e8cd3db68",
        "92cabd45-5a52-53d2-9d97-52c111472ccb",
        "de110c89-1a33-5330-a2b8-3e530adfb015",
        "86cf311e-d450-5a1f-bdb1-ab43953c09c0",
        "f72742c7-c8f2-59f2-a0af-b3a4a48990b7",
        "eaddac20-0ab6-5583-82df-ea11589ab47f",
        "414540f1-cb09-595b-a7bb-16c80761d8e4",
        "76897781-775f-5dbb-88fb-3ca48bb6f5e6",
        "b6f23474-e7f8-5428-991a-be47fefecb33",
        "9275fae1-e652-5cb3-a56c-d0e45a28067e",
        "dc099dd2-992b-5e15-9906-cd2ebe704310",
        "ec638595-5802-5442-b8bb-85c67abcc732",
        "a07b97cc-69e4-5c35-bedf-11119542af72",
        "24cf3524-1623-5d19-99f8-2ebb87909cd4",
        "3e14b1d6-e8f1-5a15-b5f9-d69f821b67cb",
        "a4b8f54a-0851-5bfc-8e14-154a10f9912e",
        "aa7a9c52-8f67-50f6-a1eb-13a372078457",
        "220594e1-9d9d-53fc-be8d-24c63db12040",
        "798cd9c1-371f-505d-813f-5bb2db68c7fb",
        "bea8ff7f-d0d7-54f9-b23c-a27a9f2e8792"
      ],
      "planned_query_type": "lexical"
    }
  ],
  "ruler_version": 5
}