{
  "checker": {
    "claims": [
      {
        "claim": "MCP keyword search returns the note written through the vault",
        "command": "o2b mcp --vault <guest-path> tools/call {\"tool\": \"brain_search\", \"arguments\": {\"query\": \"hello from probe\"}}",
        "evidence": "hello from probe\\\\n- agent: claude-haiku-probe\\\\n- origin_channel: cli\\\\n## 04:03:36Z \u2014 note\\\\n- text: example note from probe\\\\n- agent: claude-haiku-probe\\\\n- origin_channel: cli\\\",\\n      \\\"endLine\\\": 17,\\n      \\\"path\\\": \\\"Brain/log/2026-10-24.b31d7023.md\\\",\\n      \\\"reasons\\\": [\\n        \\\"fts5_bm25: 1.000\\\",\\n        \\\"activation: 0.016\\\",\\n        \\\"recency: 0.050\\\"\\n      ],\\n      \\\"score\\\": 0.6659976269378894,\\n      \\\"searchType\\\": \\\"keyword\\\",\\n      \\\"startLine\\\": 7,\\n      \\\"title\\\": \\\"Brain log \u2014 2026-10-24\\\"\\n    }\\n  ],\\n  \\\"total\\\": 1,\\n  \\\"warnings\\\": []\\n}\"}], \"structuredCo",
        "expected": "the Brain log note containing hello from probe is returned",
        "input": "{\"tool\": \"brain_search\", \"arguments\": {\"query\": \"hello from probe\"}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: hello from probe",
        "source": "Keyword search with an optional semantic lane, result explanations, recall profiles and compact cards",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled Brain digest runs the dream/activity summary once per trigger",
        "command": "o2b brain digest --vault <guest-path> --silent-if-empty",
        "evidence": "# Brain digest \u2014 2026-10-24T04:03Z (24h)\n\nWindow: 2026-10-23T04:03:46.908Z \u2014 2026-10-24T04:03:46.908Z\n\n## Agent summary (1)\n\n- **claude-haiku-probe** 2 events (feedback: 0, apply: 0, note: 2)",
        "expected": "digest markdown printed to stdout",
        "input": "--vault <guest-path> --silent-if-empty",
        "kind": "cycle",
        "method": "run-once: the cron command run by hand, no fake clock",
        "outcome": "Triggered one cycle by hand (run-once: the cron command run by hand, no fake clock; normal trigger: 0 20 * * * (external Hermes cron; not run by the product itself)): # Brain digest \u2014 2026-10-24T04:03Z (24h)\n\nWindow: 2026-10-23T04:03:46.908Z \u2014 2026-10-24T04:03:46.908Z\n\n## Agent summary (1)\n\n- **claude-haiku-probe** 2 events (feedback: 0, apply: 0, note: 2)",
        "returncode": 0,
        "schedule": "0 20 * * * (external Hermes cron; not run by the product itself)",
        "source": "docs/hermes-cron.md",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "o2b",
        "mcp",
        "--vault",
        "<guest-path>"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "open-second-brain",
        "version": "1.93.0"
      },
      "tool_result": {
        "content": [
          {
            "text": "{\n  \"recall_hint\": \"Recalled 1 of 1 ranked candidates (1 keyword). Top hit \\\"Brain log \u2014 2026-10-24\\\" (keyword, score 0.66). See each result's reasons[] for why it surfaced.\",\n  \"results\": [\n    {\n      \"content\": \"# Brain log \u2014 2026-10-24\\n## 04:02:35Z \u2014 note\\n- text: hello from probe\\n- agent: claude-haiku-probe\\n- origin_channel: cli\",\n      \"endLine\": 12,\n      \"path\": \"Brain/log/2026-10-24.b31d7023.md\",\n      \"reasons\": [\n        \"fts5_bm25: 1.000\",\n        \"activation: 0.012\",\n        \"recency: 0.050\"\n      ],\n      \"score\": 0.6619889056342603,\n      \"searchType\": \"keyword\",\n      \"startLine\": 7,\n      \"title\": \"Brain log \u2014 2026-10-24\"\n    }\n  ],\n  \"total\": 1,\n  \"warnings\": []\n}",
            "type": "text"
          }
        ],
        "isError": false,
        "structuredContent": {
          "recall_hint": "Recalled 1 of 1 ranked candidates (1 keyword). Top hit \"Brain log \u2014 2026-10-24\" (keyword, score 0.66). See each result's reasons[] for why it surfaced.",
          "results": [
            {
              "content": "# Brain log \u2014 2026-10-24\n## 04:02:35Z \u2014 note\n- text: hello from probe\n- agent: claude-haiku-probe\n- origin_channel: cli",
              "endLine": 12,
              "path": "Brain/log/2026-10-24.b31d7023.md",
              "reasons": [
                "fts5_bm25: 1.000",
                "activation: 0.012",
                "recency: 0.050"
              ],
              "score": 0.6619889056342603,
              "searchType": "keyword",
              "startLine": 7,
              "title": "Brain log \u2014 2026-10-24"
            }
          ],
          "total": 1,
          "warnings": []
        }
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 162403,
      "tools": [
        "second_brain_capabilities",
        "second_brain_status",
        "second_brain_query",
        "brain_feedback",
        "brain_dream",
        "brain_apply_evidence",
        "brain_note",
        "brain_observed_use",
        "brain_expire",
        "brain_intent_review",
        "brain_retention",
        "brain_review_candidates",
        "brain_stale_scan",
        "brain_write_session",
        "brain_pinned_context",
        "brain_context",
        "brain_context_pack",
        "brain_context_receipts",
        "brain_event_trace",
        "brain_context_presets",
        "brain_pre_compress_pack",
        "brain_pre_compact_extract",
        "brain_anticipatory_context",
        "brain_query",
        "brain_agent_query",
        "brain_writes",
        "brain_write_destinations",
        "brain_agent_diff",
        "brain_backlinks",
        "brain_audit",
        "brain_sources",
        "brain_unlinked_mentions",
        "brain_entity",
        "brain_switch_vault",
        "brain_doctor",
        "brain_health",
        "brain_status",
        "brain_brief",
        "brain_analytics",
        "brain_claims",
        "brain_codegraph_report",
        "brain_foresight",
        "brain_bridges",
        "brain_clusters",
        "brain_moc_audit",
        "brain_deep_synthesis",
        "brain_diarize",
        "brain_idea_discovery",
        "brain_truth",
        "brain_dead_ends",
        "brain_labels",
        "brain_tiers",
        "brain_secrets",
        "brain_maintenance",
        "brain_benchmark",
        "brain_tune",
        "brain_recall_telemetry",
        "brain_route_metrics",
        "brain_retrieval_plan",
        "brain_token_impact",
        "brain_context_pack_outcome",
        "brain_knowledge_gaps",
        "brain_session_grep",
        "brain_session_describe",
        "brain_session_expand",
        "brain_intention",
        "brain_trigger",
        "brain_skill_proposals",
        "brain_procedural_memory",
        "brain_recurrence",
        "brain_procedural_graph",
        "brain_mcp_landscape",
        "brain_hygiene",
        "brain_intake_entities",
        "brain_ingest_source",
        "brain_search_by_source",
        "brain_delete_by_source",
        "brain_ingest_batch_plan",
        "brain_distill_source",
        "brain_extract_signals",
        "brain_design_note",
        "brain_research_report",
        "brain_derive_fact",
        "brain_create_note",
        "brain_update_note",
        "brain_append_note",
        "brain_write_batch",
        "brain_session_summary",
        "brain_session_checkpoint",
        "brain_idea_lineage",
        "brain_note_history",
        "brain_generation_reports",
        "brain_obligation",
        "brain_agenda",
        "brain_pledge",
        "brain_intake_pledges",
        "brain_memory_bridge",
        "brain_lifecycle",
        "brain_note_lifecycle",
        "brain_scaffold_stub",
        "brain_decision",
        "brain_tension",
        "brain_storage",
        "brain_receipts",
        "brain_recall_feedback",
        "brain_recall_gate",
        "brain_search",
        "brain_search_expand",
        "brain_eval",
        "brain_file_context",
        "vault_health",
        "brain_artifact_get",
        "schema_inspect",
        "schema_apply_mutations",
        "brain_watchdog",
        "list_skills",
        "get_skill",
        "skills_attach",
        "second_brain_wiring",
        "tool_hydrate"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Record a note from the CLI into the Brain log",
        "command": "o2b brain note 'example note from probe' --vault <guest-path>",
        "deferred": false,
        "evidence": "logged note at Brain/log/2026-10-24.b31d7023.md",
        "expected": "note logged to Brain/log",
        "input": "brain note text: example note from probe",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "install/prerequisites.md",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "Bun installer failed first with 'error: unzip is required to install bun'. Fixed by sudo -n apt-get update && sudo -n apt-get install -y unzip (the first apt-get install failed with 'Unable to locate package unzip' because the package index was empty), then re-ran the README's curl|sh Bun installer.",
    "scripts/o2b install-cli installed the links to <guest-path> because HOME is <guest-path> in this guest.",
    "The workspace is not a git checkout, so the pinned-commit git fetch step was not run; the source snapshot was used as supplied.",
    "Brain digest is cron-scheduled externally (Hermes cron in docs/hermes-cron.md). The product has no internal scheduler, so the cycle check runs the same command once by hand instead of waiting for 20:00 UTC."
  ],
  "fault_owner": null,
  "main_blocker": null,
  "operation": "Create a vault, write a note with the o2b CLI, then find it through the MCP brain_search tool over stdio",
  "operation_scope": "Linux Ubuntu 24.04, Python 3.12.3 present (not needed by the product), Bun 1.4.4 installed, local vault at <guest-path> Telemetry/consent prompts not reached: init and brain init ran non-interactively; no client config was written (no install --apply). Hermes cron scheduling is external and was not run as a daemon; the digest command was run once by hand.",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "curl -fsSL https://bun.sh/install | bash (README prerequisites; first attempt failed, see deviations)",
    "export PATH=\"$HOME/.bun/bin:$PATH\"; bun --version -> 1.4.4",
    "./scripts/o2b install-cli (README 'Get the o2b CLI')",
    "o2b version -> 1.93.0",
    "o2b init --vault <guest-path> --name \"My Second Brain\"",
    "o2b brain init --vault <guest-path>",
    "o2b init --vault <guest-path> --agent-name claude-haiku-probe",
    "o2b brain note \"hello from probe\" --vault <guest-path> -> logged note at Brain/log/2026-10-24.b31d7023.md",
    "o2b search index --vault <guest-path>",
    "o2b mcp --vault <guest-path> (stdio JSON-RPC: initialize, tools/call brain_search query 'hello from probe') -> returned the note",
    "o2b brain digest --vault <guest-path> --silent-if-empty -> '# Brain digest' markdown"
  ],
  "stuck_step": null,
  "suggested_fix": "None for the tested path. Optional: the install docs could list unzip as a Bun prerequisite on minimal Ubuntu images."
}
