[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M799N7RXGA2B73TX08VTQJJS":3,"skill-same:01M799N7RXGA2B73TX08VTQJJS":79},{"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":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":14,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":38,"install":39,"resources":52},"01M799N7RXGA2B73TX08VTQJJS","graphql-architect",null,"Use when designing GraphQL schemas, implementing Apollo Federation, or building real-time subscriptions. Invoke for schema design, resolvers with DataLoader, query optimization, federation directives.","Elogic360\u002Fsoftware-factory","Elogic360","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F156535519?v=4","01M74NH3F0RB13PWB7JZDE2V80","elogic360","01M74NH3FPC65082MDZVMFHDM3",0,"MIT","https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fintegrations\u002Fclaude-skills-jeffallan\u002Fskills\u002Fgraphql-architect\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: graphql-architect\ndescription: Use when designing GraphQL schemas, implementing Apollo Federation, or building real-time subscriptions. Invoke for schema design, resolvers with DataLoader, query optimization, federation directives.\nlicense: MIT\nmetadata:\n  author: https:\u002F\u002Fgithub.com\u002FJeffallan\n  version: \"1.1.0\"\n  domain: api-architecture\n  triggers: GraphQL, Apollo Federation, GraphQL schema, API graph, GraphQL subscriptions, Apollo Server, schema design, GraphQL resolvers, DataLoader\n  role: architect\n  scope: design\n  output-format: schema\n  related-skills: api-designer, microservices-architect, database-optimizer\n---\n\n# GraphQL Architect\n\nSenior GraphQL architect specializing in schema design and distributed graph architectures with deep expertise in Apollo Federation 2.5+, GraphQL subscriptions, and performance optimization.\n\n## Core Workflow\n\n1. **Domain Modeling** - Map business domains to GraphQL type system\n2. **Design Schema** - Create types, interfaces, unions with federation directives\n3. **Validate Schema** - Run schema composition check; confirm all `@key` entities resolve correctly\n   - _If composition fails:_ review entity `@key` directives, check for missing or mismatched type definitions across subgraphs, resolve any `@external` field inconsistencies, then re-run composition\n4. **Implement Resolvers** - Write efficient resolvers with DataLoader patterns\n5. **Secure** - Add query complexity limits, depth limiting, field-level auth; validate complexity thresholds before deployment\n   - _If complexity threshold is exceeded:_ identify the highest-cost fields, add pagination limits, restructure nested queries, or raise the threshold with documented justification\n6. **Optimize** - Performance tune with caching, persisted queries, monitoring\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| Schema Design | `references\u002Fschema-design.md` | Types, interfaces, unions, enums, input types |\n| Resolvers | `references\u002Fresolvers.md` | Resolver patterns, context, DataLoader, N+1 |\n| Federation | `references\u002Ffederation.md` | Apollo Federation, subgraphs, entities, directives |\n| Subscriptions | `references\u002Fsubscriptions.md` | Real-time updates, WebSocket, pub\u002Fsub patterns |\n| Security | `references\u002Fsecurity.md` | Query depth, complexity analysis, authentication |\n| REST Migration | `references\u002Fmigration-from-rest.md` | Migrating REST APIs to GraphQL |\n\n## Constraints\n\n### MUST DO\n- Use schema-first design approach\n- Implement proper nullable field patterns\n- Use DataLoader for batching and caching\n- Add query complexity analysis\n- Document all types and fields\n- Follow GraphQL naming conventions (camelCase)\n- Use federation directives correctly\n- Provide example queries for all operations\n\n### MUST NOT DO\n- Create N+1 query problems\n- Skip query depth limiting\n- Expose internal implementation details\n- Use REST patterns in GraphQL\n- Return null for non-nullable fields\n- Skip error handling in resolvers\n- Hardcode authorization logic\n- Ignore schema validation\n\n## Code Examples\n\n### Federation Schema (SDL)\n\n```graphql\n# products subgraph\ntype Product @key(fields: \"id\") {\n  id: ID!\n  name: String!\n  price: Float!\n  inStock: Boolean!\n}\n\n# reviews subgraph — extends Product from products subgraph\ntype Product @key(fields: \"id\") {\n  id: ID! @external\n  reviews: [Review!]!\n}\n\ntype Review {\n  id: ID!\n  rating: Int!\n  body: String\n  author: User! @shareable\n}\n\ntype User @shareable {\n  id: ID!\n  username: String!\n}\n```\n\n### Resolver with DataLoader (N+1 Prevention)\n\n```js\n\u002F\u002F context setup — one DataLoader instance per request\nconst context = ({ req }) => ({\n  loaders: {\n    user: new DataLoader(async (userIds) => {\n      const users = await db.users.findMany({ where: { id: { in: userIds } } });\n      \u002F\u002F return results in same order as input keys\n      return userIds.map((id) => users.find((u) => u.id === id) ?? null);\n    }),\n  },\n});\n\n\u002F\u002F resolver — batches all user lookups in a single query\nconst resolvers = {\n  Review: {\n    author: (review, _args, { loaders }) => loaders.user.load(review.authorId),\n  },\n};\n```\n\n### Query Complexity Validation\n\n```js\nimport { createComplexityRule } from 'graphql-query-complexity';\n\nconst server = new ApolloServer({\n  schema,\n  validationRules: [\n    createComplexityRule({\n      maximumComplexity: 1000,\n      onComplete: (complexity) => console.log('Query complexity:', complexity),\n    }),\n  ],\n});\n```\n\n## Output Templates\n\nWhen implementing GraphQL features, provide:\n1. Schema definition (SDL with types and directives)\n2. Resolver implementation (with DataLoader patterns)\n3. Query\u002Fmutation\u002Fsubscription examples\n4. Brief explanation of design decisions\n\n## Knowledge Reference\n\nApollo Server, Apollo Federation 2.5+, GraphQL SDL, DataLoader, GraphQL Subscriptions, WebSocket, Redis pub\u002Fsub, schema composition, query complexity, persisted queries, schema stitching, type generation\n\n[Documentation](https:\u002F\u002Fjeffallan.github.io\u002Fclaude-skills\u002Fskills\u002Fapi-architecture\u002Fgraphql-architect\u002F)\n","# GraphQL Architect\n\nSenior GraphQL architect specializing in schema design and distributed graph architectures with deep expertise in Apollo Federation 2.5+, GraphQL subscriptions, and performance optimization.\n\n## Core Workflow\n\n1. **Domain Modeling** - Map business domains to GraphQL type system\n2. **Design Schema** - Create types, interfaces, unions with federation directives\n3. **Validate Schema** - Run schema composition check; confirm all `@key` entities resolve correctly\n   - _If composition fails:_ review entity `@key` directives, check for missing or mismatched type definitions across subgraphs, resolve any `@external` field inconsistencies, then re-run composition\n4. **Implement Resolvers** - Write efficient resolvers with DataLoader patterns\n5. **Secure** - Add query complexity limits, depth limiting, field-level auth; validate complexity thresholds before deployment\n   - _If complexity threshold is exceeded:_ identify the highest-cost fields, add pagination limits, restructure nested queries, or raise the threshold with documented justification\n6. **Optimize** - Performance tune with caching, persisted queries, monitoring\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| Schema Design | `references\u002Fschema-design.md` | Types, interfaces, unions, enums, input types |\n| Resolvers | `references\u002Fresolvers.md` | Resolver patterns, context, DataLoader, N+1 |\n| Federation | `references\u002Ffederation.md` | Apollo Federation, subgraphs, entities, directives |\n| Subscriptions | `references\u002Fsubscriptions.md` | Real-time updates, WebSocket, pub\u002Fsub patterns |\n| Security | `references\u002Fsecurity.md` | Query depth, complexity analysis, authentication |\n| REST Migration | `references\u002Fmigration-from-rest.md` | Migrating REST APIs to GraphQL |\n\n## Constraints\n\n### MUST DO\n- Use schema-first design approach\n- Implement proper nullable field patterns\n- Use DataLoader for batching and caching\n- Add query complexity analysis\n- Document all types and fields\n- Follow GraphQL naming conventions (camelCase)\n- Use federation directives correctly\n- Provide example queries for all operations\n\n### MUST NOT DO\n- Create N+1 query problems\n- Skip query depth limiting\n- Expose internal implementation details\n- Use REST patterns in GraphQL\n- Return null for non-nullable fields\n- Skip error handling in resolvers\n- Hardcode authorization logic\n- Ignore schema validation\n\n## Code Examples\n\n### Federation Schema (SDL)\n\n```graphql\n# products subgraph\ntype Product @key(fields: \"id\") {\n  id: ID!\n  name: String!\n  price: Float!\n  inStock: Boolean!\n}\n\n# reviews subgraph — extends Product from products subgraph\ntype Product @key(fields: \"id\") {\n  id: ID! @external\n  reviews: [Review!]!\n}\n\ntype Review {\n  id: ID!\n  rating: Int!\n  body: String\n  author: User! @shareable\n}\n\ntype User @shareable {\n  id: ID!\n  username: String!\n}\n```\n\n### Resolver with DataLoader (N+1 Prevention)\n\n```js\n\u002F\u002F context setup — one DataLoader instance per request\nconst context = ({ req }) => ({\n  loaders: {\n    user: new DataLoader(async (userIds) => {\n      const users = await db.users.findMany({ where: { id: { in: userIds } } });\n      \u002F\u002F return results in same order as input keys\n      return userIds.map((id) => users.find((u) => u.id === id) ?? null);\n    }),\n  },\n});\n\n\u002F\u002F resolver — batches all user lookups in a single query\nconst resolvers = {\n  Review: {\n    author: (review, _args, { loaders }) => loaders.user.load(review.authorId),\n  },\n};\n```\n\n### Query Complexity Validation\n\n```js\nimport { createComplexityRule } from 'graphql-query-complexity';\n\nconst server = new ApolloServer({\n  schema,\n  validationRules: [\n    createComplexityRule({\n      maximumComplexity: 1000,\n      onComplete: (complexity) => console.log('Query complexity:', complexity),\n    }),\n  ],\n});\n```\n\n## Output Templates\n\nWhen implementing GraphQL features, provide:\n1. Schema definition (SDL with types and directives)\n2. Resolver implementation (with DataLoader patterns)\n3. Query\u002Fmutation\u002Fsubscription examples\n4. Brief explanation of design decisions\n\n## Knowledge Reference\n\nApollo Server, Apollo Federation 2.5+, GraphQL SDL, DataLoader, GraphQL Subscriptions, WebSocket, Redis pub\u002Fsub, schema composition, query complexity, persisted queries, schema stitching, type generation\n\n[Documentation](https:\u002F\u002Fjeffallan.github.io\u002Fclaude-skills\u002Fskills\u002Fapi-architecture\u002Fgraphql-architect\u002F)\n",{"name":5,"license":15,"metadata":24,"description":7},{"role":25,"scope":26,"author":27,"domain":28,"version":29,"triggers":30,"output-format":31,"related-skills":32},"architect","design","https:\u002F\u002Fgithub.com\u002FJeffallan","api-architecture","1.1.0","GraphQL, Apollo Federation, GraphQL schema, API graph, GraphQL subscriptions, Apollo Server, schema design, GraphQL resolvers, DataLoader","schema","api-designer, microservices-architect, database-optimizer","main","c475fc64e94e803b50d14a791dfee8853fbb2c5c","integrations\u002Fclaude-skills-jeffallan\u002Fskills\u002Fgraphql-architect","https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory","https:\u002F\u002Fgithub.com\u002FElogic360","2026-11-08 22:21:22",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add Elogic360\u002Fsoftware-factory --skill graphql-architect",{"tool":45,"command":46},"bunx","bunx skills add Elogic360\u002Fsoftware-factory --skill graphql-architect",{"tool":48,"command":49},"pnpm","pnpm dlx skills add Elogic360\u002Fsoftware-factory --skill graphql-architect","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fintegrations\u002Fclaude-skills-jeffallan\u002Fskills\u002Fgraphql-architect\u002FSKILL.md",true,[53,59,63,67,71,75],{"path":54,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":57,"sourceHtmlUrl":58},"references\u002Ffederation.md","REFERENCE","参考文档",9233,"https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fintegrations\u002Fclaude-skills-jeffallan\u002Fskills\u002Fgraphql-architect\u002Freferences\u002Ffederation.md",{"path":60,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":61,"sourceHtmlUrl":62},"references\u002Fmigration-from-rest.md",25024,"https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fintegrations\u002Fclaude-skills-jeffallan\u002Fskills\u002Fgraphql-architect\u002Freferences\u002Fmigration-from-rest.md",{"path":64,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":65,"sourceHtmlUrl":66},"references\u002Fresolvers.md",10239,"https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fintegrations\u002Fclaude-skills-jeffallan\u002Fskills\u002Fgraphql-architect\u002Freferences\u002Fresolvers.md",{"path":68,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":69,"sourceHtmlUrl":70},"references\u002Fschema-design.md",6531,"https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fintegrations\u002Fclaude-skills-jeffallan\u002Fskills\u002Fgraphql-architect\u002Freferences\u002Fschema-design.md",{"path":72,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Fsecurity.md",13199,"https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fintegrations\u002Fclaude-skills-jeffallan\u002Fskills\u002Fgraphql-architect\u002Freferences\u002Fsecurity.md",{"path":76,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fsubscriptions.md",12154,"https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fintegrations\u002Fclaude-skills-jeffallan\u002Fskills\u002Fgraphql-architect\u002Freferences\u002Fsubscriptions.md",[80,88,95,102,109,116],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":84,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M79G206MT3J6S0GY3C45P2KV","vss-summarize-video","Use to summarize a recorded video via the LVS summarization microservice (HITL-gated) with a VLM fallback. Not for report generation or live RTSP captioning.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fskills\u002Fnvidia\u002Fvss-summarize-video\u002FSKILL.md",[],[],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":84,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":19},"01M79G1WN63PGRE8CKD47WEBQ5","vss-setup-video-analytics-api","Use to deploy the vss-video-analytics-api REST service standalone (config-source, data-log bind, Elasticsearch, optional Kafka). Not for full warehouse deploy.","https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fskills\u002Fnvidia\u002Fvss-setup-video-analytics-api\u002FSKILL.md",[],[],{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":84,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":19},"01M79G1S9F7VY3EF6H53PRP5AN","vss-setup-behavior-analytics","Use to deploy the vss-behavior-analytics service standalone (entrypoint, config-source, optional calibration). Not for the full warehouse deploy.","https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fskills\u002Fnvidia\u002Fvss-setup-behavior-analytics\u002FSKILL.md",[],[],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":84,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":19},"01M79G1N1S1Y27PFZPYMNK1MTQ","vss-search-archive","Use this skill to run top-level VSS fusion search on archived video, or to ingest video files \u002F RTSP streams for search. Do NOT use for ad-hoc visual Q&A (use vss-ask-video), live captioning (use vss-deploy-dense-captioning), or video summarization and reports (use vss-summarize-video).","https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fskills\u002Fnvidia\u002Fvss-search-archive\u002FSKILL.md",[],[],{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":84,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":19},"01M79G1H6WN0Q6C0VCAXCZX6B7","vss-query-analytics","Use this skill when reading video-analytics metrics, incidents, alerts, and sensor data via the VA-MCP server (port 9901). Not for live VLM or incident-range narrative reports.","https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fskills\u002Fnvidia\u002Fvss-query-analytics\u002FSKILL.md",[],[],{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":84,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":19},"01M79G1DYPNXQS7QHZ0AAF5FX5","vss-manage-video-io-storage","Use to call the VIOS REST API (sensor list, timelines, clip extraction, snapshots, add\u002Fdelete sensors and streams). Not for VLM inference or search.","https:\u002F\u002Fgithub.com\u002FElogic360\u002Fsoftware-factory\u002Fblob\u002Fmain\u002Fskills\u002Fnvidia\u002Fvss-manage-video-io-storage\u002FSKILL.md",[],[]]