# Dapr Skills for Claude Code

A Claude Code plugin to scaffold and review Dapr Workflow applications from a natural-language spec or a workflow diagram.

- [View on GitHub](https://github.com/diagrid-labs/dapr-skills)

* [Scaffold from a spec](#scaffold-from-spec) — Describe the workflow in natural language and generate a runnable project in .NET, .NET Aspire, or Python.
* [Scaffold from a diagram](#scaffold-from-diagram) — Drop a BPMN file or workflow image and generate a Dapr Workflow app in Go, Java, JavaScript, .NET, or Python.
* [Review existing code](#review) — Audit a workflow project for determinism, activity boundaries, and management practices.

---

## Install

Dapr Skills is distributed as a Claude Code plugin from the [diagrid-labs/dapr-skills](https://github.com/diagrid-labs/dapr-skills) repository — you do not need to clone the repo.

**Prerequisites:** [Claude Code](https://claude.com/product/claude-code), Docker or Podman, and the [Dapr CLI](https://docs.dapr.io/getting-started/install-dapr-cli/) (1.17+). Language-specific skills also require the matching runtime (e.g. .NET 10 SDK or Python 3.12+ with [uv](https://docs.astral.sh/uv/getting-started/installation/)).

1. Start Claude Code in the directory where you want the generated project to live.

2. Add the marketplace and install the plugin:
    `/plugin marketplace add diagrid-labs/dapr-skills`
    `/plugin install dapr-skills@diagrid-labs`

3. Optionally run a `check-prereq-<language>` skill to verify your environment before scaffolding.

---

## Scaffold from a spec

Describe the workflow in a prompt and the matching `create-workflow-<language>` skill generates a runnable Dapr Workflow project, including activity stubs, configuration, and a multi-app run file.

### Supported languages

**Supported languages:** .NET, Python

### Available spec skills

### Example prompt

> Create a Dapr workflow app in Python named `order_processing`. The workflow validates the order, then runs `ReserveInventory` and `ProcessPayment` in parallel, and finally sends an order confirmation. Input fields: Order ID, Customer name, Items (list), Total amount.

The generated project includes activity stubs, Dapr configuration, a multi-app run file, and a `README.md` with build and run instructions.

---

## Scaffold from a diagram

The `create-workflow-from-diagram` skill accepts a workflow image (PNG, JPG, JPEG, GIF, WebP) or a BPMN 2.0 XML file, extracts the workflow structure into an intermediate representation, validates it, and writes a runnable project in your chosen language.

### Supported languages

**Supported languages:** Go, Java, JavaScript, Python, .NET

### Example prompt

Attach a diagram or BPMN file to the chat and ask:

> Create a Dapr workflow in Python from this diagram.

> Scaffold a Go Dapr workflow from this BPMN file.

See [`skills/create-workflow-from-diagram/REFERENCE.md`](https://github.com/diagrid-labs/dapr-skills/blob/main/skills/create-workflow-from-diagram/REFERENCE.md) for the intermediate representation format and per-language notes.

---

## Review existing code

Audit a Dapr Workflow project for common pitfalls. Run a review skill against an existing project and Claude Code reports issues with suggested fixes.

---

## Run and deploy

Once a project is scaffolded, follow the generated `README.md` for details on how to build and run it.

Deploy to **Diagrid Catalyst** for managed infrastructure, workflow visualization, and production-grade observability:

1. Sign up for Diagrid Catalyst (free tier available)

2. Install the  [Diagrid CLI](https://docs.diagrid.io/references/catalyst/catalyst-cli-intro)

3. Build your project per the README

4. Run `diagrid dev run -f <multi-app-run-file>`

5. View workflow execution and traces in the Catalyst console

:::tip Go deeper
Continue in your language of choice with the [Workflow SDK guides](https://docs.diagrid.io/develop/workflows) — [.NET](https://docs.diagrid.io/develop/workflows/dotnet-sdk), [Go](https://docs.diagrid.io/develop/workflows/go-sdk), [Java](https://docs.diagrid.io/develop/workflows/java-sdk), [JavaScript](https://docs.diagrid.io/develop/workflows/javascript-sdk), and [Python](https://docs.diagrid.io/develop/workflows/python-sdk). Inspect executions during local development with the [Dapr Dev Dashboard](https://docs.diagrid.io/develop/local-development/dev-dashboard), or use [Workflow Composer](https://docs.diagrid.io/develop/workflows/workflow-composer) if you prefer a hosted, diagram-first scaffolder.
:::
