{
  "$schema": "./builder-intent-router.schema.json",
  "routerVersion": 1,
  "intents": [
    {
      "id": "support-truth",
      "question": "What is actually supported right now?",
      "firstHopDoc": "docs/public-surface-catalog.md",
      "firstHopCli": "pnpm run switchyard:cli -- surface-catalog",
      "firstHopMcp": "switchyard.catalog.surface_catalog",
      "whyThisFirst": [
        "Start here when you need the current truthful surface and compat boundary first.",
        "This is the fastest way to see partial vs supported without confusing builder route docs with support status."
      ],
      "doNotStartWith": [
        "docs/starter-pack-chooser.md",
        "docs/host-integration-playbooks.md"
      ],
      "truthReminder": [
        "partial is still partial",
        "read-only surfaces are still narrow"
      ],
      "relatedDocs": [
        "docs/public-surface-support-matrix.md",
        "docs/compat/README.md",
        "docs/mcp.md"
      ],
      "searchKeywords": [
        "switchyard support truth",
        "switchyard partial support",
        "switchyard current surface status"
      ]
    },
    {
      "id": "pick-starter-pack",
      "question": "Which starter pack should I pick first?",
      "firstHopDoc": "docs/starter-pack-chooser.md",
      "firstHopCli": "pnpm run switchyard:cli -- starter-pack-chooser",
      "firstHopMcp": "switchyard.catalog.starter_pack_chooser",
      "whyThisFirst": [
        "Start here when you already know you need a builder or skill pack but have not picked the first route.",
        "This is the narrow entry for first-hop pack selection."
      ],
      "doNotStartWith": [
        "docs/host-integration-playbooks.md",
        "docs/discoverability-keyword-truth.md"
      ],
      "truthReminder": [
        "this is a router, not a parity claim",
        "recommended pack does not mean full compatibility"
      ],
      "relatedDocs": [
        "docs/starter-pack-comparison.md",
        "docs/plugin-skill-starter-kits.md",
        "starter-packs/README.md"
      ],
      "searchKeywords": [
        "switchyard starter pack chooser",
        "switchyard pick first pack",
        "switchyard builder first hop"
      ]
    },
    {
      "id": "compare-packs",
      "question": "I need to compare or filter packs before choosing.",
      "firstHopDoc": "docs/starter-pack-comparison.md",
      "firstHopCli": "pnpm run switchyard:cli -- starter-pack-comparison",
      "firstHopMcp": "switchyard.catalog.starter_pack_comparison",
      "whyThisFirst": [
        "Start here when you are comparing constraints instead of asking for one default route.",
        "This is the right first hop for side-by-side pack truth and filtering."
      ],
      "doNotStartWith": [
        "docs/builder-journeys.md",
        "docs/host-integration-examples.md"
      ],
      "truthReminder": [
        "comparison is not a recommendation engine",
        "filters narrow truthful options only"
      ],
      "relatedDocs": [
        "docs/starter-pack-chooser.md",
        "docs/plugin-skill-starter-kits.md"
      ],
      "searchKeywords": [
        "switchyard compare starter packs",
        "switchyard filter packs",
        "switchyard pack comparison"
      ]
    },
    {
      "id": "follow-builder-journey",
      "question": "I want one full builder path to first success.",
      "firstHopDoc": "docs/builder-journeys.md",
      "firstHopCli": "pnpm run switchyard:cli -- builder-journeys",
      "firstHopMcp": "switchyard.catalog.builder_journeys",
      "whyThisFirst": [
        "Start here when you want one complete route instead of hopping across multiple pages yourself.",
        "This is the right first hop for bounded first-success paths."
      ],
      "doNotStartWith": [
        "docs/compat/README.md",
        "docs/provider-runtime-catalog.md"
      ],
      "truthReminder": [
        "journeys are still builder-facing and partial",
        "journeys do not imply full host or consumer parity"
      ],
      "relatedDocs": [
        "docs/starter-pack-chooser.md",
        "docs/host-integration-playbooks.md",
        "docs/host-integration-examples.md"
      ],
      "searchKeywords": [
        "switchyard first success journey",
        "switchyard builder journey",
        "switchyard first hop full path"
      ]
    },
    {
      "id": "wire-host",
      "question": "I already chose a route. How do I wire a host?",
      "firstHopDoc": "docs/host-integration-playbooks.md",
      "firstHopCli": "pnpm run switchyard:cli -- host-playbooks",
      "firstHopMcp": "switchyard.catalog.host_playbooks",
      "whyThisFirst": [
        "Start here once you have already chosen a pack or journey and need host wiring guidance.",
        "This is the right first hop for host-local integration steps."
      ],
      "doNotStartWith": [
        "docs/starter-pack-chooser.md",
        "docs/discoverability-keyword-truth.md"
      ],
      "truthReminder": [
        "host playbooks do not upgrade compatibility status",
        "wiring docs are still bounded to current landed shapes"
      ],
      "relatedDocs": [
        "docs/host-integration-examples.md",
        "docs/builder-journeys.md"
      ],
      "searchKeywords": [
        "switchyard host playbook",
        "switchyard host wiring",
        "switchyard integrate host"
      ]
    },
    {
      "id": "copy-host-example",
      "question": "I need a runnable host-local example.",
      "firstHopDoc": "docs/host-integration-examples.md",
      "firstHopCli": "pnpm run switchyard:cli -- host-examples",
      "firstHopMcp": "switchyard.catalog.host_examples",
      "whyThisFirst": [
        "Start here when you want a concrete host-local shape instead of a prose playbook.",
        "This is the right first hop for copyable example structure."
      ],
      "doNotStartWith": [
        "docs/discoverability-keyword-truth.md",
        "docs/compat/README.md"
      ],
      "truthReminder": [
        "examples are bounded starters",
        "examples do not imply full product-shell parity"
      ],
      "relatedDocs": [
        "docs/host-integration-playbooks.md",
        "examples/README.md"
      ],
      "searchKeywords": [
        "switchyard host example",
        "switchyard runnable host config",
        "switchyard copyable example"
      ]
    },
    {
      "id": "repair-web-login-session",
      "question": "I need to acquire or repair a Web/Login browser session first.",
      "firstHopDoc": "docs/runbooks/dev-bootstrap.md",
      "firstHopCli": "pnpm run switchyard:cli -- host-playbooks",
      "firstHopMcp": "switchyard.catalog.host_playbooks",
      "whyThisFirst": [
        "Start here when the real blocker is browser/session acquisition rather than host wiring or pack choice.",
        "This is the fastest first hop for auth-portal, browser hygiene, and service-first Web/Login recovery steps."
      ],
      "doNotStartWith": [
        "docs/compat/README.md",
        "docs/starter-pack-comparison.md"
      ],
      "truthReminder": [
        "browser/session recovery is still local-first",
        "auth-portal and runbook steps do not upgrade compatibility claims"
      ],
      "relatedDocs": [
        "docs/api/service-http-reference.md",
        "docs/api/web-login-acquisition.md",
        "docs/mcp.md"
      ],
      "searchKeywords": [
        "switchyard web login repair",
        "switchyard auth portal",
        "switchyard browser session recovery"
      ]
    },
    {
      "id": "keyword-claim-truth",
      "question": "Which keyword claims are truthful?",
      "firstHopDoc": "docs/discoverability-keyword-truth.md",
      "firstHopCli": "pnpm run switchyard:cli -- keyword-truth",
      "firstHopMcp": "switchyard.catalog.keyword_truth",
      "whyThisFirst": [
        "Start here when the problem is outward wording, docs sync, or truthful keyword usage.",
        "This is the right first hop for human and machine keyword truth."
      ],
      "doNotStartWith": [
        "docs/compat/README.md",
        "docs/builder-journeys.md"
      ],
      "truthReminder": [
        "keyword truth is not ad copy",
        "partial must stay partial"
      ],
      "relatedDocs": [
        "docs/public-surface-catalog.md",
        "docs/faq.md"
      ],
      "searchKeywords": [
        "switchyard keyword truth",
        "switchyard truthful claims",
        "switchyard docs seo truth"
      ]
    },
    {
      "id": "provider-directory",
      "question": "Which provider or lane am I even talking about?",
      "firstHopDoc": "docs/provider-runtime-catalog.md",
      "firstHopCli": "pnpm run switchyard:cli -- provider-catalog",
      "firstHopMcp": "switchyard.catalog.provider_catalog",
      "whyThisFirst": [
        "Start here when you need the current provider and lane directory before choosing a compat or host path.",
        "This is the right first hop for provider-scoped builder questions."
      ],
      "doNotStartWith": [
        "docs/builder-journeys.md",
        "docs/starter-pack-comparison.md"
      ],
      "truthReminder": [
        "provider directory is a runtime catalog, not a live proof verdict",
        "provider entry does not imply every host path is equally supported"
      ],
      "relatedDocs": [
        "docs/shared-provider-runtime.md",
        "docs/contracts/provider-runtime-contract.md"
      ],
      "searchKeywords": [
        "switchyard provider catalog",
        "switchyard provider directory",
        "switchyard lane directory"
      ]
    },
    {
      "id": "inspect-read-only-mcp",
      "question": "What can the read-only MCP surface inspect today?",
      "firstHopDoc": "docs/mcp.md",
      "firstHopCli": "pnpm run switchyard:cli -- mcp-status",
      "firstHopMcp": "switchyard.catalog.mcp_status",
      "whyThisFirst": [
        "Start here when the question is about the current read-only MCP surface itself.",
        "This is the right first hop for MCP status, tool inventory, and fail-closed boundaries."
      ],
      "doNotStartWith": [
        "docs/host-integration-examples.md",
        "docs/starter-pack-chooser.md"
      ],
      "truthReminder": [
        "MCP is still partial and read-only",
        "MCP is not an execution brain"
      ],
      "relatedDocs": [
        "docs/api/mcp-readonly-server.md",
        "docs/public-surface-catalog.md"
      ],
      "searchKeywords": [
        "switchyard mcp status",
        "switchyard read only mcp",
        "switchyard mcp tool inventory"
      ]
    }
  ]
}
