# Bpmn

> Create business process diagrams using PlantUML syntax with BPMN, EIP, and Lean Mapping stencil icons. Best for workflow automation, approval chains, message-based integration patterns, and value stream mapping.

- Skill: `guoliang1114-boop/bpmn` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add guoliang1114-boop/bpmn`
- Raw SKILL.md: https://api.skillmd.com/api/skills/guoliang1114-boop/bpmn/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: guoliang1114-boop (https://skillmd.com/u/guoliang1114-boop)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/guoliang1114-boop/bpmn

---


# Business Process & Integration Diagram Generator

**Quick Start:** Choose diagram type → Declare stencil icons for events/gateways/tasks → Group into pools/lanes → Connect with arrow syntax → Wrap in ` ```plantuml ` fence.

> ⚠️ **IMPORTANT:** Always use ` ```plantuml ` or ` ```puml ` code fence. NEVER use ` ```text ` — it will NOT render as a diagram.

## Critical Rules

- Every diagram starts with `@startuml` and ends with `@enduml`
- Use `left to right direction` for process flows (start→end reads left-to-right)
- Use `mxgraph.bpmn.*` for BPMN events, gateways, and task markers
- Use `mxgraph.eip.*` for Enterprise Integration Pattern icons
- Use `mxgraph.lean_mapping.*` for Value Stream Mapping symbols
- Default colors are applied automatically — you do NOT need to specify `fillColor` or `strokeColor`
- Use `rectangle "Pool" { ... }` for BPMN pools and lanes
- Sequence flows use `-->`, message flows use `..>` (dashed)

**Full stencil reference:** See [stencils/README.md](../uml/stencils/README.md) for 9500+ available icons.

## Mxgraph Stencil Syntax

```
mxgraph.<library>.<icon> "Label" as <alias>
```

### BPMN Stencil Family (`mxgraph.bpmn.*`)

**Events** — Circle shapes for process triggers and outcomes:

| Icon | Meaning |
|------|---------|
| `mxgraph.bpmn.event.start` | Start Event |
| `mxgraph.bpmn.event.end` | End Event |
| `mxgraph.bpmn.event.terminateEnd` | Terminate End |
| `mxgraph.bpmn.event.timerStart` | Timer Start |
| `mxgraph.bpmn.event.timerCatching` | Timer Intermediate |
| `mxgraph.bpmn.event.messageStart` | Message Start |
| `mxgraph.bpmn.event.messageCatching` | Message Catching |
| `mxgraph.bpmn.event.messageEnd` | Message End |
| `mxgraph.bpmn.event.errorEnd` | Error End |
| `mxgraph.bpmn.event.errorBound` | Error Boundary |
| `mxgraph.bpmn.event.signalStart` | Signal Start |
| `mxgraph.bpmn.event.signalEnd` | Signal End |

**Gateways** — Diamond shapes for branching/merging:

| Icon | Meaning |
|------|---------|
| `mxgraph.bpmn.gateway2.exclusive` | Exclusive Gateway (XOR) |
| `mxgraph.bpmn.gateway2.parallel` | Parallel Gateway (AND) |
| `mxgraph.bpmn.gateway2.inclusive` | Inclusive Gateway (OR) |
| `mxgraph.bpmn.gateway2.complex` | Complex Gateway |

**Tasks** — Use `rectangle` for tasks, stencil markers for typed tasks:

| Icon | Meaning |
|------|---------|
| `mxgraph.bpmn.user_task` | User Task |
| `mxgraph.bpmn.service_task` | Service Task |
| `mxgraph.bpmn.script_task` | Script Task |
| `mxgraph.bpmn.manual_task` | Manual Task |
| `mxgraph.bpmn.business_rule_task` | Business Rule Task |

**Data** — Document-like shapes:

| Icon | Meaning |
|------|---------|
| `mxgraph.bpmn.data2.dataObject` | Data Object |
| `mxgraph.bpmn.data2.dataInput` | Data Input |
| `mxgraph.bpmn.data2.dataOutput` | Data Output |

### EIP Stencil Family (`mxgraph.eip.*`)

| Icon | Meaning |
|------|---------|
| `mxgraph.eip.messageChannel` | Message Channel |
| `mxgraph.eip.deadLetterChannel` | Dead Letter Channel |
| `mxgraph.eip.content_based_router` | Content-Based Router |
| `mxgraph.eip.message_filter` | Message Filter |
| `mxgraph.eip.splitter` | Splitter |
| `mxgraph.eip.aggregator` | Aggregator |
| `mxgraph.eip.message_translator` | Message Translator |
| `mxgraph.eip.content_enricher` | Content Enricher |
| `mxgraph.eip.messaging_gateway` | Messaging Gateway |
| `mxgraph.eip.channel_adapter` | Channel Adapter |
| `mxgraph.eip.messaging_bridge` | Messaging Bridge |
| `mxgraph.eip.recipient_list` | Recipient List |
| `mxgraph.eip.wire_tap` | Wire Tap |
| `mxgraph.eip.event_driven_consumer` | Event-Driven Consumer |
| `mxgraph.eip.competing_consumers` | Competing Consumers |
| `mxgraph.eip.process_manager` | Process Manager |

### Lean Mapping Stencil Family (`mxgraph.lean_mapping.*`)

| Icon | Meaning |
|------|---------|
| `mxgraph.lean_mapping.outside_sources` | Supplier / Customer |
| `mxgraph.lean_mapping.manufacturing_process` | Process Step |
| `mxgraph.lean_mapping.supermarket` | Supermarket (Inventory Buffer) |
| `mxgraph.lean_mapping.fifo_lane` | FIFO Lane |
| `mxgraph.lean_mapping.production_kanban` | Production Kanban |
| `mxgraph.lean_mapping.withdrawal_kanban` | Withdrawal Kanban |
| `mxgraph.lean_mapping.signal_kanban` | Signal Kanban |
| `mxgraph.lean_mapping.truck_shipment` | Truck Shipment |
| `mxgraph.lean_mapping.operator` | Operator |
| `mxgraph.lean_mapping.inventory_box` | Inventory |
| `mxgraph.lean_mapping.kaizen_lightening_burst` | Kaizen Burst |
| `mxgraph.lean_mapping.mrp_erp` | MRP / ERP System |
| `mxgraph.lean_mapping.warehouse` | Warehouse |
| `mxgraph.lean_mapping.push_arrow` | Push Arrow |
| `mxgraph.lean_mapping.timeline2` | Timeline |

### Connection Types

| Syntax | Meaning | Use Case |
|--------|---------|----------|
| `A --> B` | Solid arrow | Sequence flow (task→task) |
| `A ..> B` | Dashed arrow | Message flow (cross-pool) / async trigger |
| `A --> B : "label"` | Labeled solid | Conditional flow (gateway branch) |
| `A ..> B : "label"` | Labeled dashed | Named message / signal |

### Quick Example

```plantuml
@startuml
left to right direction

