Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 38 additions & 16 deletions SKILL.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
name: temporal-developer
description: This skill should be used when the user asks to "create a Temporal workflow", "write a Temporal activity", "debug stuck workflow", "fix non-determinism error", "Temporal Python", "Temporal TypeScript", "workflow replay", "activity timeout", "signal workflow", "query workflow", "worker not starting", "activity keeps retrying", "Temporal heartbeat", "continue-as-new", "child workflow", "saga pattern", "workflow versioning", "durable execution", "reliable distributed systems", or mentions Temporal SDK development. Provides multi-language guidance for Python and TypeScript with operational scripts.
description: This skill should be used when the user asks to "create a Temporal workflow", "write a Temporal activity", "debug stuck workflow", "fix non-determinism error", "Temporal Python", "Temporal TypeScript", "Temporal Go", "Temporal Golang", "workflow replay", "activity timeout", "signal workflow", "query workflow", "worker not starting", "activity keeps retrying", "Temporal heartbeat", "continue-as-new", "child workflow", "saga pattern", "workflow versioning", "durable execution", "reliable distributed systems", or mentions Temporal SDK development. Provides multi-language guidance for Python, TypeScript, and Go with operational scripts.
version: 1.0.0
---

# Skill: temporal-developer

## Overview

Temporal is a durable execution platform that makes workflows survive failures automatically. This skill provides guidance for building Temporal applications in Python and TypeScript.
Temporal is a durable execution platform that makes workflows survive failures automatically. This skill provides guidance for building Temporal applications in Python, TypeScript, and Go.

## Core Architecture

Expand Down Expand Up @@ -59,15 +59,17 @@ See `references/core/determinism.md` for detailed explanation.

## Determinism Quick Reference

| Forbidden | Python | TypeScript |
|-----------|--------|------------|
| Current time | `workflow.now()` | `Date.now()` (auto-replaced) |
| Random | `workflow.random()` | `Math.random()` (auto-replaced) |
| UUID | `workflow.uuid4()` | `uuid4()` from workflow |
| Sleep | `asyncio.sleep()` | `sleep()` from workflow |
| Forbidden | Python | TypeScript | Go |
|-----------|--------|------------|-----|
| Current time | `workflow.now()` | `Date.now()` (auto-replaced) | `workflow.Now(ctx)` |
| Random | `workflow.random()` | `Math.random()` (auto-replaced) | `workflow.SideEffect()` |
| UUID | `workflow.uuid4()` | `uuid4()` from workflow | `workflow.SideEffect()` |
| Sleep | `asyncio.sleep()` | `sleep()` from workflow | `workflow.Sleep(ctx, d)` |
| Concurrency | N/A (async) | N/A (async) | `workflow.Go(ctx, fn)` |

**Python sandbox**: Explicit protection, use `workflow.unsafe.imports_passed_through()` for libraries
**TypeScript sandbox**: V8 isolation, automatic replacements, use type-only imports for activities
**Go**: No sandbox - use `workflowcheck` static analysis tool and code review

## Language Selection

Expand All @@ -85,16 +87,24 @@ See `references/core/determinism.md` for detailed explanation.
- Webpack bundling for workflows
- See `references/typescript/typescript.md`

### Go
- Regular functions with `workflow.Context` or `context.Context`
- No sandbox - determinism via code review and static analysis
- Use `workflow.Go()` instead of `go` keyword
- Use `workflow.Channel` instead of Go channels
- Run `workflowcheck ./...` in CI
- See `references/go/go.md`

## Pattern Index

| Pattern | Use Case | Python | TypeScript |
|---------|----------|--------|------------|
| **Signals** | Fire-and-forget events to running workflow | `references/python/patterns.md` | `references/typescript/patterns.md` |
| **Queries** | Read-only state inspection | `references/python/patterns.md` | `references/typescript/patterns.md` |
| **Updates** | Synchronous state modification with response | `references/python/patterns.md` | `references/typescript/patterns.md` |
| **Child Workflows** | Break down large workflows, isolate failures | `references/python/patterns.md` | `references/typescript/patterns.md` |
| **Continue-as-New** | Prevent unbounded history growth | `references/python/advanced-features.md` | `references/typescript/advanced-features.md` |
| **Saga** | Distributed transactions with compensation | `references/python/patterns.md` | `references/typescript/patterns.md` |
| Pattern | Use Case | Python | TypeScript | Go |
|---------|----------|--------|------------|-----|
| **Signals** | Fire-and-forget events to running workflow | `references/python/patterns.md` | `references/typescript/patterns.md` | `references/go/patterns.md` |
| **Queries** | Read-only state inspection | `references/python/patterns.md` | `references/typescript/patterns.md` | `references/go/patterns.md` |
| **Updates** | Synchronous state modification with response | `references/python/patterns.md` | `references/typescript/patterns.md` | `references/go/advanced-features.md` |
| **Child Workflows** | Break down large workflows, isolate failures | `references/python/patterns.md` | `references/typescript/patterns.md` | `references/go/patterns.md` |
| **Continue-as-New** | Prevent unbounded history growth | `references/python/advanced-features.md` | `references/typescript/advanced-features.md` | `references/go/patterns.md` |
| **Saga** | Distributed transactions with compensation | `references/python/patterns.md` | `references/typescript/patterns.md` | `references/go/patterns.md` |

## Troubleshooting Quick Reference

Expand Down Expand Up @@ -187,6 +197,18 @@ Available scripts in `scripts/` for worker and workflow management:
- **`references/typescript/advanced-features.md`** - Cancellation scopes, interceptors
- **`references/typescript/gotchas.md`** - TypeScript-specific anti-patterns

### Go References
- **`references/go/go.md`** - Go SDK overview, quick start
- **`references/go/determinism.md`** - workflowcheck, safe alternatives, concurrency
- **`references/go/patterns.md`** - Go pattern implementations (signals, queries, saga)
- **`references/go/testing.md`** - TestWorkflowEnvironment, mocking, replay testing
- **`references/go/error-handling.md`** - ApplicationError, retry policies, idempotency
- **`references/go/data-handling.md`** - Data converters, protobuf, encryption
- **`references/go/observability.md`** - Logging, metrics, tracing, Search Attributes
- **`references/go/versioning.md`** - GetVersion API, Worker Versioning
- **`references/go/advanced-features.md`** - Continue-as-new, updates, schedules, interceptors
- **`references/go/gotchas.md`** - Go-specific anti-patterns

## Feedback

If 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://github.com/temporalio/skill-temporal-developer/issues/new. Do not file the issue autonomously.
Loading