Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
0589a99
Clean up references/core/ai-integration.md
donald-pinckney Feb 13, 2026
22d90c5
Clean up references/core/common-gotchas.md
donald-pinckney Feb 13, 2026
a32152b
Clean up references/core/common-gotchas.md
donald-pinckney Feb 13, 2026
9ce8441
Clean up references/core/determinism.md
donald-pinckney Feb 13, 2026
519b2ea
Clean up references/core/determinism.md
donald-pinckney Feb 13, 2026
49c449a
Update error-reference.md
donald-pinckney Feb 17, 2026
d2a4af3
Update interactive-workflows.md
donald-pinckney Feb 17, 2026
e62865a
Clean up patterns.md
donald-pinckney Feb 17, 2026
324b532
Cut shell scripts
donald-pinckney Feb 17, 2026
5d3f79f
Edit troubleshooting.md
donald-pinckney Feb 17, 2026
19a9589
remove interceptors for now
donald-pinckney Feb 18, 2026
761b220
remove dynamic workflows
donald-pinckney Feb 18, 2026
4d032f4
clarify on heartbeating of async activity completions, and prompt it …
donald-pinckney Feb 18, 2026
8d77164
Improve references/python/advanced-features.md
donald-pinckney Feb 18, 2026
ceb40a0
Use explicit namespace in connect
donald-pinckney Feb 18, 2026
c61bc64
remove duplicated content from determinism.md, clean up
donald-pinckney Feb 18, 2026
236eab2
Improve references/python/data-handling.md
donald-pinckney Feb 18, 2026
43b1ed7
Prefer start_to_close_timeout
donald-pinckney Feb 18, 2026
cc593e3
don't explicitely provide defaults for retry policies
donald-pinckney Feb 18, 2026
24f0e3e
error-handling.md cleanup
donald-pinckney Feb 18, 2026
18cb1e8
move idempotency patterns to patterns.md
donald-pinckney Feb 18, 2026
03e8706
remove multi-param activities
donald-pinckney Feb 18, 2026
3f7dc9d
small edits
donald-pinckney Feb 18, 2026
9163fa2
Unify sandbox stuff into one file
donald-pinckney Feb 18, 2026
4c288cf
local activities aren't experimental
donald-pinckney Feb 18, 2026
b8b47ca
Clean up references/python/sync-vs-async.md
donald-pinckney Feb 18, 2026
9bc285f
Cleanup observability.md, remove duplicated search attributes
donald-pinckney Feb 19, 2026
f455d39
Cut otel for now
donald-pinckney Feb 19, 2026
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
Prev Previous commit
Next Next commit
Cut shell scripts
  • Loading branch information
donald-pinckney committed Feb 17, 2026
commit 324b532fefd43de8d1c1d38d73c98ab1d2fabf01
26 changes: 1 addition & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ A comprehensive skill for building Temporal applications in Python and TypeScrip
This skill provides multi-language guidance for Temporal development, combining:
- **Core concepts** shared across languages (determinism, patterns, versioning)
- **Language-specific references** for Python and TypeScript
- **Operational scripts** for worker and workflow management
- **AI/LLM integration patterns** for building durable AI applications

