* Add integrations catalog and per-language integrations/ layout
Adds references/integrations.md as a single catalog table for third-party
plugins and integrations (one row per integration: language, what it does,
link to a reference file). Reference files live under
references/{language}/integrations/.
Pre-seeds the catalog by moving the existing Spring Boot reference into
the new layout (references/java/integrations/spring-boot.md) and updating
its inbound links.
SKILL.md gains a single 3-line "Third-Party Integrations" section pointing
at the catalog so SKILL.md no longer accrues a line per new integration.
Each language entry-point (java.md, python.md) gets a one-line pointer to
the catalog filtered to its language.
This lets open integration PRs (Spring AI, Google ADK, OpenAI Agents
sandbox) be rebased onto a consistent home: move their reference file
into references/{language}/integrations/ and add one row to
references/integrations.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Drop HTML contribution comment from integrations.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Covers auto-discovery mechanics, annotation layering (@WorkflowImpl vs
@ActivityImpl + @Component), WorkflowClient injection, worker lifecycle,
testing strategies, and Spring-specific gotchas. Updates java.md and
testing.md with pointers to the new reference.
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
Add a core reference file covering Priority (keys 1-5, inheritance,
when to use) and Fairness (keys, weights, virtual queues, round-robin
dispatch, rate limiting, weight overrides, enabling, limitations) with
SDK examples for Go, Java, Python, TypeScript, and .NET. Content is
grounded in the official Temporal docs.
Update SKILL.md to proactively surface Fairness when developers are
building multi-tenant applications, before they run into tenant
starvation problems.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* Update README to reflect new plugin packaging
Remove reference to the old agent-skills mono-plugin repo. Link to the
per-harness plugin repos (Claude Code, Cursor, Codex) and present the
standalone installation options after the plugin links.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Mark .NET SDK as supported
.NET support has landed — move from 🚧 to ✅.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
The skill works great as a Claude Code plugin where SKILL.md and references are auto-discovered, butusers may want to upload it to Claude.ai projects instead.
You currently do this by uploaded a .zip file to your Claude.ai UI.
This adds a GitHub Actions workflow that packages the skill and references into a ZIP on every push to main, and creates a GitHub Release when the version in SKILL.md increases.
Users can grab the ZIP from the release and upload it directly to a Claude.ai project without needing to clone the repo.
* Add initial skill for testing, which is simply Steve's skill (#1)
* Add initial skill for testing, which is simply Steve's skill
* Rename skill to 'temporal-dev' and update version
Updated skill name and version for Temporal Python.
* Use claude to merge Steve's, Max's, and Mason's skills. (#2)
* Use claude to merge Steve's, Max's, and Mason's skills. Did a review pass using claude's skill devlopment skills
* Add missing things from Steve
* trigger tweaks
* Add in common gotchas from Johann
* add simple feedback mechanism (#3)
* Change skill name to kebab-case, for compatibility with Amp and Cline (#7)
* Clean up references/core/ai-integration.md
* Clean up references/core/common-gotchas.md
* Clean up references/core/common-gotchas.md
* Clean up references/core/determinism.md
* Clean up references/core/determinism.md
* Update error-reference.md
* Update interactive-workflows.md
* Clean up patterns.md
* Cut shell scripts
* Edit troubleshooting.md
* remove interceptors for now
* remove dynamic workflows
* clarify on heartbeating of async activity completions, and prompt it a bit in relation to signals
* Improve references/python/advanced-features.md
* Use explicit namespace in connect
* remove duplicated content from determinism.md, clean up
* Improve references/python/data-handling.md
* Prefer start_to_close_timeout
* don't explicitely provide defaults for retry policies
* error-handling.md cleanup
* move idempotency patterns to patterns.md
* remove multi-param activities
* small edits
* Unify sandbox stuff into one file
* local activities aren't experimental
* Clean up references/python/sync-vs-async.md
* Cleanup observability.md, remove duplicated search attributes
* Cut otel for now
* cut a lot of duplicate stuff from python gotchas, address comments
* de-duplicate content
* Lots of improvements to testing
* cleanup to top level of skill (like CLI install instructions), and to top-level of python
* Improve patterns.md
* clean up ai-patterns.md
* Update readme with installation instructions
* remove ts directory
* De-couple core from python and TypeScript as much as possible
* Remove TypeScript hints
* add prompting for feedback at startup - wait for ethan on slack channel
* shorten url
* Update slack channel
* Automated pass over on python cleanup & deduplication
* Remove multi-patching from Python, since its obvious, dont waste tokens on it. (#34)
* Add TypeScript (#31)
Adds initial support for TypeScript to the skill
---------
Co-authored-by: James Watkins-Harvey <mjameswh@users.noreply.github.com>
Co-authored-by: Chris Olszewski <chrisdolszewski@gmail.com>
* Fix typos and reference links (#36)
* Fix typos and reference links
* 2 more typo fixes
* quick edit to readme (#37)
* Fix saga compensations to run under cancellation protection (#43)
When a workflow is cancelled mid-saga, compensations must run in a
cancellation-protected scope, otherwise they are immediately cancelled
before they can execute.
- Python: wrap compensation loop in asyncio.shield() so it runs even
when the workflow receives a CancelledError
- TypeScript: wrap compensation loop in CancellationScope.nonCancellable()
so it runs even when the root scope is cancelled (per official docs:
"Cleanup logic must be in a nonCancellable scope")
- TypeScript: also fix compensation registration order — register BEFORE
calling the activity (was already correct in Python)
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
* Update readme for public preview (#45)
* a few more readme tweaks (#46)
* Add MIT License to the project (#47)
* Add Go (supersedes other PR) (#38)
* progress on go
* Go translation workflow completed.
* missed a few spots
* Manual edits
* Address feedback
* Add gotcha about anonymous local activities
* Sample code for payload converter
* clarify sdk protection mechanisms
* Setup CODEOWNERS to AI SDK team (#48)
* Align version number in SKILL.md and plugin.json. (#49)
---------
Co-authored-by: James Watkins-Harvey <mjameswh@users.noreply.github.com>
Co-authored-by: Chris Olszewski <chrisdolszewski@gmail.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
* progress on go
* Go translation workflow completed.
* missed a few spots
* Manual edits
* Address feedback
* Add gotcha about anonymous local activities
* Sample code for payload converter
* clarify sdk protection mechanisms
When a workflow is cancelled mid-saga, compensations must run in a
cancellation-protected scope, otherwise they are immediately cancelled
before they can execute.
- Python: wrap compensation loop in asyncio.shield() so it runs even
when the workflow receives a CancelledError
- TypeScript: wrap compensation loop in CancellationScope.nonCancellable()
so it runs even when the root scope is cancelled (per official docs:
"Cleanup logic must be in a nonCancellable scope")
- TypeScript: also fix compensation registration order — register BEFORE
calling the activity (was already correct in Python)
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>