{
  "ok": true,
  "schema": "lvl-recommendations-v1",
  "skill": {
    "id": "gf-q-oracle-sealed-pack",
    "name": "Oracle Sealed Pack QC",
    "category": "Oracle",
    "price_usd": 5.99,
    "related_skills": [],
    "requires": [],
    "complements": []
  },
  "recommendations": [
    {
      "skill_id": "gf-q-oracle-error-map",
      "name": "Oracle Error Map for Agents",
      "price_usd": 4.49,
      "category": "Oracle",
      "score": 11,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-oracle-error-map",
      "outline": "https://lvlltd.com/skills/gf-q-oracle-error-map/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-oracle-canary-skill",
      "name": "Oracle Canary Skill Picker",
      "price_usd": 3.79,
      "category": "Oracle",
      "score": 10.2,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-oracle-canary-skill",
      "outline": "https://lvlltd.com/skills/gf-q-oracle-canary-skill/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-oracle-timeout",
      "name": "Oracle Timeout Policy Card",
      "price_usd": 2.59,
      "category": "Oracle",
      "score": 9.4,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-oracle-timeout",
      "outline": "https://lvlltd.com/skills/gf-q-oracle-timeout/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-sealed-result-schema",
      "name": "Sealed Oracle Result Schema",
      "price_usd": 1.99,
      "category": "Oracle",
      "score": 9.4,
      "reasons": [
        "same_category",
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-sealed-result-schema",
      "outline": "https://lvlltd.com/skills/gf-q-sealed-result-schema/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-market-sizing-lite",
      "name": "Market Sizing Lite for SKUs",
      "price_usd": 5.49,
      "category": "Research",
      "score": 6.4,
      "reasons": [
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-market-sizing-lite",
      "outline": "https://lvlltd.com/skills/gf-q-market-sizing-lite/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-comms-calendar",
      "name": "Launch Comms Calendar Lite",
      "price_usd": 4.49,
      "category": "Launch",
      "score": 6.4,
      "reasons": [
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-comms-calendar",
      "outline": "https://lvlltd.com/skills/gf-q-comms-calendar/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-fee-disclosure",
      "name": "Fee Disclosure Builder",
      "price_usd": 3.99,
      "category": "Finance",
      "score": 6.4,
      "reasons": [
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-fee-disclosure",
      "outline": "https://lvlltd.com/skills/gf-q-fee-disclosure/outline.json",
      "requires": false,
      "complements": false
    },
    {
      "skill_id": "gf-q-synthetic-eval",
      "name": "Synthetic Eval for Skills",
      "price_usd": 5.49,
      "category": "Agent Ops",
      "score": 6.4,
      "reasons": [
        "tag_overlap"
      ],
      "challenge": "https://lvlltd.com/api/pay?skill=gf-q-synthetic-eval",
      "outline": "https://lvlltd.com/skills/gf-q-synthetic-eval/outline.json",
      "requires": false,
      "complements": false
    }
  ],
  "bundles_including": [],
  "sources": {
    "explicit_fields": "related_skills / requires / complements when present",
    "co_purchase": "same wallet confirmed unlocks (ledger)",
    "structural": "same_category + tag_overlap"
  },
  "note": "Hand-curated bundles remain under /api/shop → bundles; this graph scales beyond editorial lists."
}