## Structure
Expand All @@ -23,7 +22,7 @@ temporal-dev/
│ │ ├── troubleshooting.md # Decision trees, recovery procedures
│ │ ├── error-reference.md # Common error types, workflow status
│ │ ├── interactive-workflows.md # Testing signals, updates, queries
│ │ ├── tool-reference.md # Script options, worker management
│ │ ├── dev-management.md # Dev cycle & management of server and workers
│ │ ├── logs.md # Log file locations, search patterns
│ │ └── ai-integration.md # AI/LLM integration concepts
│ ├── python/ # Python SDK references
Expand All @@ -47,21 +46,6 @@ temporal-dev/
│ ├── observability.md # Sinks, logging
│ ├── versioning.md # TypeScript patching API
│ └── advanced-features.md # Cancellation scopes
├── scripts/ # Operational utilities
│ ├── ensure-server.sh # Start Temporal dev server
│ ├── ensure-worker.sh # Start worker for project
│ ├── list-workers.sh # List running workers
│ ├── kill-worker.sh # Stop specific worker
│ ├── kill-all-workers.sh # Stop ALL workers
│ ├── monitor-worker-health.sh # Check worker health
│ ├── list-recent-workflows.sh # Show recent executions
│ ├── get-workflow-result.sh # Get workflow output
│ ├── find-stalled-workflows.sh # Find stuck workflows
│ ├── analyze-workflow-error.sh # Diagnose failures
│ ├── bulk-cancel-workflows.sh # Cancel multiple workflows
│ ├── wait-for-workflow-status.sh # Poll workflow status
│ ├── wait-for-worker-ready.sh # Poll worker startup
│ └── find-project-workers.sh # Helper: find worker PIDs
```

## Progressive Disclosure
Expand All @@ -84,14 +68,6 @@ The skill uses progressive loading to manage context efficiently:
- Language-specific gotchas
- Testing patterns

## Content Sources

This skill merges content from multiple sources:
- **Steve's temporal-dev skill** - Operational scripts, troubleshooting
- **Max's temporal-claude-skill** - Multi-SDK structure, AI integration
- **Mason's python-sdk skill** - Python deep-dive, sandbox, sync/async
- **Mason's typescript-sdk skill** - TypeScript patterns, V8 isolation

## Trigger Phrases

The skill activates on phrases like:
Expand Down
34 changes: 2 additions & 32 deletions SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
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", "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.
version: 1.0.0
---

Expand Down Expand Up @@ -118,36 +118,6 @@ To safely change workflow code while workflows are running:

See `references/core/versioning.md` for concepts, language-specific files for implementation.

## Scripts (Operational)

Available scripts in `scripts/` for worker and workflow management:

### Server & Worker Lifecycle
| Script | Purpose |
|--------|---------|
| `ensure-server.sh` | Start Temporal dev server if not running |
| `ensure-worker.sh` | Start worker for project (kills existing first) |
| `list-workers.sh` | List running workers |
| `kill-worker.sh` | Stop a specific worker |
| `kill-all-workers.sh` | Stop ALL workers (cleanup) |
| `monitor-worker-health.sh` | Check worker health, uptime, recent errors |

### Workflow Operations
| Script | Purpose |
|--------|---------|
| `list-recent-workflows.sh` | Show recent workflow executions |
| `get-workflow-result.sh` | Get output/result from completed workflow |
| `find-stalled-workflows.sh` | Find workflows not making progress |
| `analyze-workflow-error.sh` | Diagnose workflow failures |
| `bulk-cancel-workflows.sh` | Cancel multiple workflows by ID or pattern |

### Utilities (used by other scripts)
| Script | Purpose |
|--------|---------|
| `wait-for-workflow-status.sh` | Poll until workflow reaches target status |
| `wait-for-worker-ready.sh` | Poll log file for worker startup |
| `find-project-workers.sh` | Helper to find worker PIDs for a project |

## Additional Resources

### Core References (Language-Agnostic)
Expand All @@ -158,7 +128,7 @@ Available scripts in `scripts/` for worker and workflow management:
- **`references/core/error-reference.md`** - Common error types, workflow status reference
- **`references/core/common-gotchas.md`** - Anti-patterns and common mistakes
- **`references/core/interactive-workflows.md`** - Testing signals, updates, queries
- **`references/core/tool-reference.md`** - Script options and worker management details
- **`references/core/dev-management.md`** - Dev cycle & management of server and workers
- **`references/core/logs.md`** - Log file locations and search patterns
- **`references/core/ai-integration.md`** - AI/LLM integration patterns

Expand Down
2 changes: 1 addition & 1 deletion references/core/common-gotchas.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ See `references/core/determinism.md` for more info.
- During development: kill old workers before starting new ones
- Ensure all workers run identical code

**Note:** Workflows started with old code continue running after you change the code, which can then induce the above issues. During development (NOT production), you may want to terminate stale workflows (`temporal workflow terminate --workflow-id <id>`), or use `find-stalled-workflows.sh` included in this skill to detect stuck workflows.
**Note:** Workflows started with old code continue running after you change the code, which can then induce the above issues. During development (NOT production), you may want to terminate stale workflows (`temporal workflow terminate --workflow-id <id>`).

See `references/core/versioning.md` for more info.

Expand Down
26 changes: 26 additions & 0 deletions references/core/dev-management.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Development Server and Worker Management

## Server Management

Before starting workers or workflows, you MUST start a local dev server, using the Temporal CLI:

```bash
temporal server start-dev # Start this in the background.
```

It is perfectly OK for this process to be shared across multiple projects / left running as you develop your Temporal code.

## Worker Management Details

### Starting Workers

How you start a worker is project-dependent, but generally Temporal code should have a program entrypoint which starts a worker. If your project doesn't, you should define it.

When you need a new worker, you should start it in the background (and preferrably have it log somewhere you can check), and then remember its PID so you can kill / clean it up later.

**Best practice**: As far as local development goes, run only ONE worker instance with the latest code. Don't keep stale workers (running old code) around.


### Cleanup

**Always kill workers when done.** Don't leave workers running.
13 changes: 6 additions & 7 deletions references/core/interactive-workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,10 @@ temporal workflow query \
## Typical Steps for Testing Interactive Workflows

```bash
TEMPORAL_WORKER_CMD=<...> ./scripts/ensure-worker.sh # 1. Kill old workers, start fresh one. TEMPORAL_WORKER_CMD might be uv run worker, or whatever is appropriate for your project.
# 2. Run whatever code in order to start a workflow. This code should output the workflow ID, if not, modify it to.
./scripts/wait-for-workflow-status.sh --workflow-id <WORKFLOW_ID> --status RUNNING # 3. Wait until workflow is running
temporal workflow signal --workflow-id <WORKFLOW_ID> --name "signal_name" --input '{"key": "value"}' # 4. Send it interactive events, e.g. a signal.
./scripts/wait-for-workflow-status.sh --workflow-id <WORKFLOW_ID> --status COMPLETED # 5. Wait for workflow to complete
./scripts/get-workflow-result.sh --workflow-id <WORKFLOW_ID> # 6. Read workflow result
./scripts/kill-worker.sh # 7. CLEANUP
# 1. Start worker (command is project dependent)
# 2. Start workflow (command is project dependent) This code should output the workflow ID, if not, modify it to.
temporal workflow signal --workflow-id <WORKFLOW_ID> --name "signal_name" --input '{"key": "value"}' # 3. Send it interactive events, e.g. a signal.
# 4. Wait for workflow to complete (use Temporal CLI to check status)
# 5. Read workflow result, using the Temporal CLI
# 6. Cleanup the worker process if needed.
```
84 changes: 0 additions & 84 deletions references/core/tool-reference.md

This file was deleted.

7 changes: 3 additions & 4 deletions references/core/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Workflow stuck in RUNNING?
├─▶ Is a worker running?
│ │
│ ├─▶ NO: Start a worker
│ │ └─▶ scripts/ensure-worker.sh
│ │ └─▶ See references/core/dev-management.md
│ │
│ └─▶ YES: Is it on the correct task queue?
│ │
Expand All @@ -48,8 +48,7 @@ Workflow stuck in RUNNING?
### Common Causes

1. **No worker running**
- Check: `scripts/list-workers.sh`
- Fix: `scripts/ensure-worker.sh <project-dir>`
- See references/core/dev-management.md

2. **Worker on wrong task queue**
- Check: Worker logs for task queue name
Expand Down Expand Up @@ -255,7 +254,7 @@ Worker won't start?
├─▶ Connection error
│ └─▶ Check Temporal server is running
│ └─▶ scripts/ensure-server.sh
│ └─▶ `temporal server start-dev` (start in background, see references/core/dev-management.md)
├─▶ Registration error
│ └─▶ Check workflow/activity definitions are valid
Expand Down
Loading