{
  "checker": {
    "claims": [
      {
        "claim": "OpenWiki exposes its local database to connected AI apps through a read-only MCP server",
        "command": "<guest-path> --mcp tools/call {\"tool\": \"list_tables\", \"arguments\": {}}",
        "evidence": "captured_content\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"chat_messages\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"report_sections\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"sqlite_sequence\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"user_feedback\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"user_preferences\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"weekly_reports\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"wiki_chat_messages\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"wiki_chat_sessions\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"wiki_compile_log\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"wiki_conversations\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"wiki_edges\\\"\\n  },\\n  {\\n    \\\"name\\\": \\\"wiki_lint_results\\\"\\n  },\\n  {\\n    \\\"name\\\": ",
        "expected": "tables list includes captured_content",
        "input": "{\"tool\": \"list_tables\", \"arguments\": {}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: captured_content",
        "source": "MCP protocol integration \u2014 connect to Claude Desktop",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "All data is stored in a local SQLite database",
        "command": "<guest-path> --mcp tools/call {\"tool\": \"describe_table\", \"arguments\": {\"table_name\": \"captured_content\"}}",
        "evidence": "source_bundle_id\\\",\\n    \\\"notnull\\\": 0,\\n    \\\"pk\\\": 0,\\n    \\\"type\\\": \\\"TEXT\\\"\\n  },\\n  {\\n    \\\"cid\\\": 7,\\n    \\\"dflt_value\\\": null,\\n    \\\"name\\\": \\\"source_url\\\",\\n    \\\"notnull\\\": 0,\\n    \\\"pk\\\": 0,\\n    \\\"type\\\": \\\"TEXT\\\"\\n  },\\n  {\\n    \\\"cid\\\": 8,\\n    \\\"dflt_value\\\": null,\\n    \\\"name\\\": \\\"captured_at\\\",\\n    \\\"notnull\\\": 1,\\n    \\\"pk\\\": 0,\\n    \\\"type\\\": \\\"TEXT\\\"\\n  },\\n  {\\n    \\\"cid\\\": 9,\\n    \\\"dflt_value\\\": null,\\n    \\\"name\\\": \\\"content_hash\\\",\\n    \\\"notnull\\\": 1,\\n    \\\"pk\\\": 0,\\n    \\\"type\\\": \\\"TEXT\\\"\\n  },\\n  {\\n    \\\"cid\\\": 10,\\n    \\\"dflt_value\\\": \\\"0\\\",\\n    \\\"name\\\": \\\"b",
        "expected": "captured_content columns include source_bundle_id",
        "input": "{\"tool\": \"describe_table\", \"arguments\": {\"table_name\": \"captured_content\"}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: source_bundle_id",
        "source": "Privacy first \u2014 all data stored in local SQLite database.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Background insight scheduler re-checks and auto-generates the attention report every 6 hours",
        "command": "",
        "evidence": "Trigger requires a configured AI provider (API key, OAuth, or local model) and a live LLM call; none is available in this guest. The 6-hour loop cannot be triggered by hand, and no CLI entry point runs should_auto_trigger. Only the pure decision function is covered by the repo's offline unit tests, which do not count as a cycle.",
        "expected": "",
        "input": "",
        "kind": "cycle",
        "method": "",
        "outcome": "Trigger requires a configured AI provider (API key, OAuth, or local model) and a live LLM call; none is available in this guest. The 6-hour loop cannot be triggered by hand, and no CLI entry point runs should_auto_trigger. Only the pure decision function is covered by the repo's offline unit tests, which do not count as a cycle.",
        "schedule": "every 6 hours (CHECK_INTERVAL_SECS) after a 90 s startup delay",
        "source": "src-tauri/src/scheduler/weekly.rs",
        "verdict": "blocked"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "--mcp"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "openwiki",
        "version": "0.3.28"
      },
      "tool_result": {
        "content": [
          {
            "text": "[\n  {\n    \"name\": \"app_settings\"\n  },\n  {\n    \"name\": \"attention_insights\"\n  },\n  {\n    \"name\": \"captured_content\"\n  },\n  {\n    \"name\": \"chat_messages\"\n  },\n  {\n    \"name\": \"report_sections\"\n  },\n  {\n    \"name\": \"sqlite_sequence\"\n  },\n  {\n    \"name\": \"user_feedback\"\n  },\n  {\n    \"name\": \"user_preferences\"\n  },\n  {\n    \"name\": \"weekly_reports\"\n  },\n  {\n    \"name\": \"wiki_chat_messages\"\n  },\n  {\n    \"name\": \"wiki_chat_sessions\"\n  },\n  {\n    \"name\": \"wiki_compile_log\"\n  },\n  {\n    \"name\": \"wiki_conversations\"\n  },\n  {\n    \"name\": \"wiki_edges\"\n  },\n  {\n    \"name\": \"wiki_lint_results\"\n  },\n  {\n    \"name\": \"wiki_page_sources\"\n  },\n  {\n    \"name\": \"wiki_pages\"\n  },\n  {\n    \"name\": \"wiki_pages_fts\"\n  },\n  {\n    \"name\": \"wiki_pages_fts_config\"\n  },\n  {\n    \"name\": \"wiki_pages_fts_content\"\n  },\n  {\n    \"name\": \"wiki_pages_fts_data\"\n  },\n  {\n    \"name\": \"wiki_pages_fts_docsize\"\n  },\n  {\n    \"name\": \"wiki_pages_fts_idx\"\n  }\n]",
            "type": "text"
          }
        ]
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 669,
      "tools": [
        "read_query",
        "list_tables",
        "describe_table"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Build the bundled MarkItDown document converter before release bundles",
        "command": "",
        "deferred": false,
        "evidence": "Ran ./src-tauri/scripts/setup_markitdown.sh successfully; its built-in smoke test is setup, not a finite user example. The README documents no other runnable example, and no test command is documented in the README.",
        "expected": "documented command completes successfully",
        "input": "",
        "kind": "example",
        "outcome": "Ran ./src-tauri/scripts/setup_markitdown.sh successfully; its built-in smoke test is setup, not a finite user example. The README documents no other runnable example, and no test command is documented in the README.",
        "source": "README.md Getting Started (Before creating release bundles, prepare the bundled document converter)",
        "verdict": "blocked"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "README lists macOS and Windows only; ran on Linux. Installed Node 18.19.1 and npm 9.2.0 from Ubuntu apt (meets Node 18+), and Rust via rustup, plus Tauri Linux system packages via sudo apt-get.",
    "npm run tauri build finished the deb, rpm and AppImage bundles, but the AppImage step was slow (GitHub downloads of linuxdeploy plugins took several minutes); it completed.",
    "No display in the guest: GUI launched under xvfb-run (Xvfb installed via apt). dbus-launch warnings from the tray library were harmless.",
    "The MCP probe argv (openwiki --mcp) is not in the README. It was taken from src-tauri/src/mcp_server.rs and src-tauri/src/commands/mcp.rs, which writes that same command into AI-app configs when the user connects in Settings. The README only mentions 'MCP protocol integration'.",
    "Cycle check: the insight scheduler (src-tauri/src/scheduler/weekly.rs) runs every 6 hours and needs an AI provider (API key or OAuth), which is not available here, so it was recorded as untestable, not triggered.",
    "No documented runnable examples or test commands beyond the setup script; recorded as a reason entry in examples.json.",
    "Telemetry/consent: no prompt was encountered during the GUI first run; no option was chosen."
  ],
  "fault_owner": null,
  "main_blocker": null,
  "operation": "Build OpenWiki with the README's npm/Tauri commands, launch the built app, and read the local knowledge-base database through its read-only MCP server (OpenWiki --mcp) using a real tool call (list_tables returned captured_content).",
  "operation_scope": "Linux Ubuntu 24.04 guest (README targets macOS/Windows). Covers build, GUI start under a virtual display, and the stdio MCP server. Not covered: the macOS/Windows installers, the Ask/wiki features that need an AI provider, and the 6-hour background insight scheduler, which needs a configured AI provider and was not triggered.",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "git init; git remote add origin https://github.com/kdsz001/OpenWiki; git fetch --depth 1 origin e182d9bf490c839c97f8627b4afd482689611429; git reset --mixed FETCH_HEAD",
    "sudo apt-get install nodejs npm (plus Tauri Linux packages: build-essential, libwebkit2gtk-4.1-dev, libayatana-appindicator3-dev, librsvg2-dev, libgtk-3-dev, patchelf, python3-venv)",
    "curl https://sh.rustup.rs | sh -s -- -y --profile minimal (Rust stable 1.99.1)",
    "npm install",
    "./src-tauri/scripts/setup_markitdown.sh",
    "npm run tauri build",
    "xvfb-run -a ./src-tauri/target/release/openwiki (GUI started, created ~/.local/share/com.openwiki.app/openwiki.db, stopped by timeout)",
    "./src-tauri/target/release/openwiki --mcp (JSON-RPC initialize + tools/call list_tables and describe_table over stdio)"
  ],
  "stuck_step": null,
  "suggested_fix": "None required for the product. For clearer docs: list Linux as a build-only platform, document the --mcp entry point in the README, and state that the scheduler requires an AI provider."
}
