[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-temporal-temporal-workertuning":3,"mdc--7tugrk-key":43,"related-repo-temporal-temporal-workertuning":692,"related-org-temporal-temporal-workertuning":705},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":33,"repoUrl":34,"updatedAt":35,"license":36,"forks":37,"topics":38,"repo":39,"sourceUrl":34,"mdContent":42},"temporal-workertuning","tune Temporal worker performance","Tune Temporal Worker performance across Go, Java, TypeScript, Python, and .NET. Use when the user asks to \"configure slot suppliers\", \"set up a worker tuner\", \"enable poller autoscaling\", \"tune worker cache\", \"fix high schedule-to-start latency\", \"diagnose worker bottlenecks\", \"right-size workers for production\", \"choose between fixed-size and resource-based slot suppliers\", \"configure maxConcurrentWorkflowTaskExecutionSize\", \"set up resource-based tuner\", \"interpret worker_task_slots_available\", \"reduce schedule_to_start_latency\", \"scale worker fleet\", \"configure sticky cache\", or mentions Worker tuning, Worker performance, slot suppliers, composite tuners, or poller autoscaling.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"temporal","Temporal","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftemporal.png","temporalio",[13,17,20,23,26,27,30],{"name":14,"slug":15,"type":16},"Performance","performance","tag",{"name":18,"slug":19,"type":16},"Java","java",{"name":21,"slug":22,"type":16},".NET","net",{"name":24,"slug":25,"type":16},"TypeScript","typescript",{"name":9,"slug":8,"type":16},{"name":28,"slug":29,"type":16},"Python","python",{"name":31,"slug":32,"type":16},"Go","go",2,"https:\u002F\u002Fgithub.com\u002Ftemporalio\u002Fskill-temporal-workertuning","2026-06-12T08:06:29.755112",null,0,[],{"repoUrl":34,"stars":33,"forks":37,"topics":40,"description":41},[],"Temporal Worker tuning skill — slot suppliers, worker tuners, poller autoscaling, metrics, troubleshooting, and tuning recipes across Go, Java, TypeScript, Python, and .NET SDKs","---\nname: temporal-workertuning\ndescription: Tune Temporal Worker performance across Go, Java, TypeScript, Python, and .NET. Use when the user asks to \"configure slot suppliers\", \"set up a worker tuner\", \"enable poller autoscaling\", \"tune worker cache\", \"fix high schedule-to-start latency\", \"diagnose worker bottlenecks\", \"right-size workers for production\", \"choose between fixed-size and resource-based slot suppliers\", \"configure maxConcurrentWorkflowTaskExecutionSize\", \"set up resource-based tuner\", \"interpret worker_task_slots_available\", \"reduce schedule_to_start_latency\", \"scale worker fleet\", \"configure sticky cache\", or mentions Worker tuning, Worker performance, slot suppliers, composite tuners, or poller autoscaling.\nversion: 0.1.0\n---\n\n# Skill: temporal-workertuning\n\n## Overview\n\nTemporal Workers poll Task Queues, execute Workflow and Activity Tasks, and report results back to the Temporal Service. Worker performance depends on three resource dimensions: **compute** (concurrent task execution slots), **memory** (workflow cache), and **IO** (pollers and network). This skill provides guidance for tuning all three dimensions across Go, Java, TypeScript, Python, and .NET SDKs.\n\nThe key abstractions are **Slot Suppliers** (which control how many tasks a Worker accepts) and **Worker Tuners** (which assign slot suppliers to different task types). Workers can use fixed-size suppliers for predictable workloads, resource-based suppliers for automatic adjustment, or custom suppliers for full control.\n\n## When to Use This Skill\n\n| User intent | Start here |\n|---|---|\n| Understand tuning concepts (slots, suppliers, tuners) | [concepts.md](references\u002Fcore\u002Fconcepts.md) |\n| Look up SDK default values for Worker options | [configuration-defaults.md](references\u002Fcore\u002Fconfiguration-defaults.md) |\n| Configure a Worker tuner or poller autoscaling (code) | [tuner-examples.md](references\u002Fcore\u002Ftuner-examples.md) |\n| Set up monitoring, interpret metrics, check alert thresholds | [metrics-and-monitoring.md](references\u002Fcore\u002Fmetrics-and-monitoring.md) |\n| Diagnose a performance problem (high latency, slot depletion) | [troubleshooting.md](references\u002Fcore\u002Ftroubleshooting.md) |\n| Follow a step-by-step tuning playbook | [recipes.md](references\u002Fcore\u002Frecipes.md) |\n| Prepare Workers for production | [recipes.md](references\u002Fcore\u002Frecipes.md) (Recipe 1: Initial Setup Checklist) |\n| Decide between fixed-size and resource-based suppliers | [configuration-defaults.md](references\u002Fcore\u002Fconfiguration-defaults.md#choosing-slot-supplier-types) |\n| Scale a Worker fleet up or down | [recipes.md](references\u002Fcore\u002Frecipes.md) (Recipe 5: Scaling Decisions) |\n\n## Key Constraints\n\n- **Worker tuners supersede `maxConcurrentXXXTask` style options.** Using both causes an error at Worker initialization time.\n- **`worker_task_slots_available` only works with fixed-size slot suppliers.** Use `worker_task_slots_used` for resource-based suppliers.\n- **`PollerBehaviorAutoscaling` requires Temporal Server v1.28.0 or later.**\n- **`maxWorkflowThreadCount` and `workflow_active_thread_count` are Java SDK only.**\n- **Resource-based suppliers do not guarantee targets will not be exceeded.** Resources consumed during a task cannot be known ahead of time.\n\n## Reference Files\n\n- **[`references\u002Fcore\u002Fconcepts.md`](references\u002Fcore\u002Fconcepts.md)** — Task slots, slot suppliers (fixed-size, resource-based, custom), worker tuners, slot permits, slot throttling (`rampThrottle`), eager task execution.\n- **[`references\u002Fcore\u002Fconfiguration-defaults.md`](references\u002Fcore\u002Fconfiguration-defaults.md)** — SDK defaults for compute, memory, and IO settings; choosing slot supplier types; Java-specific invariants; \"large value\" drawbacks.\n- **[`references\u002Fcore\u002Ftuner-examples.md`](references\u002Fcore\u002Ftuner-examples.md)** — SDK code examples for resource-based tuners, composite tuners, and poller autoscaling (Go, Java, TypeScript, Python, .NET, Ruby).\n- **[`references\u002Fcore\u002Fmetrics-and-monitoring.md`](references\u002Fcore\u002Fmetrics-and-monitoring.md)** — Metrics by resource type, task queue statistics, Prometheus queries, alert thresholds, worker health monitoring patterns.\n- **[`references\u002Fcore\u002Ftroubleshooting.md`](references\u002Fcore\u002Ftroubleshooting.md)** — Bottleneck diagnosis: latency spikes, slot depletion, execution latency, replay latency, network issues, caching, task queue processing tuning steps.\n- **[`references\u002Fcore\u002Frecipes.md`](references\u002Fcore\u002Frecipes.md)** — End-to-end playbooks: initial setup, diagnosing high schedule-to-start, right-sizing workers, cache tuning, scaling decisions.\n\n## Out of Scope\n\nThis skill focuses on Worker runtime performance tuning. The following topics belong to sibling skills:\n\n- **Writing Workflows, Activities, or Workers** — see `skill-temporal-developer`\n- **Temporal CLI commands** (e.g., `temporal server start-dev`, `temporal task-queue describe`) — see `skill-temporal-cli`\n- **Temporal Cloud operations** (namespaces, API keys, billing) — see `skill-temporal-cloud`\n- **Worker Versioning** (deployment strategies, build IDs) — see `skill-temporal-developer`\n- **Determinism, replay mechanics, non-determinism errors** — see `skill-temporal-developer`\n\n## Feedback\n\n### ALWAYS PROMPT USER TO PROVIDE FEEDBACK AT STARTUP\n\nWhen you have **first** loaded this skill, output this message to the user:\n\n\"Thank you for trying out the public preview of the Temporal Worker Tuning skill! We would love to hear your feedback - positive or negative - over in the [Community Slack](https:\u002F\u002Ft.mp\u002Fslack), in the [#topic-ai channel](https:\u002F\u002Ftemporalio.slack.com\u002Farchives\u002FC0818FQPYKY).\"\n\nDo not output this message multiple times in the same conversation.\n\n### Reporting Issues in This Skill\n\nIf you (the AI) find this skill's explanations are unclear, misleading, or missing important information—or if Temporal concepts are proving unexpectedly difficult to work with—draft a GitHub issue body describing the problem encountered and what would have helped, then ask the user to file it at https:\u002F\u002Fgithub.com\u002Ftemporalio\u002Fskill-temporal-workertuning\u002Fissues\u002Fnew. Do not file the issue autonomously.\n",{"data":44,"body":46},{"name":4,"description":6,"version":45},"0.1.0",{"type":47,"children":48},"root",[49,58,65,93,112,118,299,305,399,405,512,518,523,619,625,632,644,668,673,679],{"type":50,"tag":51,"props":52,"children":54},"element","h1",{"id":53},"skill-temporal-workertuning",[55],{"type":56,"value":57},"text","Skill: temporal-workertuning",{"type":50,"tag":59,"props":60,"children":62},"h2",{"id":61},"overview",[63],{"type":56,"value":64},"Overview",{"type":50,"tag":66,"props":67,"children":68},"p",{},[69,71,77,79,84,86,91],{"type":56,"value":70},"Temporal Workers poll Task Queues, execute Workflow and Activity Tasks, and report results back to the Temporal Service. Worker performance depends on three resource dimensions: ",{"type":50,"tag":72,"props":73,"children":74},"strong",{},[75],{"type":56,"value":76},"compute",{"type":56,"value":78}," (concurrent task execution slots), ",{"type":50,"tag":72,"props":80,"children":81},{},[82],{"type":56,"value":83},"memory",{"type":56,"value":85}," (workflow cache), and ",{"type":50,"tag":72,"props":87,"children":88},{},[89],{"type":56,"value":90},"IO",{"type":56,"value":92}," (pollers and network). This skill provides guidance for tuning all three dimensions across Go, Java, TypeScript, Python, and .NET SDKs.",{"type":50,"tag":66,"props":94,"children":95},{},[96,98,103,105,110],{"type":56,"value":97},"The key abstractions are ",{"type":50,"tag":72,"props":99,"children":100},{},[101],{"type":56,"value":102},"Slot Suppliers",{"type":56,"value":104}," (which control how many tasks a Worker accepts) and ",{"type":50,"tag":72,"props":106,"children":107},{},[108],{"type":56,"value":109},"Worker Tuners",{"type":56,"value":111}," (which assign slot suppliers to different task types). Workers can use fixed-size suppliers for predictable workloads, resource-based suppliers for automatic adjustment, or custom suppliers for full control.",{"type":50,"tag":59,"props":113,"children":115},{"id":114},"when-to-use-this-skill",[116],{"type":56,"value":117},"When to Use This Skill",{"type":50,"tag":119,"props":120,"children":121},"table",{},[122,141],{"type":50,"tag":123,"props":124,"children":125},"thead",{},[126],{"type":50,"tag":127,"props":128,"children":129},"tr",{},[130,136],{"type":50,"tag":131,"props":132,"children":133},"th",{},[134],{"type":56,"value":135},"User intent",{"type":50,"tag":131,"props":137,"children":138},{},[139],{"type":56,"value":140},"Start here",{"type":50,"tag":142,"props":143,"children":144},"tbody",{},[145,164,181,198,215,232,249,266,282],{"type":50,"tag":127,"props":146,"children":147},{},[148,154],{"type":50,"tag":149,"props":150,"children":151},"td",{},[152],{"type":56,"value":153},"Understand tuning concepts (slots, suppliers, tuners)",{"type":50,"tag":149,"props":155,"children":156},{},[157],{"type":50,"tag":158,"props":159,"children":161},"a",{"href":160},"references\u002Fcore\u002Fconcepts.md",[162],{"type":56,"value":163},"concepts.md",{"type":50,"tag":127,"props":165,"children":166},{},[167,172],{"type":50,"tag":149,"props":168,"children":169},{},[170],{"type":56,"value":171},"Look up SDK default values for Worker options",{"type":50,"tag":149,"props":173,"children":174},{},[175],{"type":50,"tag":158,"props":176,"children":178},{"href":177},"references\u002Fcore\u002Fconfiguration-defaults.md",[179],{"type":56,"value":180},"configuration-defaults.md",{"type":50,"tag":127,"props":182,"children":183},{},[184,189],{"type":50,"tag":149,"props":185,"children":186},{},[187],{"type":56,"value":188},"Configure a Worker tuner or poller autoscaling (code)",{"type":50,"tag":149,"props":190,"children":191},{},[192],{"type":50,"tag":158,"props":193,"children":195},{"href":194},"references\u002Fcore\u002Ftuner-examples.md",[196],{"type":56,"value":197},"tuner-examples.md",{"type":50,"tag":127,"props":199,"children":200},{},[201,206],{"type":50,"tag":149,"props":202,"children":203},{},[204],{"type":56,"value":205},"Set up monitoring, interpret metrics, check alert thresholds",{"type":50,"tag":149,"props":207,"children":208},{},[209],{"type":50,"tag":158,"props":210,"children":212},{"href":211},"references\u002Fcore\u002Fmetrics-and-monitoring.md",[213],{"type":56,"value":214},"metrics-and-monitoring.md",{"type":50,"tag":127,"props":216,"children":217},{},[218,223],{"type":50,"tag":149,"props":219,"children":220},{},[221],{"type":56,"value":222},"Diagnose a performance problem (high latency, slot depletion)",{"type":50,"tag":149,"props":224,"children":225},{},[226],{"type":50,"tag":158,"props":227,"children":229},{"href":228},"references\u002Fcore\u002Ftroubleshooting.md",[230],{"type":56,"value":231},"troubleshooting.md",{"type":50,"tag":127,"props":233,"children":234},{},[235,240],{"type":50,"tag":149,"props":236,"children":237},{},[238],{"type":56,"value":239},"Follow a step-by-step tuning playbook",{"type":50,"tag":149,"props":241,"children":242},{},[243],{"type":50,"tag":158,"props":244,"children":246},{"href":245},"references\u002Fcore\u002Frecipes.md",[247],{"type":56,"value":248},"recipes.md",{"type":50,"tag":127,"props":250,"children":251},{},[252,257],{"type":50,"tag":149,"props":253,"children":254},{},[255],{"type":56,"value":256},"Prepare Workers for production",{"type":50,"tag":149,"props":258,"children":259},{},[260,264],{"type":50,"tag":158,"props":261,"children":262},{"href":245},[263],{"type":56,"value":248},{"type":56,"value":265}," (Recipe 1: Initial Setup Checklist)",{"type":50,"tag":127,"props":267,"children":268},{},[269,274],{"type":50,"tag":149,"props":270,"children":271},{},[272],{"type":56,"value":273},"Decide between fixed-size and resource-based suppliers",{"type":50,"tag":149,"props":275,"children":276},{},[277],{"type":50,"tag":158,"props":278,"children":280},{"href":279},"references\u002Fcore\u002Fconfiguration-defaults.md#choosing-slot-supplier-types",[281],{"type":56,"value":180},{"type":50,"tag":127,"props":283,"children":284},{},[285,290],{"type":50,"tag":149,"props":286,"children":287},{},[288],{"type":56,"value":289},"Scale a Worker fleet up or down",{"type":50,"tag":149,"props":291,"children":292},{},[293,297],{"type":50,"tag":158,"props":294,"children":295},{"href":245},[296],{"type":56,"value":248},{"type":56,"value":298}," (Recipe 5: Scaling Decisions)",{"type":50,"tag":59,"props":300,"children":302},{"id":301},"key-constraints",[303],{"type":56,"value":304},"Key Constraints",{"type":50,"tag":306,"props":307,"children":308},"ul",{},[309,329,353,367,389],{"type":50,"tag":310,"props":311,"children":312},"li",{},[313,327],{"type":50,"tag":72,"props":314,"children":315},{},[316,318,325],{"type":56,"value":317},"Worker tuners supersede ",{"type":50,"tag":319,"props":320,"children":322},"code",{"className":321},[],[323],{"type":56,"value":324},"maxConcurrentXXXTask",{"type":56,"value":326}," style options.",{"type":56,"value":328}," Using both causes an error at Worker initialization time.",{"type":50,"tag":310,"props":330,"children":331},{},[332,343,345,351],{"type":50,"tag":72,"props":333,"children":334},{},[335,341],{"type":50,"tag":319,"props":336,"children":338},{"className":337},[],[339],{"type":56,"value":340},"worker_task_slots_available",{"type":56,"value":342}," only works with fixed-size slot suppliers.",{"type":56,"value":344}," Use ",{"type":50,"tag":319,"props":346,"children":348},{"className":347},[],[349],{"type":56,"value":350},"worker_task_slots_used",{"type":56,"value":352}," for resource-based suppliers.",{"type":50,"tag":310,"props":354,"children":355},{},[356],{"type":50,"tag":72,"props":357,"children":358},{},[359,365],{"type":50,"tag":319,"props":360,"children":362},{"className":361},[],[363],{"type":56,"value":364},"PollerBehaviorAutoscaling",{"type":56,"value":366}," requires Temporal Server v1.28.0 or later.",{"type":50,"tag":310,"props":368,"children":369},{},[370],{"type":50,"tag":72,"props":371,"children":372},{},[373,379,381,387],{"type":50,"tag":319,"props":374,"children":376},{"className":375},[],[377],{"type":56,"value":378},"maxWorkflowThreadCount",{"type":56,"value":380}," and ",{"type":50,"tag":319,"props":382,"children":384},{"className":383},[],[385],{"type":56,"value":386},"workflow_active_thread_count",{"type":56,"value":388}," are Java SDK only.",{"type":50,"tag":310,"props":390,"children":391},{},[392,397],{"type":50,"tag":72,"props":393,"children":394},{},[395],{"type":56,"value":396},"Resource-based suppliers do not guarantee targets will not be exceeded.",{"type":56,"value":398}," Resources consumed during a task cannot be known ahead of time.",{"type":50,"tag":59,"props":400,"children":402},{"id":401},"reference-files",[403],{"type":56,"value":404},"Reference Files",{"type":50,"tag":306,"props":406,"children":407},{},[408,432,448,464,480,496],{"type":50,"tag":310,"props":409,"children":410},{},[411,422,424,430],{"type":50,"tag":72,"props":412,"children":413},{},[414],{"type":50,"tag":158,"props":415,"children":416},{"href":160},[417],{"type":50,"tag":319,"props":418,"children":420},{"className":419},[],[421],{"type":56,"value":160},{"type":56,"value":423}," — Task slots, slot suppliers (fixed-size, resource-based, custom), worker tuners, slot permits, slot throttling (",{"type":50,"tag":319,"props":425,"children":427},{"className":426},[],[428],{"type":56,"value":429},"rampThrottle",{"type":56,"value":431},"), eager task execution.",{"type":50,"tag":310,"props":433,"children":434},{},[435,446],{"type":50,"tag":72,"props":436,"children":437},{},[438],{"type":50,"tag":158,"props":439,"children":440},{"href":177},[441],{"type":50,"tag":319,"props":442,"children":444},{"className":443},[],[445],{"type":56,"value":177},{"type":56,"value":447}," — SDK defaults for compute, memory, and IO settings; choosing slot supplier types; Java-specific invariants; \"large value\" drawbacks.",{"type":50,"tag":310,"props":449,"children":450},{},[451,462],{"type":50,"tag":72,"props":452,"children":453},{},[454],{"type":50,"tag":158,"props":455,"children":456},{"href":194},[457],{"type":50,"tag":319,"props":458,"children":460},{"className":459},[],[461],{"type":56,"value":194},{"type":56,"value":463}," — SDK code examples for resource-based tuners, composite tuners, and poller autoscaling (Go, Java, TypeScript, Python, .NET, Ruby).",{"type":50,"tag":310,"props":465,"children":466},{},[467,478],{"type":50,"tag":72,"props":468,"children":469},{},[470],{"type":50,"tag":158,"props":471,"children":472},{"href":211},[473],{"type":50,"tag":319,"props":474,"children":476},{"className":475},[],[477],{"type":56,"value":211},{"type":56,"value":479}," — Metrics by resource type, task queue statistics, Prometheus queries, alert thresholds, worker health monitoring patterns.",{"type":50,"tag":310,"props":481,"children":482},{},[483,494],{"type":50,"tag":72,"props":484,"children":485},{},[486],{"type":50,"tag":158,"props":487,"children":488},{"href":228},[489],{"type":50,"tag":319,"props":490,"children":492},{"className":491},[],[493],{"type":56,"value":228},{"type":56,"value":495}," — Bottleneck diagnosis: latency spikes, slot depletion, execution latency, replay latency, network issues, caching, task queue processing tuning steps.",{"type":50,"tag":310,"props":497,"children":498},{},[499,510],{"type":50,"tag":72,"props":500,"children":501},{},[502],{"type":50,"tag":158,"props":503,"children":504},{"href":245},[505],{"type":50,"tag":319,"props":506,"children":508},{"className":507},[],[509],{"type":56,"value":245},{"type":56,"value":511}," — End-to-end playbooks: initial setup, diagnosing high schedule-to-start, right-sizing workers, cache tuning, scaling decisions.",{"type":50,"tag":59,"props":513,"children":515},{"id":514},"out-of-scope",[516],{"type":56,"value":517},"Out of Scope",{"type":50,"tag":66,"props":519,"children":520},{},[521],{"type":56,"value":522},"This skill focuses on Worker runtime performance tuning. The following topics belong to sibling skills:",{"type":50,"tag":306,"props":524,"children":525},{},[526,542,574,590,605],{"type":50,"tag":310,"props":527,"children":528},{},[529,534,536],{"type":50,"tag":72,"props":530,"children":531},{},[532],{"type":56,"value":533},"Writing Workflows, Activities, or Workers",{"type":56,"value":535}," — see ",{"type":50,"tag":319,"props":537,"children":539},{"className":538},[],[540],{"type":56,"value":541},"skill-temporal-developer",{"type":50,"tag":310,"props":543,"children":544},{},[545,550,552,558,560,566,568],{"type":50,"tag":72,"props":546,"children":547},{},[548],{"type":56,"value":549},"Temporal CLI commands",{"type":56,"value":551}," (e.g., ",{"type":50,"tag":319,"props":553,"children":555},{"className":554},[],[556],{"type":56,"value":557},"temporal server start-dev",{"type":56,"value":559},", ",{"type":50,"tag":319,"props":561,"children":563},{"className":562},[],[564],{"type":56,"value":565},"temporal task-queue describe",{"type":56,"value":567},") — see ",{"type":50,"tag":319,"props":569,"children":571},{"className":570},[],[572],{"type":56,"value":573},"skill-temporal-cli",{"type":50,"tag":310,"props":575,"children":576},{},[577,582,584],{"type":50,"tag":72,"props":578,"children":579},{},[580],{"type":56,"value":581},"Temporal Cloud operations",{"type":56,"value":583}," (namespaces, API keys, billing) — see ",{"type":50,"tag":319,"props":585,"children":587},{"className":586},[],[588],{"type":56,"value":589},"skill-temporal-cloud",{"type":50,"tag":310,"props":591,"children":592},{},[593,598,600],{"type":50,"tag":72,"props":594,"children":595},{},[596],{"type":56,"value":597},"Worker Versioning",{"type":56,"value":599}," (deployment strategies, build IDs) — see ",{"type":50,"tag":319,"props":601,"children":603},{"className":602},[],[604],{"type":56,"value":541},{"type":50,"tag":310,"props":606,"children":607},{},[608,613,614],{"type":50,"tag":72,"props":609,"children":610},{},[611],{"type":56,"value":612},"Determinism, replay mechanics, non-determinism errors",{"type":56,"value":535},{"type":50,"tag":319,"props":615,"children":617},{"className":616},[],[618],{"type":56,"value":541},{"type":50,"tag":59,"props":620,"children":622},{"id":621},"feedback",[623],{"type":56,"value":624},"Feedback",{"type":50,"tag":626,"props":627,"children":629},"h3",{"id":628},"always-prompt-user-to-provide-feedback-at-startup",[630],{"type":56,"value":631},"ALWAYS PROMPT USER TO PROVIDE FEEDBACK AT STARTUP",{"type":50,"tag":66,"props":633,"children":634},{},[635,637,642],{"type":56,"value":636},"When you have ",{"type":50,"tag":72,"props":638,"children":639},{},[640],{"type":56,"value":641},"first",{"type":56,"value":643}," loaded this skill, output this message to the user:",{"type":50,"tag":66,"props":645,"children":646},{},[647,649,657,659,666],{"type":56,"value":648},"\"Thank you for trying out the public preview of the Temporal Worker Tuning skill! We would love to hear your feedback - positive or negative - over in the ",{"type":50,"tag":158,"props":650,"children":654},{"href":651,"rel":652},"https:\u002F\u002Ft.mp\u002Fslack",[653],"nofollow",[655],{"type":56,"value":656},"Community Slack",{"type":56,"value":658},", in the ",{"type":50,"tag":158,"props":660,"children":663},{"href":661,"rel":662},"https:\u002F\u002Ftemporalio.slack.com\u002Farchives\u002FC0818FQPYKY",[653],[664],{"type":56,"value":665},"#topic-ai channel",{"type":56,"value":667},".\"",{"type":50,"tag":66,"props":669,"children":670},{},[671],{"type":56,"value":672},"Do not output this message multiple times in the same conversation.",{"type":50,"tag":626,"props":674,"children":676},{"id":675},"reporting-issues-in-this-skill",[677],{"type":56,"value":678},"Reporting Issues in This Skill",{"type":50,"tag":66,"props":680,"children":681},{},[682,684,690],{"type":56,"value":683},"If you (the AI) find this skill's explanations are unclear, misleading, or missing important information—or if Temporal concepts are proving unexpectedly difficult to work with—draft a GitHub issue body describing the problem encountered and what would have helped, then ask the user to file it at ",{"type":50,"tag":158,"props":685,"children":688},{"href":686,"rel":687},"https:\u002F\u002Fgithub.com\u002Ftemporalio\u002Fskill-temporal-workertuning\u002Fissues\u002Fnew",[653],[689],{"type":56,"value":686},{"type":56,"value":691},". Do not file the issue autonomously.",{"items":693,"total":704},[694],{"slug":4,"name":4,"fn":5,"description":6,"org":695,"tags":696,"stars":33,"repoUrl":34,"updatedAt":35},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[697,698,699,700,701,702,703],{"name":21,"slug":22,"type":16},{"name":31,"slug":32,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":28,"slug":29,"type":16},{"name":9,"slug":8,"type":16},{"name":24,"slug":25,"type":16},1,{"items":706,"total":740},[707,726,743,761,771],{"slug":708,"name":708,"fn":709,"description":710,"org":711,"tags":712,"stars":723,"repoUrl":724,"updatedAt":725},"temporal-developer","develop Temporal workflows and activities","Develop, debug, and manage Temporal applications across Python, TypeScript, Go, Java, .NET, Ruby, and Rust. Use when the user is building workflows, activities, or workers with a Temporal SDK, debugging issues like non-determinism errors, stuck workflows, or activity retries, using Temporal CLI, Temporal Server, or Temporal Cloud, or working with durable execution concepts like signals, queries, heartbeats, versioning, continue-as-new, child workflows, or saga patterns. Also use when the user mentions \"run a Temporal workflow from the CLI\", \"start a dev server\", \"run temporal server start-dev\", \"temporal workflow start\", \"temporal workflow execute\", \"temporal workflow signal\", \"temporal workflow query\", \"temporal workflow update\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[713,716,719,720],{"name":714,"slug":715,"type":16},"Backend","backend",{"name":717,"slug":718,"type":16},"Debugging","debugging",{"name":9,"slug":8,"type":16},{"name":721,"slug":722,"type":16},"Workflow Automation","workflow-automation",201,"https:\u002F\u002Fgithub.com\u002Ftemporalio\u002Fskill-temporal-developer","2026-04-06T18:54:23.154697",{"slug":727,"name":727,"fn":728,"description":729,"org":730,"tags":731,"stars":740,"repoUrl":741,"updatedAt":742},"temporal-cloud","troubleshoot Temporal Cloud connections","Fix Temporal Cloud connection, auth, and config problems. Use when users hit login failures, can't connect to Cloud, get x509\u002FTLS errors, have namespace or endpoint mismatches, paste broken SDK connection snippets, are confused about which endpoint to use, see \"no pollers\" or RESOURCE_EXHAUSTED, struggle with PrivateLink\u002FPSC, or need help setting up a new namespace. Also use for HA namespace failover and DNS issues. Not for worker performance tuning or scaling.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[732,735,736,739],{"name":733,"slug":734,"type":16},"Cloud","cloud",{"name":717,"slug":718,"type":16},{"name":737,"slug":738,"type":16},"Security","security",{"name":9,"slug":8,"type":16},5,"https:\u002F\u002Fgithub.com\u002Ftemporalio\u002Fskill-temporal-cloud","2026-04-06T18:54:24.441947",{"slug":744,"name":744,"fn":745,"description":746,"org":747,"tags":748,"stars":758,"repoUrl":759,"updatedAt":760},"temporal-workflow-design-critic","audit Temporal workflow designs","Critique, audit, or score a Temporal workflow design for correctness, production readiness, and best-practice compliance. Use when asked to review a Temporal architecture, evaluate whether a design is production ready, identify anti-patterns or risks, assess Temporal fitness for a use case, or give a design a thumbs up\u002Fdown. Not for writing or debugging Temporal code — use temporal-developer for that.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[749,752,755],{"name":750,"slug":751,"type":16},"Architecture","architecture",{"name":753,"slug":754,"type":16},"Code Review","code-review",{"name":756,"slug":757,"type":16},"Engineering","engineering",4,"https:\u002F\u002Fgithub.com\u002Ftemporalio\u002Fskill-temporal-design","2026-05-23T06:01:03.120182",{"slug":4,"name":4,"fn":5,"description":6,"org":762,"tags":763,"stars":33,"repoUrl":34,"updatedAt":35},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[764,765,766,767,768,769,770],{"name":21,"slug":22,"type":16},{"name":31,"slug":32,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":28,"slug":29,"type":16},{"name":9,"slug":8,"type":16},{"name":24,"slug":25,"type":16},{"slug":772,"name":772,"fn":773,"description":774,"org":775,"tags":776,"stars":704,"repoUrl":789,"updatedAt":790},"temporal-observability","collect and query Temporal metrics","Instrument, collect, query, and alert on Temporal metrics across Temporal Cloud and self-hosted deployments. Covers Cloud OpenMetrics endpoint, SDK metrics, third-party integrations (Datadog, Grafana, New Relic, Prometheus, OTel Collector, ClickStack), worker fleet health, and PromQL v0-to-v1 migration. Use when the user mentions: \"Temporal metrics\", \"Temporal monitoring\", \"Temporal observability\", \"Temporal alerting\", \"Datadog Temporal\", \"Grafana Temporal\", \"Cloud metrics endpoint\", \"metrics.temporal.io\", \"SDK metrics\", \"worker backlog\", \"scrape Temporal metrics\", \"OpenMetrics\", \"PromQL migration\". Not for writing Workflows\u002FActivities (temporal-developer), Worker tuning (temporal-workertuning), or Cloud admin (temporal-cloud\u002Ftemporal-ops).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[777,780,783,786],{"name":778,"slug":779,"type":16},"Datadog","datadog",{"name":781,"slug":782,"type":16},"Metrics","metrics",{"name":784,"slug":785,"type":16},"Monitoring","monitoring",{"name":787,"slug":788,"type":16},"Observability","observability","https:\u002F\u002Fgithub.com\u002Ftemporalio\u002Fskill-temporal-observability","2026-06-09T07:35:44.598916"]