[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NQAYSYRF46MFN58HC8P3HH":3,"skill-same:01M6NQAYSYRF46MFN58HC8P3HH":69},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":14,"repositoryHtmlUrl":51,"repositoryHomepageUrl":52,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6NQAYSYRF46MFN58HC8P3HH","query-pattern",null,"Choose the right query access pattern (GraphQL, MCP, NATS Direct) for a use case. Use when designing query APIs, adding new access points, or choosing between gateway types.","C360Studio\u002Fsemteams","C360Studio","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F107274645?v=4","01M6NQ809JZG513TZ7FJX8SAKQ","Complete 360 Studio","01M6NQ80DRB447R1H9W554K7V8",0,"MIT","https:\u002F\u002Fgithub.com\u002FC360Studio\u002Fsemteams\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fquery-pattern\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"query pattern","query","pattern","new","MCP","when","for","types","case","scenario","nats","use","choose","direct","access","GraphQL","gateway","2026-11-10 10:12:30",false,"---\nname: query-pattern\ndescription: Choose the right query access pattern (GraphQL, MCP, NATS Direct) for a use case. Use when designing query APIs, adding new access points, or choosing between gateway types.\nargument-hint: [access scenario or caller description]\n---\n\n# Query Access Pattern Selection\n\n## What is the access scenario?\n\n$ARGUMENTS\n\n## Three Access Patterns\n\n| Pattern | Best For | Key Property |\n|---------|----------|-------------|\n| **GraphQL** | External apps, web frontends, data exploration | Schema-validated, field selection, introspection |\n| **MCP** | AI agents, LLMs, automated reasoning | Bounded capabilities, full audit trail, structured tools |\n| **NATS Direct** | Internal services, low-latency paths | No gateway overhead, lowest latency |\n\n## Quick Decision\n\n```\nWho is calling?\n\n  External app \u002F web frontend  --> GraphQL\n  AI agent \u002F LLM               --> MCP\n  Internal service              --> NATS Direct\n  Multiple caller types         --> Combine patterns (see below)\n```\n\n## Decision Matrix\n\n| Factor | GraphQL | MCP | NATS Direct |\n|--------|---------|-----|-------------|\n| Latency | Higher (HTTP) | Higher (HTTP) | Lowest (direct) |\n| Schema control | Strong (SDL) | Strong (tool schemas) | Per-component |\n| Auditability | Good (query logs) | Excellent (tool call audit) | Manual |\n| Field selection | Yes (client picks fields) | Yes (tool parameters) | No (full response) |\n| External access | Yes | Yes | No (internal only) |\n| Discovery | Schema introspection | Tool list enumeration | Capability queries |\n| NL query support | Yes (query classification) | Yes (query classification) | No |\n\n## Common Combinations\n\n| System Type | Recommended Pattern |\n|------------|---------------------|\n| Web app backend | GraphQL (user-facing) + NATS Direct (background jobs) |\n| AI-powered system | MCP (agent access) + GraphQL (dashboard\u002Fmonitoring) |\n| Microservice mesh | NATS Direct (service-to-service) + GraphQL (external API) |\n| Full platform | All three: NATS internal, GraphQL external, MCP for agents |\n\n## Key Points\n\n- All three patterns read from the same underlying knowledge graph\n- Consistency is eventually consistent regardless of access pattern\n- GraphQL and MCP both include natural language query classification\n- MCP wraps GraphQL capabilities with bounded tool definitions and structured audit\n- GraphRAG (community search) and PathRAG (structural traversal) are available through GraphQL and MCP, not NATS Direct currently\n\n## GraphRAG vs PathRAG\n\nWhen choosing query strategy (applicable to GraphQL and MCP):\n\n| Pattern | Use When | Returns |\n|---------|----------|---------|\n| **GraphRAG** | Discovery, Q&A, \"what do we know about X?\" | Community-scoped results with summaries |\n| **PathRAG** | Impact analysis, dependencies, \"what's affected by X?\" | Bounded traversal from known entity |\n\nRead `docs\u002Fconcepts\u002F11-query-access.md` for full documentation.\nRead `docs\u002Fconcepts\u002F09-graphrag-pattern.md` for GraphRAG details.\nRead `docs\u002Fconcepts\u002F10-pathrag-pattern.md` for PathRAG details.\n","# Query Access Pattern Selection\n\n## What is the access scenario?\n\n$ARGUMENTS\n\n## Three Access Patterns\n\n| Pattern | Best For | Key Property |\n|---------|----------|-------------|\n| **GraphQL** | External apps, web frontends, data exploration | Schema-validated, field selection, introspection |\n| **MCP** | AI agents, LLMs, automated reasoning | Bounded capabilities, full audit trail, structured tools |\n| **NATS Direct** | Internal services, low-latency paths | No gateway overhead, lowest latency |\n\n## Quick Decision\n\n```\nWho is calling?\n\n  External app \u002F web frontend  --> GraphQL\n  AI agent \u002F LLM               --> MCP\n  Internal service              --> NATS Direct\n  Multiple caller types         --> Combine patterns (see below)\n```\n\n## Decision Matrix\n\n| Factor | GraphQL | MCP | NATS Direct |\n|--------|---------|-----|-------------|\n| Latency | Higher (HTTP) | Higher (HTTP) | Lowest (direct) |\n| Schema control | Strong (SDL) | Strong (tool schemas) | Per-component |\n| Auditability | Good (query logs) | Excellent (tool call audit) | Manual |\n| Field selection | Yes (client picks fields) | Yes (tool parameters) | No (full response) |\n| External access | Yes | Yes | No (internal only) |\n| Discovery | Schema introspection | Tool list enumeration | Capability queries |\n| NL query support | Yes (query classification) | Yes (query classification) | No |\n\n## Common Combinations\n\n| System Type | Recommended Pattern |\n|------------|---------------------|\n| Web app backend | GraphQL (user-facing) + NATS Direct (background jobs) |\n| AI-powered system | MCP (agent access) + GraphQL (dashboard\u002Fmonitoring) |\n| Microservice mesh | NATS Direct (service-to-service) + GraphQL (external API) |\n| Full platform | All three: NATS internal, GraphQL external, MCP for agents |\n\n## Key Points\n\n- All three patterns read from the same underlying knowledge graph\n- Consistency is eventually consistent regardless of access pattern\n- GraphQL and MCP both include natural language query classification\n- MCP wraps GraphQL capabilities with bounded tool definitions and structured audit\n- GraphRAG (community search) and PathRAG (structural traversal) are available through GraphQL and MCP, not NATS Direct currently\n\n## GraphRAG vs PathRAG\n\nWhen choosing query strategy (applicable to GraphQL and MCP):\n\n| Pattern | Use When | Returns |\n|---------|----------|---------|\n| **GraphRAG** | Discovery, Q&A, \"what do we know about X?\" | Community-scoped results with summaries |\n| **PathRAG** | Impact analysis, dependencies, \"what's affected by X?\" | Bounded traversal from known entity |\n\nRead `docs\u002Fconcepts\u002F11-query-access.md` for full documentation.\nRead `docs\u002Fconcepts\u002F09-graphrag-pattern.md` for GraphRAG details.\nRead `docs\u002Fconcepts\u002F10-pathrag-pattern.md` for PathRAG details.\n",{"name":5,"description":7,"argument-hint":46},[47],"access scenario or caller description","main","9b1ec2f24adbbc9121f3d9322f9d414fdc16e016",".agents\u002Fskills\u002Fquery-pattern","https:\u002F\u002Fgithub.com\u002FC360Studio\u002Fsemteams","https:\u002F\u002Fc360studio.github.io","https:\u002F\u002Fgithub.com\u002FC360Studio","2026-11-11 01:13:46",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add C360Studio\u002Fsemteams --skill query-pattern",{"tool":61,"command":62},"bunx","bunx skills add C360Studio\u002Fsemteams --skill query-pattern",{"tool":64,"command":65},"pnpm","pnpm dlx skills add C360Studio\u002Fsemteams --skill query-pattern","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FC360Studio\u002Fsemteams\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fquery-pattern\u002FSKILL.md",true,[],[70,89,107,139,150,156],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":41},"01M6NQEE3V8S4HEVMFVFW7SEQ4","store-pattern","Choose the right state management approach for a use case. Decide between component-local state, derived state, runes-based stores, SvelteKit load, or URL state.","https:\u002F\u002Fgithub.com\u002FC360Studio\u002Fsemteams\u002Fblob\u002Fmain\u002Fui\u002F.claude\u002Fskills\u002Fstore-pattern\u002FSKILL.md",[],[77,78,26,79,80,30,81,32,82,83,35,84,85,86,36,87,88],"store pattern","store","URL","load","managed","component","local","state management","state","sveltekit","decide","management",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":41},"01M6NQE4Z802R8B8PBE23JRR5W","new-component","Step-by-step checklist for adding a new Svelte 5 component with proper patterns, tests, and TypeScript types. Use when creating new UI components.","https:\u002F\u002Fgithub.com\u002FC360Studio\u002Fsemteams\u002Fblob\u002Fmain\u002Fui\u002F.claude\u002Fskills\u002Fnew-component\u002FSKILL.md",[],[82,96,27,97,31,98,99,100,35,101,102,103,104,105,106,30,29],"new component","svelte","patterns","checklist","svelte 5","ui","components","typescript","tests","ui components","with",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":121,"publishedAt":41},"01M6NQDYRKF89279J9A2D9Q892","backend-integration","Connect the UI to semstreams backend APIs. Covers proxy routing, fetch patterns, SSR considerations, and real-time data. Use when adding new backend integrations or debugging API issues.","https:\u002F\u002Fgithub.com\u002FC360Studio\u002Fsemteams\u002Fblob\u002Fmain\u002Fui\u002F.claude\u002Fskills\u002Fbackend-integration\u002FSKILL.md",[113,116],{"categoryNo":114,"categoryName":115,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[122,123,124,27,125,126,127,128,98,35,129,130,131,132,29,101,133,134,135,136,137,138],"backend integration","backend","integration","api endpoint","data","backend integrations","time","fetch","integrations","api","real-time","proxy","issues","routing","connect","debugging","ssr",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":41},"01M6NQDW39CHJMCCQZA696N1Y7","review-pr","Adapter for review-pr.","https:\u002F\u002Fgithub.com\u002FC360Studio\u002Fsemteams\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Freview-pr\u002FSKILL.md",[],[146,147,148,149,30,141],"pr","review pr","review","adapter",{"skillNo":151,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":155,"publishedAt":41},"01M6NQD8CX3BCRHN8BRFTVJJ01","https:\u002F\u002Fgithub.com\u002FC360Studio\u002Fsemteams\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fquery-pattern\u002FSKILL.md",[154],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[24,26,25,35,27,29,30,31,32,33,34,36,37,38,39,40,28],{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":41},"01M6NQD73AJADQC2G9005KPNPN","preflight","Adapter for preflight.","https:\u002F\u002Fgithub.com\u002FC360Studio\u002Fsemteams\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fpreflight\u002FSKILL.md",[],[158,30,149]]