{
  "checker": {
    "claims": [
      {
        "claim": "qmd exposes the wiki to an agent through a built-in MCP server",
        "command": "qmd mcp tools/call {\"tool\": \"get\", \"arguments\": {\"file\": \"qmd://my-wiki/log.md\"}}",
        "evidence": "Append-only timeline of all wiki operations\\\"\\n4: date_created: {{date}}\\n5: date_modified: {{date}}\\n6: explored: false\\n7: confidence: medium\\n8: ---\\n9: \\n10: # Wiki Log\\n11: \\n12: | Date | Operation | Pages Touched | Notes |\\n13: |------|-----------|---------------|-------|\\n14: \"}}]}",
        "expected": "the wiki log page text is returned",
        "input": "{\"tool\": \"get\", \"arguments\": {\"file\": \"qmd://my-wiki/log.md\"}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: Append-only timeline of all wiki operations",
        "source": "qmd has a built-in MCP server so your agent can use it as a native tool:",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "qmd search runs BM25 keyword search over the wiki",
        "command": "qmd search Append-only",
        "evidence": "Wiki Log\nScore:  61%\n\n@@ -2,4 @@ (1 before, 9 after)\ntitle: \"Wiki Log\"\ntldr: \"Append-only timeline of all wiki operations\"\ndate_created: {{date}}\ndate_modified: {{date}}\n",
        "expected": "the Wiki Log page is listed as a match",
        "input": "Append-only",
        "kind": "claim",
        "outcome": "Real input produced the expected result: Wiki Log",
        "returncode": 0,
        "source": "qmd search \"query\"        # BM25 keyword search (fast)",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "qmd vsearch runs vector semantic search over the wiki",
        "command": "qmd vsearch 'append-only timeline'",
        "evidence": "Append-only timeline of all wiki operations\"\ndate_created: {{date}}\ndate_modified: {{date}}\n\u251c\u2500 append-only timeline\n\u251c\u2500 vec: definition of append-only and its applications\n\u251c\u2500 vec: importance of append-only for data integrity\n\u2514\u2500 hyde: Understanding append-only timeline is essential for modern developmen...\nSearching 4 vector queries...\nQMD Warning: no GPU acceleration, running on CPU (slow). Run 'qmd doctor' for device diagnostics.\n",
        "expected": "the Wiki Log page is returned by vector search",
        "input": "append-only timeline",
        "kind": "claim",
        "outcome": "Real input produced the expected result: Append-only timeline of all wiki operations",
        "returncode": 0,
        "source": "qmd vsearch \"query\"       # vector semantic search",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected: README.md (no cron/loop/--once product command; 'Claude Dispatch' /schedule and cron are remote Claude Code scheduling, not a product command), scripts/update-hot-cache.sh (Stop hook run by Claude Code, which calls 'claude -p' in a background subshell and writes wiki/hot.md asynchronously; Claude Code is not installed and its output is not on stdout), and .claude/commands/*.md (manual slash commands). No runnable product cycle could be triggered and observed here, so no cycle check was recorded.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected: README.md (no cron/loop/--once product command; 'Claude Dispatch' /schedule and cron are remote Claude Code scheduling, not a product command), scripts/update-hot-cache.sh (Stop hook run by Claude Code, which calls 'claude -p' in a background subshell and writes wiki/hot.md asynchronously; Claude Code is not installed and its output is not on stdout), and .claude/commands/*.md (manual slash commands). No runnable product cycle could be triggered and observed here, so no cycle check was recorded.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "qmd",
        "mcp"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "qmd",
        "version": "2.8.3"
      },
      "tool_result": {
        "content": [
          {
            "resource": {
              "mimeType": "text/markdown",
              "text": "1: ---\n2: title: \"Wiki Log\"\n3: tldr: \"Append-only timeline of all wiki operations\"\n4: date_created: {{date}}\n5: date_modified: {{date}}\n6: explored: false\n7: confidence: medium\n8: ---\n9: \n10: # Wiki Log\n11: \n12: | Date | Operation | Pages Touched | Notes |\n13: |------|-----------|---------------|-------|\n14: ",
              "uri": "qmd://my-wiki/log.md"
            },
            "type": "resource"
          }
        ]
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 6510,
      "tools": [
        "query",
        "get",
        "multi_get",
        "status"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "hybrid query with LLM re-ranking returns wiki pages",
        "command": "qmd query 'append-only timeline'",
        "deferred": false,
        "evidence": "fore, 66 after)\n---\ntitle: \"Wiki Dashboard\"\ntldr: \"Dataview dashboard for browsing wiki stats and recent activity\"\nExpanding query... (0ms)\n\u251c\u2500 append-only timeline\n\u251c\u2500 lex: definition of append-only\n\u251c\u2500 lex: importance of append-only\n\u251c\u2500 vec: definition of append-only and its applications\n\u251c\u2500 vec: importance of append-only for data integrity\n\u2514\u2500 hyde: Understanding append-only timeline is essential for modern developmen...\nSearching 6 queries...\nEmbedding 4 queries...QMD Warning: no GPU acceleration, running on CPU (slow). Run 'qmd doctor' for device diagnostics.\n (8.1s)\nReranking 5 chunks... (2ms)",
        "expected": "wiki pages are listed, including the Wiki Dashboard",
        "input": "append-only timeline",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md ## Search (qmd)",
        "verdict": "yes"
      },
      {
        "claim": "/wiki-ingest, /wiki-query, /wiki-lint and other slash commands run inside Claude Code",
        "command": "",
        "deferred": false,
        "evidence": "Missing prerequisite: the commands are Claude Code slash commands that need an interactive Claude Code agent with LLM credentials. Claude Code is not installed in this guest and no API credentials were supplied, so these were not run. Inspected .claude/commands/*.md instead.",
        "expected": "documented command completes successfully",
        "input": "",
        "kind": "example",
        "outcome": "Missing prerequisite: the commands are Claude Code slash commands that need an interactive Claude Code agent with LLM credentials. Claude Code is not installed in this guest and no API credentials were supplied, so these were not run. Inspected .claude/commands/*.md instead.",
        "source": "README.md ## Commands",
        "verdict": "blocked"
      },
      {
        "claim": "optional Obsidian and X API ingest tools",
        "command": "",
        "deferred": false,
        "evidence": "Missing prerequisites: yt-dlp, scrapling, summarize and X API OAuth keys are not installed or configured here; the ingest pipeline that uses them runs only inside the agent, so they were not run.",
        "expected": "documented command completes successfully",
        "input": "",
        "kind": "example",
        "outcome": "Missing prerequisites: yt-dlp, scrapling, summarize and X API OAuth keys are not installed or configured here; the ingest pipeline that uses them runs only inside the agent, so they were not run.",
        "source": "README.md ## Optional Tools",
        "verdict": "blocked"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "Ubuntu apt nodejs is 18.19.1, below qmd's required node >=22; installed Node 22.23.4 from the official nodejs.org tarball (checksum verified) instead, a substitute for the README's bare 'npm install -g'.",
    "npm global prefix set to a user-local directory ($HOME/.local/npm) instead of the system prefix; the README command itself is unchanged.",
    "qmd embed ran on CPU (no GPU), so it was slow but completed.",
    "Claude Code slash commands and the Stop-hook script (scripts/update-hot-cache.sh, which calls 'claude -p') were not run: Claude Code is not installed and no LLM credentials were supplied. Recorded as blocked examples, not as failures of the repo.",
    "Optional tools yt-dlp, scrapling, summarize and X API keys were not installed/configured; not exercised.",
    "No cycle check recorded: no runnable product cycle exists outside Claude Code; the only trigger is the Claude Code Stop hook."
  ],
  "fault_owner": null,
  "main_blocker": null,
  "operation": "Index the wiki/ folder with qmd and search it (keyword, vector, and hybrid), and read a page back over qmd's MCP server",
  "operation_scope": "Local qmd search layer only (qmd 2.8.3, Node 22, CPU embeddings with embeddinggemma). The README's agent workflows (/wiki-ingest, /wiki-query, /wiki-lint, /autoresearch, /save, /wiki-explore) were NOT run: they are Claude Code slash commands that need an interactive Claude Code agent and LLM credentials, neither available in this guest.",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "git init; git remote add origin https://github.com/shannhk/llm-wikid; git fetch --depth 1 origin c01485f096d0b62644fdf165d5221c20f2b615f7; git reset --mixed FETCH_HEAD (tree verified clean at the pin)",
    "sudo apt-get update; apt-cache policy nodejs (Ubuntu offers Node 18 only; qmd needs >=22)",
    "curl https://nodejs.org/dist/latest-v22.x/node-v22.23.4-linux-x64.tar.xz, sha256 verified, extracted to /opt/node22",
    "npm install -g @tobilu/qmd (run with PATH=/opt/node22/bin and NPM_CONFIG_PREFIX=$HOME/.local/npm) -> added 159 packages, qmd 2.8.3",
    "qmd collection add wiki --name my-wiki -> Indexed: 5 new",
    "qmd embed -> Embedded 5 chunks from 5 documents",
    "qmd search \"Append-only\" / qmd vsearch \"append-only timeline\" / qmd query \"append-only timeline\" -> returned Wiki Log / Wiki Dashboard pages",
    "qmd mcp (stdio) -> tools/list shows query, get, multi_get, status; tools/call get on qmd://my-wiki/log.md returned the Wiki Log page"
  ],
  "stuck_step": null,
  "suggested_fix": "Document that qmd needs Node 22 or newer (Ubuntu 24.04 apt ships Node 18), and state clearly in the README which parts need a Claude Code agent and API credentials."
}
