Process modeling using BPMN notation and flowchart patterns. Creates process diagrams with activities, gateways, events, swimlanes, and decision points for workflow documentation.
Create BPMN-compliant process diagrams with activities, gateways, events, and swimlanes. Use when documenting workflows, designing business processes, or visualizing decision points and participant interactions.
/plugin marketplace add melodic-software/claude-code-plugins/plugin install business-analysis@melodic-softwareThis skill is limited to using the following tools:
Use this skill when:
Create and document business processes using BPMN (Business Process Model and Notation) and flowchart notation. Visualize activities, decisions, events, and participant interactions for process understanding and improvement.
Process modeling creates visual representations of how work flows through an organization. It documents:
| Type | Symbol | Description |
|---|---|---|
| Task | Rectangle | Atomic work unit |
| Sub-Process | Rectangle with + | Contains child process |
| Call Activity | Rectangle with thick border | Invokes reusable process |
Task Types:
| Type | Description |
|---|---|
| User Task | Human interaction required |
| Service Task | Automated system action |
| Script Task | Script/code execution |
| Business Rule Task | Decision table evaluation |
| Send Task | Message sent |
| Receive Task | Message received |
| Manual Task | Physical work without system |
| Position | Symbol | Description |
|---|---|---|
| Start | Thin circle | Process trigger |
| Intermediate | Double circle | Mid-process event |
| End | Thick circle | Process termination |
Event Types:
| Type | Trigger |
|---|---|
| None | Unspecified start/end |
| Message | Message received/sent |
| Timer | Time-based trigger |
| Error | Error condition |
| Signal | Broadcast signal |
| Terminate | Process termination |
| Type | Symbol | Description |
|---|---|---|
| Exclusive (XOR) | Diamond with X | One path based on condition |
| Parallel (AND) | Diamond with + | All paths execute |
| Inclusive (OR) | Diamond with O | One or more paths |
| Event-Based | Diamond with circle | Wait for events |
| Type | Symbol | Description |
|---|---|---|
| Sequence Flow | Solid arrow | Order of activities |
| Message Flow | Dashed arrow | Messages between pools |
| Association | Dotted line | Artifacts to elements |
| Type | Description |
|---|---|
| Pool | Represents a participant (organization/system) |
| Lane | Subdivisions within a pool (roles/departments) |
## Process Definition
**Process Name:** [Name]
**Purpose:** [Why this process exists]
**Scope:**
- **Starts When:** [Trigger event]
- **Ends When:** [Completion criteria]
- **Includes:** [In-scope activities]
- **Excludes:** [Out-of-scope activities]
**Participants:**
| Pool | Lanes (Roles) |
|------|---------------|
| [Org/System] | [Role 1], [Role 2] |
| Type | When to Use |
|---|---|
| As-Is | Documenting current state |
| To-Be | Designing future state |
| High-Level | Overview, communication |
| Detailed | Implementation, automation |
For each decision:
| Check | Question |
|---|---|
| All paths connected | Do all activities have incoming and outgoing flows? |
| No dead ends | Do all paths reach an end event? |
| Gateways balanced | Are split gateways matched with joins? |
| Roles assigned | Is every activity in a lane? |
| Triggers defined | Does every start event have a clear trigger? |
## Process: [Name]
### Overview
[Brief description of process purpose and flow]
### Triggers
| Event | Description | Frequency |
|-------|-------------|-----------|
| [Trigger] | [What causes it] | [How often] |
### Activities
| # | Activity | Role | System | Duration |
|---|----------|------|--------|----------|
| 1 | [Activity name] | [Role] | [System] | [Time] |
### Decision Points
| # | Decision | Conditions | Paths |
|---|----------|------------|-------|
| 1 | [Decision] | [Criteria] | [Path A], [Path B] |
### Exceptions
| Exception | Handling |
|-----------|----------|
| [Error] | [How handled] |
flowchart TD
Start((Start))
Task1[Receive Order]
Gateway1{Valid Order?}
Task2[Process Payment]
Task3[Reject Order]
Task4[Ship Product]
End1((Complete))
End2((Rejected))
Start --> Task1
Task1 --> Gateway1
Gateway1 -->|Yes| Task2
Gateway1 -->|No| Task3
Task2 --> Task4
Task4 --> End1
Task3 --> End2
flowchart TD
subgraph Customer
A[Place Order]
G[Receive Product]
end
subgraph Sales
B[Review Order]
C{Approved?}
end
subgraph Warehouse
D[Pick Items]
E[Pack Order]
F[Ship Order]
end
A --> B
B --> C
C -->|Yes| D
C -->|No| A
D --> E
E --> F
F --> G
## Process: Order Fulfillment
**Version:** 1.0
**Date:** [ISO Date]
**Owner:** [Name]
### Summary
This process handles customer orders from receipt to delivery.
### Flow Description
1. **Start**: Customer places order (online or phone)
2. **Review Order**: Sales validates order details
3. **Decision**: Is order valid?
- Yes: Proceed to fulfillment
- No: Return to customer for correction
4. **Pick Items**: Warehouse locates products
5. **Pack Order**: Items packaged for shipping
6. **Ship Order**: Handed to carrier
7. **End**: Customer receives product
### Metrics
| Metric | Current | Target |
|--------|---------|--------|
| Cycle Time | 3 days | 2 days |
| Error Rate | 5% | 1% |
| Automation | 40% | 70% |
### Improvement Opportunities
1. Automate order validation
2. Parallel picking for multi-item orders
3. Real-time tracking integration
process_model:
name: "Order Fulfillment"
version: "1.0"
date: "2025-01-15"
type: "as_is" # or "to_be"
owner: "Operations"
boundaries:
trigger: "Customer places order"
end_state: "Customer receives product"
scope:
includes:
- "Order receipt"
- "Payment processing"
- "Fulfillment"
- "Shipping"
excludes:
- "Returns"
- "Customer support"
participants:
- pool: "Company"
lanes:
- name: "Sales"
activities: ["Review Order"]
- name: "Warehouse"
activities: ["Pick Items", "Pack Order", "Ship Order"]
- pool: "Customer"
lanes:
- name: "Buyer"
activities: ["Place Order", "Receive Product"]
elements:
events:
- id: "start_1"
type: "start"
name: "Order Received"
trigger: "message"
- id: "end_1"
type: "end"
name: "Order Complete"
activities:
- id: "task_1"
type: "user_task"
name: "Review Order"
lane: "Sales"
duration: "15 minutes"
- id: "task_2"
type: "service_task"
name: "Process Payment"
lane: "Sales"
system: "Payment Gateway"
gateways:
- id: "gw_1"
type: "exclusive"
name: "Order Valid?"
conditions:
- path: "task_2"
condition: "Order validated"
- path: "task_reject"
condition: "Validation failed"
sequence_flows:
- from: "start_1"
to: "task_1"
- from: "task_1"
to: "gw_1"
- from: "gw_1"
to: "task_2"
condition: "valid"
metrics:
cycle_time:
current: "3 days"
target: "2 days"
automation_rate:
current: 40
target: 70
Activities in strict order, one after another.
flowchart LR
A[Step 1] --> B[Step 2] --> C[Step 3] --> D[Step 4]
Activities that can occur simultaneously.
flowchart TD
A[Start] --> B{Parallel Split}
B --> C[Task A]
B --> D[Task B]
B --> E[Task C]
C --> F{Join}
D --> F
E --> F
F --> G[End]
Only one path taken based on condition.
flowchart TD
A[Review] --> B{Decision}
B -->|Approve| C[Process]
B -->|Reject| D[Notify]
C --> E[End]
D --> E
Repeat activities until condition met.
flowchart TD
A[Start] --> B[Process]
B --> C{Complete?}
C -->|No| B
C -->|Yes| D[End]
Handle errors and exceptions.
flowchart TD
A[Process] --> B{Success?}
B -->|Yes| C[Continue]
B -->|Error| D[Handle Error]
D --> E{Recoverable?}
E -->|Yes| A
E -->|No| F[Escalate]
| Practice | Description |
|---|---|
| Start simple | Begin with happy path, add complexity |
| One start, one end | Per pool, ideally |
| Name activities | Use verb-noun format (e.g., "Review Order") |
| Label gateways | Show the decision question |
| Label conditions | Describe each outgoing path |
| Balance gateways | Split and join with matching types |
| Avoid crossing lines | Rearrange for clarity |
| Document exceptions | Show error handling paths |
value-stream-mapping - Lean perspective on process flowdata-modeling - Data entities in processesjourney-mapping - Customer experience perspectivecapability-mapping - Process-capability alignmentUse when working with Payload CMS projects (payload.config.ts, collections, fields, hooks, access control, Payload API). Use when debugging validation errors, security issues, relationship queries, transactions, or hook behavior.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.