[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DYN30BKYMST7SSF0KN2ZXW":3,"skill-same:01M6DYN30BKYMST7SSF0KN2ZXW":189},{"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":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6DYN30BKYMST7SSF0KN2ZXW","grpc",null,"Build or review gRPC services and clients in .NET. USE FOR: ASP.NET Core gRPC, protobuf contracts, unary or streaming RPC, gRPC client factory, interceptors, deadlines, cancellation, channel reuse, backend service integration. DO NOT USE FOR: broad browser-facing APIs without gRPC-Web tradeoff review, SignalR realtime hubs, plain REST APIs. INVOKES: dotnet build\u002Ftest and focused service or client smoke checks when code changes.","managedcode\u002Fdotnet-skills","managedcode","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F78253589?v=4","01M6DYDJR3EG8KB5G4PC65XCTT","Managed Code","01M6DYDJX0ZT432N04NYJW89DN",511,"MIT","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FFrameworks\u002FgRPC\u002Fskills\u002Fgrpc\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"REST","when","for","interceptors","reuse","signalr","do","contracts","build","smoke","backend service","backend","use","projects","review","services","streaming","rpc","browser","code","core","protobuf","realtime","dotnet","web","test","2026-11-10 10:12:30",false,"---\nname: grpc\ndescription: \"Build or review gRPC services and clients in .NET. USE FOR: ASP.NET Core gRPC, protobuf contracts, unary or streaming RPC, gRPC client factory, interceptors, deadlines, cancellation, channel reuse, backend service integration. DO NOT USE FOR: broad browser-facing APIs without gRPC-Web tradeoff review, SignalR realtime hubs, plain REST APIs. INVOKES: dotnet build\u002Ftest and focused service or client smoke checks when code changes.\"\ncompatibility: \"Requires ASP.NET Core gRPC or gRPC client projects.\"\n---\n\n# gRPC for .NET\n\n## Trigger On\n\n- building backend-to-backend RPC services or clients\n- adding protobuf contracts, streaming calls, or interceptors\n- deciding between gRPC, HTTP APIs, and SignalR\n- optimizing gRPC performance, deadlines, cancellation, or connection reuse\n- integrating service-to-service communication in microservices\n\n## Do Not Use For\n\n- public browser-first APIs unless gRPC-Web limitations are explicitly acceptable\n- SignalR hub design, realtime UI fan-out, or websocket-style client collaboration\n- generic ASP.NET Core minimal APIs or REST controllers with no protobuf\u002FRPC requirement\n- non-.NET gRPC work unless the user asks for cross-stack contract guidance\n\n## Load References\n\n- [references\u002Fpatterns.md](references\u002Fpatterns.md) for proto design, streaming implementations, interceptors, health checks, load balancing, and client factory setup.\n- [references\u002Fanti-patterns.md](references\u002Fanti-patterns.md) for common channel, deadline, streaming, message-size, and exception-handling mistakes.\n\n## Workflow\n\n1. Validate the architecture fit before touching code.\n   - prefer gRPC for backend RPC, strong contracts, low-latency calls, or streaming\n   - prefer REST or minimal APIs for broad browser compatibility and loosely coupled public APIs\n   - prefer SignalR for browser\u002Fclient realtime fan-out and UI collaboration\n2. Treat `.proto` files as the source of truth.\n   - keep package names, `csharp_namespace`, service names, and versioning deliberate\n   - reserve removed field numbers and avoid reusing tags\n   - use wrapper types or explicit messages when optionality matters\n3. Choose the RPC shape from the interaction model.\n   - unary for request\u002Fresponse\n   - server streaming for large or progressive result sets\n   - client streaming for uploads or batches\n   - bidirectional streaming for coordinated two-way flows\n4. Wire server and client behavior together.\n   - register services with `AddGrpc`\n   - use `AddGrpcClient` or long-lived `GrpcChannel` reuse\n   - set deadlines and propagate cancellation\n   - convert domain failures to appropriate `RpcException` status codes\n5. Add observability and resilience where the boundary justifies it.\n   - logging or exception interceptors\n   - OpenTelemetry traces and status-code metrics\n   - retry policy only for safe idempotent calls\n6. Validate with the repo's normal build and tests, plus a focused smoke call when runnable.\n\n## Current Upstream Notes\n\n- `dotnet\u002Faspnetcore` `v10.0.11` is servicing and does not change the gRPC programming model. Keep guidance focused on proto compatibility, streaming shape, deadlines, cancellation, channel reuse, and smoke calls.\n- The August 2026 ASP.NET Core overview still treats gRPC as a contract-first RPC option. After package servicing updates, regenerate protobuf outputs only when inputs or generator packages actually changed; do not churn generated files as a proxy for validation.\n\n```mermaid\nflowchart LR\n  A[\"RPC requirement\"] --> B[\"proto contract\"]\n  B --> C[\"server implementation\"]\n  B --> D[\"client factory or channel\"]\n  C --> E[\"deadlines \u002F cancellation \u002F status codes\"]\n  D --> E\n  E --> F[\"build, tests, smoke call\"]\n```\n\n## Examples\n\nUse client factory for normal app integration:\n\n```csharp\nbuilder.Services.AddGrpcClient\u003CGreeter.GreeterClient>(options =>\n{\n    options.Address = new Uri(\"https:\u002F\u002Flocalhost:5001\");\n});\n```\n\nAlways set a deadline and pass cancellation:\n\n```csharp\nvar response = await client.SayHelloAsync(\n    new HelloRequest { Name = name },\n    deadline: DateTime.UtcNow.AddSeconds(5),\n    cancellationToken: cancellationToken);\n```\n\nFor streaming, check cancellation inside the read\u002Fwrite loop and keep message sizes bounded. Load [references\u002Fpatterns.md](references\u002Fpatterns.md) before writing detailed streaming code.\n\n## Anti-Patterns\n\n- creating a new `GrpcChannel` per call\n- omitting deadlines and relying only on client-side cancellation\n- ignoring `ServerCallContext.CancellationToken` in streaming handlers\n- sending large single messages instead of chunking or streaming\n- using gRPC as the default public browser API\n- swallowing exceptions inside interceptors\n- retrying non-idempotent calls without explicit policy\n\n## Deliver\n\n- stable protobuf contracts and generated-code ownership\n- service and client code that match the RPC shape\n- explicit deadline, cancellation, retry, and status-code behavior\n- tests or smoke checks for serialization and call behavior\n- documentation of browser, transport, or deployment constraints when relevant\n\n## Validate\n\n- `dotnet build` succeeds after contract or generated-code changes\n- tests or smoke checks exercise at least one server\u002Fclient call\n- streaming methods respect cancellation and bounded message sizes\n- channels are reused through client factory or a long-lived channel\n- status-code handling is intentional and observable\n- browser constraints are documented if gRPC-Web is involved\n","# gRPC for .NET\n\n## Trigger On\n\n- building backend-to-backend RPC services or clients\n- adding protobuf contracts, streaming calls, or interceptors\n- deciding between gRPC, HTTP APIs, and SignalR\n- optimizing gRPC performance, deadlines, cancellation, or connection reuse\n- integrating service-to-service communication in microservices\n\n## Do Not Use For\n\n- public browser-first APIs unless gRPC-Web limitations are explicitly acceptable\n- SignalR hub design, realtime UI fan-out, or websocket-style client collaboration\n- generic ASP.NET Core minimal APIs or REST controllers with no protobuf\u002FRPC requirement\n- non-.NET gRPC work unless the user asks for cross-stack contract guidance\n\n## Load References\n\n- [references\u002Fpatterns.md](references\u002Fpatterns.md) for proto design, streaming implementations, interceptors, health checks, load balancing, and client factory setup.\n- [references\u002Fanti-patterns.md](references\u002Fanti-patterns.md) for common channel, deadline, streaming, message-size, and exception-handling mistakes.\n\n## Workflow\n\n1. Validate the architecture fit before touching code.\n   - prefer gRPC for backend RPC, strong contracts, low-latency calls, or streaming\n   - prefer REST or minimal APIs for broad browser compatibility and loosely coupled public APIs\n   - prefer SignalR for browser\u002Fclient realtime fan-out and UI collaboration\n2. Treat `.proto` files as the source of truth.\n   - keep package names, `csharp_namespace`, service names, and versioning deliberate\n   - reserve removed field numbers and avoid reusing tags\n   - use wrapper types or explicit messages when optionality matters\n3. Choose the RPC shape from the interaction model.\n   - unary for request\u002Fresponse\n   - server streaming for large or progressive result sets\n   - client streaming for uploads or batches\n   - bidirectional streaming for coordinated two-way flows\n4. Wire server and client behavior together.\n   - register services with `AddGrpc`\n   - use `AddGrpcClient` or long-lived `GrpcChannel` reuse\n   - set deadlines and propagate cancellation\n   - convert domain failures to appropriate `RpcException` status codes\n5. Add observability and resilience where the boundary justifies it.\n   - logging or exception interceptors\n   - OpenTelemetry traces and status-code metrics\n   - retry policy only for safe idempotent calls\n6. Validate with the repo's normal build and tests, plus a focused smoke call when runnable.\n\n## Current Upstream Notes\n\n- `dotnet\u002Faspnetcore` `v10.0.11` is servicing and does not change the gRPC programming model. Keep guidance focused on proto compatibility, streaming shape, deadlines, cancellation, channel reuse, and smoke calls.\n- The August 2026 ASP.NET Core overview still treats gRPC as a contract-first RPC option. After package servicing updates, regenerate protobuf outputs only when inputs or generator packages actually changed; do not churn generated files as a proxy for validation.\n\n```mermaid\nflowchart LR\n  A[\"RPC requirement\"] --> B[\"proto contract\"]\n  B --> C[\"server implementation\"]\n  B --> D[\"client factory or channel\"]\n  C --> E[\"deadlines \u002F cancellation \u002F status codes\"]\n  D --> E\n  E --> F[\"build, tests, smoke call\"]\n```\n\n## Examples\n\nUse client factory for normal app integration:\n\n```csharp\nbuilder.Services.AddGrpcClient\u003CGreeter.GreeterClient>(options =>\n{\n    options.Address = new Uri(\"https:\u002F\u002Flocalhost:5001\");\n});\n```\n\nAlways set a deadline and pass cancellation:\n\n```csharp\nvar response = await client.SayHelloAsync(\n    new HelloRequest { Name = name },\n    deadline: DateTime.UtcNow.AddSeconds(5),\n    cancellationToken: cancellationToken);\n```\n\nFor streaming, check cancellation inside the read\u002Fwrite loop and keep message sizes bounded. Load [references\u002Fpatterns.md](references\u002Fpatterns.md) before writing detailed streaming code.\n\n## Anti-Patterns\n\n- creating a new `GrpcChannel` per call\n- omitting deadlines and relying only on client-side cancellation\n- ignoring `ServerCallContext.CancellationToken` in streaming handlers\n- sending large single messages instead of chunking or streaming\n- using gRPC as the default public browser API\n- swallowing exceptions inside interceptors\n- retrying non-idempotent calls without explicit policy\n\n## Deliver\n\n- stable protobuf contracts and generated-code ownership\n- service and client code that match the RPC shape\n- explicit deadline, cancellation, retry, and status-code behavior\n- tests or smoke checks for serialization and call behavior\n- documentation of browser, transport, or deployment constraints when relevant\n\n## Validate\n\n- `dotnet build` succeeds after contract or generated-code changes\n- tests or smoke checks exercise at least one server\u002Fclient call\n- streaming methods respect cancellation and bounded message sizes\n- channels are reused through client factory or a long-lived channel\n- status-code handling is intentional and observable\n- browser constraints are documented if gRPC-Web is involved\n",{"name":5,"description":7,"compatibility":50},"Requires ASP.NET Core gRPC or gRPC client projects.","main","497cc9aba79a931ac6fb8d36a48cc22fe3d6d74b","catalog\u002FFrameworks\u002FgRPC\u002Fskills\u002Fgrpc",41,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills","https:\u002F\u002Fskills.managed-code.com","https:\u002F\u002Fgithub.com\u002Fmanagedcode","https:\u002F\u002Fwww.managed-code.com","Open Source Community for .NET Developers: Reliable, Actively Maintained, and Community-Driven. Made in Ukraine 🇺🇦 with ❤️","2026-11-10 19:58:06",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add managedcode\u002Fdotnet-skills --skill grpc",{"tool":67,"command":68},"bunx","bunx skills add managedcode\u002Fdotnet-skills --skill grpc",{"tool":70,"command":71},"pnpm","pnpm dlx skills add managedcode\u002Fdotnet-skills --skill grpc","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FFrameworks\u002FgRPC\u002Fskills\u002Fgrpc\u002FSKILL.md",true,[75,81,85,89,93,97,101,105,109,113,117,123,127,131,135,139,143,147,151,155,159,163,167,171,175,181,185],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"assets\u002Fexamples\u002Fcell_summary_example.md","ASSET","资产文件",8877,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fassets\u002Fexamples\u002Fcell_summary_example.md",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"assets\u002Fexamples\u002Fmedical_structured_abstract.md",12074,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fassets\u002Fexamples\u002Fmedical_structured_abstract.md",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"assets\u002Fexamples\u002Fnature_abstract_examples.md",8954,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fassets\u002Fexamples\u002Fnature_abstract_examples.md",{"path":90,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":91,"sourceHtmlUrl":92},"assets\u002Fexamples\u002Fneurips_introduction_example.md",8779,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fassets\u002Fexamples\u002Fneurips_introduction_example.md",{"path":94,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":95,"sourceHtmlUrl":96},"assets\u002Fgrants\u002Fnih_specific_aims.tex",9082,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fassets\u002Fgrants\u002Fnih_specific_aims.tex",{"path":98,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":99,"sourceHtmlUrl":100},"assets\u002Fgrants\u002Fnsf_proposal_template.tex",13157,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fassets\u002Fgrants\u002Fnsf_proposal_template.tex",{"path":102,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":103,"sourceHtmlUrl":104},"assets\u002Fjournals\u002Fnature_article.tex",6242,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fassets\u002Fjournals\u002Fnature_article.tex",{"path":106,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":107,"sourceHtmlUrl":108},"assets\u002Fjournals\u002Fneurips_article.tex",8925,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fassets\u002Fjournals\u002Fneurips_article.tex",{"path":110,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":111,"sourceHtmlUrl":112},"assets\u002Fjournals\u002Fplos_one.tex",11713,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fassets\u002Fjournals\u002Fplos_one.tex",{"path":114,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":115,"sourceHtmlUrl":116},"assets\u002Fposters\u002Fbeamerposter_academic.tex",8495,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fassets\u002Fposters\u002Fbeamerposter_academic.tex",{"path":118,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":121,"sourceHtmlUrl":122},"manifest.json","REFERENCE","参考文档",74,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FFrameworks\u002FgRPC\u002Fskills\u002Fgrpc\u002Fmanifest.json",{"path":124,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":125,"sourceHtmlUrl":126},"references\u002Fanti-patterns.md",25231,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FFrameworks\u002FgRPC\u002Fskills\u002Fgrpc\u002Freferences\u002Fanti-patterns.md",{"path":128,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":129,"sourceHtmlUrl":130},"references\u002Fcell_press_style.md",14290,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Freferences\u002Fcell_press_style.md",{"path":132,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":133,"sourceHtmlUrl":134},"references\u002Fconferences_formatting.md",17164,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Freferences\u002Fconferences_formatting.md",{"path":136,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":137,"sourceHtmlUrl":138},"references\u002Fcs_conference_style.md",15652,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Freferences\u002Fcs_conference_style.md",{"path":140,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":141,"sourceHtmlUrl":142},"references\u002Fgrants_requirements.md",22873,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Freferences\u002Fgrants_requirements.md",{"path":144,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":145,"sourceHtmlUrl":146},"references\u002Fjournals_formatting.md",17649,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Freferences\u002Fjournals_formatting.md",{"path":148,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":149,"sourceHtmlUrl":150},"references\u002Fmedical_journal_styles.md",15963,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Freferences\u002Fmedical_journal_styles.md",{"path":152,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":153,"sourceHtmlUrl":154},"references\u002Fml_conference_style.md",17838,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Freferences\u002Fml_conference_style.md",{"path":156,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":157,"sourceHtmlUrl":158},"references\u002Fnature_science_style.md",13574,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Freferences\u002Fnature_science_style.md",{"path":160,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":161,"sourceHtmlUrl":162},"references\u002Fpatterns.md",22757,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FFrameworks\u002FgRPC\u002Fskills\u002Fgrpc\u002Freferences\u002Fpatterns.md",{"path":164,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":165,"sourceHtmlUrl":166},"references\u002Fposters_guidelines.md",17113,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Freferences\u002Fposters_guidelines.md",{"path":168,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":169,"sourceHtmlUrl":170},"references\u002Freviewer_expectations.md",15837,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Freferences\u002Freviewer_expectations.md",{"path":172,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":173,"sourceHtmlUrl":174},"references\u002Fvenue_writing_styles.md",12671,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Freferences\u002Fvenue_writing_styles.md",{"path":176,"resourceType":177,"resourceTypeDesc":178,"sizeBytes":179,"sourceHtmlUrl":180},"scripts\u002Fcustomize_template.py","SCRIPT","脚本",6875,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fscripts\u002Fcustomize_template.py",{"path":182,"resourceType":177,"resourceTypeDesc":178,"sizeBytes":183,"sourceHtmlUrl":184},"scripts\u002Fquery_template.py",8959,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fscripts\u002Fquery_template.py",{"path":186,"resourceType":177,"resourceTypeDesc":178,"sizeBytes":187,"sourceHtmlUrl":188},"scripts\u002Fvalidate_format.py",8766,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__K-Dense-AI--venue-templates\u002Fscripts\u002Fvalidate_format.py",[190,225,249,278,288,315],{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":206,"publishedAt":45},"01M6DYQE1Y9FHAQHEDTVFQ3447","xtwitter-scraper","Use XTwitterScraper when a .NET application needs typed access to Xquik's X automation REST API for tweet search, user lookup, posting workflows, extraction jobs, monitors, webhooks, or giveaway draws. USE FOR: integrating the XTwitterScraper NuGet package; reviewing Xquik API client usage; modeling API-key configuration, pagination, binary exports, raw responses, retries, and webhook\u002Fevent flows in .NET. DO NOT USE FOR: unrelated stacks; direct browser automation; generic social-media strategy; or code that does not call Xquik. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FLibraries\u002FXTwitterScraper\u002Fskills\u002Fxtwitter-scraper\u002FSKILL.md",[196,201],{"categoryNo":197,"categoryName":198,"taxonomyType":199,"taxonomyTypeDesc":200},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":202,"categoryName":203,"taxonomyType":204,"taxonomyTypeDesc":205},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[207,208,209,210,38,37,211,212,213,214,215,216,217,218,219,220,221,222,223,224],"xtwitter scraper","browser automation","workflows","run","search","repository","api","Media","api client","access","edit","unrelated","webhooks","files","social","commands","modeling","webhook",{"skillNo":226,"name":227,"nameZh":6,"description":228,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":229,"categories":230,"keywords":237,"publishedAt":45},"01M6DYQ9S4PE1H6G8MCH9T21HR","sep","Use Sep for high-performance separated-value parsing and writing in .NET, including delimiter inference, explicit parser\u002Fwriter options, and low-allocation row\u002Fcolumn workflows. USE FOR: delimited data needs are performance-sensitive and allocation-aware; project needs explicit control over separator inference, escaping, trimming, and header behavior;. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FLibraries\u002FSep\u002Fskills\u002Fsep\u002FSKILL.md",[231,234],{"categoryNo":232,"categoryName":233,"taxonomyType":199,"taxonomyTypeDesc":200},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":235,"categoryName":236,"taxonomyType":204,"taxonomyTypeDesc":205},"01JBSEEDCAT000000000000036","内容创作者",[227,238,239,209,240,210,212,241,242,243,217,244,218,220,25,245,246,247,222,248],"writing","performance","tasks","data","parsing","parser","context","writer","options","project","high-performance",{"skillNo":250,"name":251,"nameZh":6,"description":252,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":253,"categories":254,"keywords":255,"publishedAt":45},"01M6DZS2DNEPXCGGF6SSCW6G5V","webgpu-threejs-tsl","Comprehensive guide for developing WebGPU-enabled Three.js applications using TSL (Three.js Shading Language). Covers WebGPU renderer setup, TSL syntax and node materials, compute shaders, post-processing effects, and WGSL integration. Use this skill when working with Three.js WebGPU, TSL shaders, node materials, or GPU compute in Three.js.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fexternal-sources\u002Fupstreams\u002Fwebgpu-claude-skill\u002Fskills\u002Fwebgpu-threejs-tsl\u002FSKILL.md",[],[256,257,258,259,260,261,262,263,264,265,266,267,31,268,269,270,271,272,273,274,21,275,276,277,20],"webgpu","threejs","webgpu threejs tsl","setup","shaders","gpu","integration","applications","js","node","syntax","guide","language","three","compute","post","processing","with","renderer","materials","wgsl","effects",{"skillNo":279,"name":280,"nameZh":6,"description":281,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":282,"categories":283,"keywords":284,"publishedAt":45},"01M6DZS0BQXW2B56A289XF1X76","roslynk","Use Roslynk for semantic inspection and edits of *.cs, *.razor and *.cshtml solution files.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fexternal-sources\u002Fupstreams\u002Froslynk\u002Fskills\u002Froslynk\u002FSKILL.md",[],[280,31,220,285,286,21,287],"semantic","razor","inspection",{"skillNo":289,"name":290,"nameZh":6,"description":291,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":292,"categories":293,"keywords":294,"publishedAt":45},"01M6DZRW6MEJCVW80K3S4XV60K","system-text-json-net11","Imperative guidance for the System.Text.Json APIs added in .NET 11: the built-in `JsonNamingPolicy.PascalCase` naming policy, and the strongly-typed generic `JsonSerializerOptions.GetTypeInfo` and `JsonSerializerOptions.TryGetTypeInfo` metadata accessors (generic overloads that return a typed `JsonTypeInfo`). USE ONLY when the user is targeting net11.0 or later and needs PascalCase JSON property or dictionary-key names without writing a custom naming policy, a strongly-typed generic `JsonTypeInfo` instead of the non-generic `JsonTypeInfo`, or a no-throw way to probe whether a type's serialization metadata is resolved. DO NOT USE when the target is earlier than net11.0, the requested behavior uses an established pre-net11 naming policy, or the user explicitly selected another JSON library.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fexternal-sources\u002Fupstreams\u002Fdotnet-skills\u002Fplugins\u002Fdotnet11\u002Fskills\u002Fsystem-text-json-net11\u002FSKILL.md",[],[295,296,297,298,238,299,300,301,302,303,304,31,305,306,307,308,25,309,310,311,312,21,313,314,20],"system","json","text","system text json net11","policy","metadata","library","serialization","behavior","user","only","probe","guidance","later","type","dictionary","naming","targeting","custom","generic",{"skillNo":316,"name":317,"nameZh":6,"description":318,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":319,"categories":320,"keywords":323,"publishedAt":45},"01M6DZRRJP3S662NFSG1RSPQQ7","process-api-net11","Provides guidance on the new System.Diagnostics.Process APIs introduced in .NET 11: Process.Run, Process.RunAndCaptureText, Process.StartAndForget, Process.ReadAllText\u002FBytes\u002FLines, KillOnParentExit, InheritedHandles, and StartDetached. USE FOR: starting, orchestrating, or capturing output from external processes in applications targeting net11.0 or later. DO NOT USE FOR: applications targeting .NET 10 or earlier, or basic pre-.NET 11 Process.Start usage without new APIs.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fexternal-sources\u002Fupstreams\u002Fdotnet-skills\u002Fplugins\u002Fdotnet11\u002Fskills\u002Fprocess-api-net11\u002FSKILL.md",[321,322],{"categoryNo":197,"categoryName":198,"taxonomyType":199,"taxonomyTypeDesc":200},{"categoryNo":202,"categoryName":203,"taxonomyType":204,"taxonomyTypeDesc":205},[213,324,325,326,210,327,263,295,31,307,308,25,328,329,330,331,312,21,332],"process","process api net11","diagnostics","start","basic","processes","output","usage","new"]