mxgraph.bpmn.event.start "Start" as start
rectangle "Review\nRequest" as review
mxgraph.bpmn.gateway2.exclusive "Approved?" as gw
rectangle "Process\nOrder" as process
rectangle "Notify\nRejection" as reject
mxgraph.bpmn.event.end "End" as end_ok
mxgraph.bpmn.event.end "End" as end_fail

start --> review
review --> gw
gw --> process : "Yes"
gw --> reject : "No"
process --> end_ok
reject --> end_fail
@enduml
```

## Diagram Types

| Type | Purpose | Key Stencils | Example |
|------|---------|--------------|---------|
| Order Processing | E-commerce / fulfillment | `mxgraph.bpmn.event.*`, `mxgraph.bpmn.gateway2.*` | [order-processing.md](examples/order-processing.md) |
| Approval Workflow | Multi-level approval | `mxgraph.bpmn.event.*`, `mxgraph.bpmn.gateway2.*` | [approval-workflow.md](examples/approval-workflow.md) |
| EIP Messaging | Message routing & transformation | `mxgraph.eip.*` | [eip-messaging.md](examples/eip-messaging.md) |
| ETL Pipeline | Data extraction & loading | `mxgraph.bpmn.event.*`, `mxgraph.eip.*` | [etl-pipeline.md](examples/etl-pipeline.md) |
| Value Stream | Lean manufacturing flow | `mxgraph.lean_mapping.*` | [value-stream.md](examples/value-stream.md) |
| Microservice Orchestration | Service choreography | `mxgraph.bpmn.event.*`, `mxgraph.eip.*` | [microservice-orchestration.md](examples/microservice-orchestration.md) |
| Event-Driven Architecture | Pub/Sub event flows | `mxgraph.bpmn.event.*`, `mxgraph.eip.*` | [event-driven.md](examples/event-driven.md) |
| Customer Service | Support ticket lifecycle | `mxgraph.bpmn.event.*`, `mxgraph.bpmn.gateway2.*` | [customer-service.md](examples/customer-service.md) |

## Capability Upgrade

### Mode Selection

- **Quick**: 把文字流程转成基础 BPMN。
- **Standard**: 补齐泳道、事件、网关、任务、异常路径和消息流。
- **Deep**: 结合角色职责、系统边界、审批规则、SLA 和异常场景，形成流程优化或自动化设计图。

### Process Modeling Logic

先确定流程边界、开始/结束事件、参与角色和关键决策点。没有明确事件和责任人的流程不应直接画成最终 BPMN。

### Quality Gates

- [ ] 每个泳道对应真实角色、部门或系统。
- [ ] 网关条件互斥且完整。
- [ ] 异常、退回、超时和取消路径已处理。
- [ ] 消息流和顺序流没有混用。
- [ ] 输出包含图和流程说明，便于业务复核。

### Deliverable Catalog

| Deliverable | When to use | Minimum content | Format |
|-------------|-------------|-----------------|--------|
| BPMN process diagram | 文字流程转图 | 开始/结束、任务、泳道、网关、异常路径 | PlantUML / Markdown |
| Process narrative | 业务复核 | 流程目标、角色、输入、输出、规则和异常 | Word / Markdown |
| Approval workflow map | 审批流程 | 申请、审批层级、条件、退回、超时和通知 | BPMN / PPT |
| Integration flow diagram | 系统/消息流 | 发送方、接收方、消息、转换、错误处理 | BPMN / EIP |
| Process improvement backlog | 流程优化 | 痛点、根因、改进项、owner、优先级和收益 | Excel / Tasks |
| BPMN QA checklist | 发布前 | 泳道、网关、事件、异常、命名和可读性检查 | Checklist |

