{
  "schema": 2,
  "note": "Editorial discovery probes, not search-volume or effectiveness claims. Metrics measure whether the intended Vedokrok landing page is retrieved.",
  "evaluated_at": "2026-09-28T18:04:04.248Z",
  "release_id": "MHC-RPUB-20260920-75ad787a",
  "snapshot_sha256": "0dcab00d2ba6a904a5ba3f8375df3a7b9871c3eb044ef23d6cbd25bc02b5efe1",
  "input_sha256": {
    "config/discovery-benchmark.json": "edfa93f5ea004f11c7016437e722021ec155933dbbd3cdde4712c43811ea0c55",
    "lib/catalog.mjs": "ac50f2b9429332c31d8f624a794a269e316b76b85658d93b1542daf1f9015684",
    "lib/search-catalog.mjs": "94d0edb39eeb993fab000ae9b5daad23944ea7ccda36423e5c062864e4fe7735",
    "lib/search-engine.mjs": "8a8ba1431e1fa43d491b6872160d508e08e846234ff2f17992c080b7bc17e05c",
    "scripts/search-relevance.mjs": "33116b2c8df3409a9eb4fbd2c5d81bf642948989af37662f80a6eb60bc356463"
  },
  "default": {
    "probes": 37,
    "recall_at_5": 1,
    "recall_at_10": 1,
    "mrr_at_10": 0.9099,
    "zero_result_rate": 0,
    "fallback_rate": 0.4054,
    "misses_at_5": [],
    "misses_at_10": [],
    "negative_control_no_result_rate": 1,
    "negative_false_positives": [],
    "cases": [
      {
        "id": "verify-ai-answer",
        "query": "how to verify an AI answer before using it",
        "target": "/read/how-to-verify-an-ai-answer-before-you-use-it",
        "rank": 1,
        "result_count": 188,
        "mode": "fallback"
      },
      {
        "id": "check-ai-answer",
        "query": "how to check an AI answer before acting on it",
        "target": "/read/how-to-verify-an-ai-answer-before-you-use-it",
        "rank": 1,
        "result_count": 3,
        "mode": "match"
      },
      {
        "id": "project-uncertain-dependencies",
        "query": "how to estimate a project with uncertain dependencies",
        "target": "/read/how-to-estimate-a-project-with-uncertain-dependencies",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "effort-vs-duration",
        "query": "project estimate effort vs elapsed time",
        "target": "/read/how-to-estimate-a-project-with-uncertain-dependencies",
        "rank": 2,
        "result_count": 43,
        "mode": "fallback"
      },
      {
        "id": "difficult-feedback",
        "query": "how to prepare for a difficult feedback conversation",
        "target": "/read/how-to-prepare-for-a-difficult-feedback-conversation",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "observable-feedback",
        "query": "how to give feedback about behavior without attacking the person",
        "target": "/read/how-to-prepare-for-a-difficult-feedback-conversation",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "intermittent-failure",
        "query": "how to debug an intermittent failure",
        "target": "/read/how-to-debug-an-intermittent-failure",
        "rank": 1,
        "result_count": 2,
        "mode": "match"
      },
      {
        "id": "flaky-bug",
        "query": "how to investigate a bug that only happens sometimes",
        "target": "/read/how-to-debug-an-intermittent-failure",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "device-upgrade",
        "query": "how to decide if a device upgrade is worth it",
        "target": "/read/how-to-decide-whether-a-device-upgrade-is-worth-it",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "computer-upgrade",
        "query": "should I upgrade my computer or keep it",
        "target": "/read/how-to-decide-whether-a-device-upgrade-is-worth-it",
        "rank": 2,
        "result_count": 60,
        "mode": "fallback"
      },
      {
        "id": "professional-assessment",
        "query": "how to prepare for a professional assessment",
        "target": "/read/how-to-prepare-for-a-professional-assessment",
        "rank": 1,
        "result_count": 3,
        "mode": "match"
      },
      {
        "id": "technical-assessment",
        "query": "how to prepare for a technical assessment efficiently",
        "target": "/read/how-to-prepare-for-a-professional-assessment",
        "rank": 1,
        "result_count": 1,
        "mode": "fallback"
      },
      {
        "id": "recover-focus",
        "query": "how to recover focus after an interruption",
        "target": "/read/how-to-recover-focus-after-an-interruption",
        "rank": 1,
        "result_count": 2,
        "mode": "match"
      },
      {
        "id": "resume-work",
        "query": "how to resume deep work after being interrupted",
        "target": "/read/how-to-recover-focus-after-an-interruption",
        "rank": 1,
        "result_count": 141,
        "mode": "fallback"
      },
      {
        "id": "overloaded-decision",
        "query": "how to make a decision when you are overloaded",
        "target": "/read/how-to-make-a-decision-when-you-are-overloaded",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "decision-uncertainty",
        "query": "decision making under uncertainty",
        "target": "/topics/decision-making",
        "rank": 2,
        "result_count": 91,
        "mode": "fallback"
      },
      {
        "id": "critical-evidence",
        "query": "critical thinking evidence and assumptions",
        "target": "/topics/critical-thinking",
        "rank": 1,
        "result_count": 2,
        "mode": "match"
      },
      {
        "id": "ai-verification-topic",
        "query": "AI work verification and safeguards",
        "target": "/topics/ai-work",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "delivery-topic",
        "query": "project delivery estimation and change control",
        "target": "/topics/project-delivery",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "debugging-topic",
        "query": "debugging and incident investigation methods",
        "target": "/topics/debugging-and-incidents",
        "rank": 1,
        "result_count": 8,
        "mode": "fallback"
      },
      {
        "id": "knowledge-topic",
        "query": "knowledge management research and refinding",
        "target": "/topics/knowledge-management",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "systems-topic",
        "query": "systems thinking and structured problem solving",
        "target": "/topics/systems-thinking",
        "rank": 1,
        "result_count": 136,
        "mode": "fallback"
      },
      {
        "id": "negotiation-topic",
        "query": "negotiation conflict and difficult conversations",
        "target": "/topics/negotiation-and-conflict",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "career-topic",
        "query": "career assessment preparation and transferable skills",
        "target": "/topics/career-and-assessment",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "learning-topic",
        "query": "learning and skill building methods",
        "target": "/topics/learning-and-skill-building",
        "rank": 1,
        "result_count": 2,
        "mode": "match"
      },
      {
        "id": "worked-estimate-approval-delay",
        "query": "how to estimate a small change when approval time is unknown",
        "target": "/read/worked-case-estimating-a-change-with-unknown-approval-time",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "effort-vs-approval-delay",
        "query": "separate engineering effort from approval and delivery time",
        "target": "/read/worked-case-estimating-a-change-with-unknown-approval-time",
        "rank": 1,
        "result_count": 58,
        "mode": "fallback"
      },
      {
        "id": "verify-ai-package",
        "query": "how to verify a package recommended by AI before installing it",
        "target": "/read/worked-case-checking-an-ai-package-recommendation-before-use",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "ai-package-hallucination",
        "query": "check whether an AI recommended software package really exists",
        "target": "/read/worked-case-checking-an-ai-package-recommendation-before-use",
        "rank": 1,
        "result_count": 19,
        "mode": "fallback"
      },
      {
        "id": "interrupted-task-checkpoint",
        "query": "how to resume an interrupted task without reconstructing everything",
        "target": "/read/worked-case-recovering-an-interrupted-task-without-restarting",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "return-to-work-after-meeting",
        "query": "how to return to complex work quickly after a meeting interruption",
        "target": "/read/worked-case-recovering-an-interrupted-task-without-restarting",
        "rank": 1,
        "result_count": 28,
        "mode": "fallback"
      },
      {
        "id": "ai-output-fact-check",
        "query": "AI output fact check before relying on it",
        "target": "/read/how-to-verify-an-ai-answer-before-you-use-it",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "flaky-test-rerun",
        "query": "a flaky test passes and fails on rerun",
        "target": "/read/how-to-debug-an-intermittent-failure",
        "rank": 3,
        "result_count": 3,
        "mode": "fallback"
      },
      {
        "id": "colleague-handoff-feedback",
        "query": "talk to a colleague about missed handoffs without calling them careless",
        "target": "/read/how-to-prepare-for-a-difficult-feedback-conversation",
        "rank": 2,
        "result_count": 20,
        "mode": "fallback"
      },
      {
        "id": "teammate-handoff-without-blame",
        "query": "discuss a teammate missed handoff without blame",
        "target": "/read/how-to-prepare-for-a-difficult-feedback-conversation",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "slow-old-laptop",
        "query": "old laptop is slow should I buy a new one",
        "target": "/read/how-to-decide-whether-a-device-upgrade-is-worth-it",
        "rank": 3,
        "result_count": 21,
        "mode": "fallback"
      },
      {
        "id": "analysis-after-meeting",
        "query": "resume analysis after a long meeting without losing context",
        "target": "/read/worked-case-recovering-an-interrupted-task-without-restarting",
        "rank": 1,
        "result_count": 49,
        "mode": "fallback"
      }
    ],
    "negative_controls": [
      {
        "id": "live-local-restaurant",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "live-weather",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "live-exchange-rate",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "live-sports-score",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "medical-emergency",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "vehicle-repair",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "nutrition-fact",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "travel-booking",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "live-stock-price",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "broken-ankle-treatment",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "hotel-booking",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "laptop-battery-repair",
        "result_count": 0,
        "mode": "none"
      }
    ]
  },
  "explicit_broader": {
    "probes": 37,
    "recall_at_5": 1,
    "recall_at_10": 1,
    "mrr_at_10": 0.8964,
    "zero_result_rate": 0,
    "fallback_rate": 0,
    "misses_at_5": [],
    "misses_at_10": [],
    "negative_control_no_result_rate": 1,
    "negative_false_positives": [],
    "cases": [
      {
        "id": "verify-ai-answer",
        "query": "how to verify an AI answer before using it",
        "target": "/read/how-to-verify-an-ai-answer-before-you-use-it",
        "rank": 1,
        "result_count": 188,
        "mode": "broader"
      },
      {
        "id": "check-ai-answer",
        "query": "how to check an AI answer before acting on it",
        "target": "/read/how-to-verify-an-ai-answer-before-you-use-it",
        "rank": 1,
        "result_count": 370,
        "mode": "broader"
      },
      {
        "id": "project-uncertain-dependencies",
        "query": "how to estimate a project with uncertain dependencies",
        "target": "/read/how-to-estimate-a-project-with-uncertain-dependencies",
        "rank": 1,
        "result_count": 32,
        "mode": "broader"
      },
      {
        "id": "effort-vs-duration",
        "query": "project estimate effort vs elapsed time",
        "target": "/read/how-to-estimate-a-project-with-uncertain-dependencies",
        "rank": 2,
        "result_count": 43,
        "mode": "broader"
      },
      {
        "id": "difficult-feedback",
        "query": "how to prepare for a difficult feedback conversation",
        "target": "/read/how-to-prepare-for-a-difficult-feedback-conversation",
        "rank": 1,
        "result_count": 30,
        "mode": "broader"
      },
      {
        "id": "observable-feedback",
        "query": "how to give feedback about behavior without attacking the person",
        "target": "/read/how-to-prepare-for-a-difficult-feedback-conversation",
        "rank": 2,
        "result_count": 50,
        "mode": "broader"
      },
      {
        "id": "intermittent-failure",
        "query": "how to debug an intermittent failure",
        "target": "/read/how-to-debug-an-intermittent-failure",
        "rank": 1,
        "result_count": 2,
        "mode": "match"
      },
      {
        "id": "flaky-bug",
        "query": "how to investigate a bug that only happens sometimes",
        "target": "/read/how-to-debug-an-intermittent-failure",
        "rank": 1,
        "result_count": 30,
        "mode": "broader"
      },
      {
        "id": "device-upgrade",
        "query": "how to decide if a device upgrade is worth it",
        "target": "/read/how-to-decide-whether-a-device-upgrade-is-worth-it",
        "rank": 1,
        "result_count": 20,
        "mode": "broader"
      },
      {
        "id": "computer-upgrade",
        "query": "should I upgrade my computer or keep it",
        "target": "/read/how-to-decide-whether-a-device-upgrade-is-worth-it",
        "rank": 2,
        "result_count": 60,
        "mode": "broader"
      },
      {
        "id": "professional-assessment",
        "query": "how to prepare for a professional assessment",
        "target": "/read/how-to-prepare-for-a-professional-assessment",
        "rank": 1,
        "result_count": 3,
        "mode": "match"
      },
      {
        "id": "technical-assessment",
        "query": "how to prepare for a technical assessment efficiently",
        "target": "/read/how-to-prepare-for-a-professional-assessment",
        "rank": 1,
        "result_count": 1,
        "mode": "broader"
      },
      {
        "id": "recover-focus",
        "query": "how to recover focus after an interruption",
        "target": "/read/how-to-recover-focus-after-an-interruption",
        "rank": 1,
        "result_count": 40,
        "mode": "broader"
      },
      {
        "id": "resume-work",
        "query": "how to resume deep work after being interrupted",
        "target": "/read/how-to-recover-focus-after-an-interruption",
        "rank": 1,
        "result_count": 141,
        "mode": "broader"
      },
      {
        "id": "overloaded-decision",
        "query": "how to make a decision when you are overloaded",
        "target": "/read/how-to-make-a-decision-when-you-are-overloaded",
        "rank": 1,
        "result_count": 1,
        "mode": "match"
      },
      {
        "id": "decision-uncertainty",
        "query": "decision making under uncertainty",
        "target": "/topics/decision-making",
        "rank": 2,
        "result_count": 91,
        "mode": "broader"
      },
      {
        "id": "critical-evidence",
        "query": "critical thinking evidence and assumptions",
        "target": "/topics/critical-thinking",
        "rank": 1,
        "result_count": 51,
        "mode": "broader"
      },
      {
        "id": "ai-verification-topic",
        "query": "AI work verification and safeguards",
        "target": "/topics/ai-work",
        "rank": 1,
        "result_count": 138,
        "mode": "broader"
      },
      {
        "id": "delivery-topic",
        "query": "project delivery estimation and change control",
        "target": "/topics/project-delivery",
        "rank": 1,
        "result_count": 59,
        "mode": "broader"
      },
      {
        "id": "debugging-topic",
        "query": "debugging and incident investigation methods",
        "target": "/topics/debugging-and-incidents",
        "rank": 1,
        "result_count": 8,
        "mode": "broader"
      },
      {
        "id": "knowledge-topic",
        "query": "knowledge management research and refinding",
        "target": "/topics/knowledge-management",
        "rank": 1,
        "result_count": 23,
        "mode": "broader"
      },
      {
        "id": "systems-topic",
        "query": "systems thinking and structured problem solving",
        "target": "/topics/systems-thinking",
        "rank": 1,
        "result_count": 136,
        "mode": "broader"
      },
      {
        "id": "negotiation-topic",
        "query": "negotiation conflict and difficult conversations",
        "target": "/topics/negotiation-and-conflict",
        "rank": 1,
        "result_count": 21,
        "mode": "broader"
      },
      {
        "id": "career-topic",
        "query": "career assessment preparation and transferable skills",
        "target": "/topics/career-and-assessment",
        "rank": 1,
        "result_count": 91,
        "mode": "broader"
      },
      {
        "id": "learning-topic",
        "query": "learning and skill building methods",
        "target": "/topics/learning-and-skill-building",
        "rank": 1,
        "result_count": 109,
        "mode": "broader"
      },
      {
        "id": "worked-estimate-approval-delay",
        "query": "how to estimate a small change when approval time is unknown",
        "target": "/read/worked-case-estimating-a-change-with-unknown-approval-time",
        "rank": 1,
        "result_count": 115,
        "mode": "broader"
      },
      {
        "id": "effort-vs-approval-delay",
        "query": "separate engineering effort from approval and delivery time",
        "target": "/read/worked-case-estimating-a-change-with-unknown-approval-time",
        "rank": 1,
        "result_count": 58,
        "mode": "broader"
      },
      {
        "id": "verify-ai-package",
        "query": "how to verify a package recommended by AI before installing it",
        "target": "/read/worked-case-checking-an-ai-package-recommendation-before-use",
        "rank": 1,
        "result_count": 131,
        "mode": "broader"
      },
      {
        "id": "ai-package-hallucination",
        "query": "check whether an AI recommended software package really exists",
        "target": "/read/worked-case-checking-an-ai-package-recommendation-before-use",
        "rank": 1,
        "result_count": 19,
        "mode": "broader"
      },
      {
        "id": "interrupted-task-checkpoint",
        "query": "how to resume an interrupted task without reconstructing everything",
        "target": "/read/worked-case-recovering-an-interrupted-task-without-restarting",
        "rank": 1,
        "result_count": 134,
        "mode": "broader"
      },
      {
        "id": "return-to-work-after-meeting",
        "query": "how to return to complex work quickly after a meeting interruption",
        "target": "/read/worked-case-recovering-an-interrupted-task-without-restarting",
        "rank": 1,
        "result_count": 28,
        "mode": "broader"
      },
      {
        "id": "ai-output-fact-check",
        "query": "AI output fact check before relying on it",
        "target": "/read/how-to-verify-an-ai-answer-before-you-use-it",
        "rank": 1,
        "result_count": 230,
        "mode": "broader"
      },
      {
        "id": "flaky-test-rerun",
        "query": "a flaky test passes and fails on rerun",
        "target": "/read/how-to-debug-an-intermittent-failure",
        "rank": 3,
        "result_count": 3,
        "mode": "broader"
      },
      {
        "id": "colleague-handoff-feedback",
        "query": "talk to a colleague about missed handoffs without calling them careless",
        "target": "/read/how-to-prepare-for-a-difficult-feedback-conversation",
        "rank": 2,
        "result_count": 20,
        "mode": "broader"
      },
      {
        "id": "teammate-handoff-without-blame",
        "query": "discuss a teammate missed handoff without blame",
        "target": "/read/how-to-prepare-for-a-difficult-feedback-conversation",
        "rank": 1,
        "result_count": 55,
        "mode": "broader"
      },
      {
        "id": "slow-old-laptop",
        "query": "old laptop is slow should I buy a new one",
        "target": "/read/how-to-decide-whether-a-device-upgrade-is-worth-it",
        "rank": 3,
        "result_count": 21,
        "mode": "broader"
      },
      {
        "id": "analysis-after-meeting",
        "query": "resume analysis after a long meeting without losing context",
        "target": "/read/worked-case-recovering-an-interrupted-task-without-restarting",
        "rank": 1,
        "result_count": 49,
        "mode": "broader"
      }
    ],
    "negative_controls": [
      {
        "id": "live-local-restaurant",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "live-weather",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "live-exchange-rate",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "live-sports-score",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "medical-emergency",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "vehicle-repair",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "nutrition-fact",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "travel-booking",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "live-stock-price",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "broken-ankle-treatment",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "hotel-booking",
        "result_count": 0,
        "mode": "none"
      },
      {
        "id": "laptop-battery-repair",
        "result_count": 0,
        "mode": "none"
      }
    ]
  }
}
