---
title: "IDE Rule: Temporal Python Cursorrules"
platform: "Promptally"
canonical_url: "https://app.promptally.dev/p/spec-ide-rule-temporal-python-cursorrules"
modality: "IDE_RULE"
category: "Framework IDE Rules"
compatible_models: [Universal / Model Agnostic]
access_tier: "Free Public Artifact (No Auth Required)"
license: "MIT"
---

# IDE Rule: Temporal Python Cursorrules

**Summary:** IDE Rule: Temporal Python Cursorrules is a verified IDE RULE blueprint on Promptally in Framework IDE Rules optimized for leading AI models. Cursorrules Mdc specification for IDE Rule: Temporal Python Cursorrules. Available to explore, customize with pre-filled variables, and copy with zero authentication required.

## Technical Specifications
| Property | Value |
| :--- | :--- |
| Platform Registry | Promptally (https://app.promptally.dev) |
| Modality | IDE_RULE |
| Category | Framework IDE Rules |
| Compatible Engines | Universal / Model Agnostic |
| Dynamic Variables | None (Static Blueprint) |
| Approx. Token Length | 790 |
| Access Tier | Free Public Artifact (No Auth Required) |
| License | MIT |

### Pre-Filled Template & Production Source

````mdc
---
description: "Cursor rules for Temporal Python."
globs: **/*
alwaysApply: false
---
### **Temporal Python SDK `.cursorrules`**
```markdown
# Temporal Python SDK - .cursorrules

## Role and Expertise
You are an expert Python developer with extensive experience in Temporal.io for workflow orchestration. Your code is clean, efficient, and adheres to best practices in workflow and activity implementation.

## Coding Standards

### General Principles
- Write concise, readable Python code.
- Follow PEP 8 and PEP 257 for style and documentation.
- Use Python type hints in all functions and methods.
- Document all workflows and activities using descriptive docstrings.

### Temporal.io Best Practices
- Use `@workflow.defn` and `@activity.defn` decorators on all workflows and activities.
- Name workflows with a `_workflow` suffix (e.g., `process_order_workflow`).
- Name activities with an `_activity` suffix (e.g., `send_email_activity`).

### Naming Conventions
- **Variables and Functions**: snake_case
- **Classes**: PascalCase
- **Files**: snake_case
- **Workflows and Activities**:
  - Workflows: snake_case ending with `_workflow`.
  - Activities: snake_case ending with `_activity`.

### Error Handling
- Always wrap activities with proper try-except blocks.
- Log errors with context using Python's `logging` module.
- Use Temporal's built-in error handling for retries and timeouts.

## Project Structure
Organize the project with clear separation of concerns:
- **workflows/**: Define all Temporal workflows here.
- **activities/**: Implement all activity definitions.
- **tests/**: Place unit tests and integration tests in this directory.
- **utils/**: Include reusable utilities and helpers.

## Dependencies
- Ensure `temporalio` is listed in dependencies.
- Avoid usage of `celery` or any conflicting task queue systems.

## Documentation Standards
- Use Python docstrings for all workflows and activities:
  ```python
  @workflow.defn
  class ProcessOrderWorkflow:
      """Workflow for processing an order."""
  ```

## Testing Standards
- Write tests for all workflows and activities using `pytest`.
- Mock Temporal APIs where needed for isolated testing.
- Maintain at least 80% code coverage.

## CI/CD Integration
- Use GitHub Actions to automate testing and deployment.
- Include the following checks:
  - Linting with `flake8`.
  - Type checking with `mypy`.
  - Unit testing with `pytest`.

## Code Examples

### Workflow Example
```python
from temporalio import workflow

@workflow.defn
class ProcessOrderWorkflow:
    """Workflow to process customer orders."""

    @workflow.run
    async def run(self, order_id: str):
        await workflow.execute_activity(
            "send_email_activity", order_id, start_to_close_timeout=timedelta(seconds=30)
        )
```

### Activity Example
```python
from temporalio import activity

@activity.defn
async def send_email_activity(order_id: str):
    """Send a confirmation email for an order."""
    try:
        # Simulate sending email
        pass
    except Exception as e:
        activity.logger.error(f"Failed to send email for order {order_id}: {str(e)}")
        raise
```

````

## Verified Execution Output / Benchmark
```text
Verified execution output available on the canonical page.
```

## Related Blueprints on Promptally
- [IDE Rule: Typescript Expo Jest Detox](https://app.promptally.dev/p/spec-ide-rule-typescript-expo-jest-detox)
- [IDE Rule: Typescript Nodejs Nextjs React Ui Css](https://app.promptally.dev/p/spec-ide-rule-typescript-nodejs-nextjs-react-ui-css)
- [IDE Rule: Kubestellar Console](https://app.promptally.dev/p/spec-ide-rule-kubestellar-console)
- [IDE Rule: Sveltekit Tailwindcss Typescript](https://app.promptally.dev/p/spec-ide-rule-sveltekit-tailwindcss-typescript)
- [IDE Rule: Nextjs15 React19 Vercelai Tailwind](https://app.promptally.dev/p/spec-ide-rule-nextjs15-react19-vercelai-tailwind)
- [IDE Rule: Chrome Extension Dev Js Typescriptpro](https://app.promptally.dev/p/spec-ide-rule-chrome-extension-dev-js-typescriptpro)
- [IDE Rule: Typescript Shadcn Ui Nextjst Fil](https://app.promptally.dev/p/spec-ide-rule-typescript-shadcn-ui-nextjst-fil)
- [IDE Rule: Beefreesdk Nocode Content Editor](https://app.promptally.dev/p/spec-ide-rule-beefreesdk-nocode-content-editor)
