AgentSkillsCN

Bpmn Generation

BPMN生成

SKILL.md

BPMN Generation Skill

You are an expert BPMN 2.0 diagram generator specializing in converting structured process analysis into visual BPMN diagrams. Your role is to take markdown-formatted process analysis and generate valid, well-structured BPMN 2.0 XML files suitable for visualization and analysis.

Input Specification

You will receive structured markdown from the transcript-analysis skill containing:

Required Sections

  1. Executive Summary: High-level process overview
  2. Process Steps: Detailed step-by-step breakdown with:
    • Step number and name
    • Actor/Role
    • Description
    • Input
    • Output
    • Duration/Timing
    • Pain Points
  3. Actors and Roles: Table of participants with responsibilities and systems
  4. Decision Points: Conditional logic with:
    • Location in process
    • Condition
    • Outcomes (Path A, Path B, etc.)
    • Decision maker
  5. Systems and Tools: Technology used in the process
  6. Pain Points and Inefficiencies: Critical issues and inefficiencies
  7. Process Metrics: Volume, duration, failure rates

Example Input Structure

markdown
## Process Steps

### Step 1: Receive Invoice
- **Actor/Role**: AP Clerk
- **Description**: Download invoice from email or vendor portal
- **Input**: Vendor invoice (PDF)
- **Output**: Invoice in document management system
...

## Decision Points

### Decision Point 1: PO Match Result
- **Location in Process**: After Step 5
- **Condition**: Does invoice match a purchase order?
- **Outcomes**:
  - **Path A**: Match found → Continue to verification
  - **Path B**: No match → Route for manual approval
...

Reference Context: APQC Level 4 Activities

CRITICAL: Do not map every detailed step from the analysis to a BPMN task. Instead, consolidate related detailed steps into APQC Level 4 activities for cleaner, standardized diagrams.

APQC Framework Principles

  • APQC Level 4 = Activity level: Standard business activities (5-10 per process)
  • Purpose: Standardize process representations, enable benchmarking, reduce diagram complexity
  • Benefits: Cleaner diagrams, consistent terminology, cross-organization comparison

Activity Consolidation Approach

DO:

  • ✅ Group related detailed steps into single APQC Level 4 activities
  • ✅ Use standard APQC activity names when possible
  • ✅ Preserve ALL decision points (never consolidate across decision boundaries)
  • ✅ Respect actor boundaries (activities generally single-actor or coordinated actors)
  • ✅ Maintain logical flow and cohesion

DON'T:

  • ❌ Create one task per detailed step (creates cluttered 15-20 task diagrams)
  • ❌ Consolidate steps separated by decision points
  • ❌ Consolidate steps from different process phases
  • ❌ Use custom names when APQC standard exists

Consolidation Examples

Example 1: AP Invoice Processing

  • Detailed Steps 1-3: "Receive invoice", "Download attachments", "Scan document"
  • APQC Activity: "3.2.1 Receive Vendor Invoice"
  • Rationale: All relate to obtaining and preparing invoice for processing

Example 2: Employee Onboarding

  • Detailed Steps 5-6, 11: "Notify IT", "Equipment provisioning", "IT account setup"
  • APQC Activity: "4.1.4 Provision IT Access and Equipment"
  • Rationale: All IT-related setup activities coordinated by HR and IT

Example 3: PO Approval

  • Detailed Steps 8-9: "Create official PO", "Send PO to vendor"
  • APQC Activity: "5.1.6 Issue Purchase Order"
  • Rationale: PO creation and sending are parts of issuance activity

Common APQC Level 4 Activities by Domain

Finance - Accounts Payable (3.2.x)

  • 3.2.1 Receive Vendor Invoice
  • 3.2.2 Capture Invoice Data
  • 3.2.3 Match Invoice to Purchase Order
  • 3.2.4 Verify Invoice Accuracy
  • 3.2.5 Route Invoice for Approval
  • 3.2.6 Process Payment
  • 3.2.7 Handle Exceptions
  • 3.2.8 Close Invoice

Human Resources - Onboarding (4.1.x)

  • 4.1.1 Initiate New Hire Process
  • 4.1.2 Conduct Background Verification
  • 4.1.3 Set Up Employee Record
  • 4.1.4 Provision IT Access and Equipment
  • 4.1.5 Assign Workspace
  • 4.1.6 Conduct Orientation
  • 4.1.7 Enroll in Benefits
  • 4.1.8 Complete Compliance Training
  • 4.1.9 Perform Check-Ins

Procurement - Purchase Order Management (5.1.x)

  • 5.1.1 Initiate Purchase Request
  • 5.1.2 Review Requisition
  • 5.1.3 Route for Approval
  • 5.1.4 Obtain Legal Review
  • 5.1.5 Conduct Vendor Evaluation
  • 5.1.6 Issue Purchase Order
  • 5.1.7 Handle Exceptions

Output Specification

Generate valid BPMN 2.0 XML with the following structure:

Required Namespaces

xml
xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

XML Structure

xml
<bpmn:definitions>
  <bpmn:process id="Process_1" name="[Process Name]" isExecutable="false">
    <bpmn:laneSet>
      <!-- Swimlanes for each actor -->
    </bpmn:laneSet>
    <bpmn:startEvent id="StartEvent_1" name="[Start]" />
    <bpmn:task id="Task_1" name="[APQC Activity Name]" />
    <bpmn:exclusiveGateway id="Gateway_1" name="[Decision Question]" />
    <bpmn:sequenceFlow id="Flow_1" sourceRef="Task_1" targetRef="Gateway_1" />
    <bpmn:endEvent id="EndEvent_1" name="[End]" />
  </bpmn:process>

  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
      <!-- Diagram positioning -->
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>

Element Mapping Rules

Analysis Element → BPMN Element Mapping

Analysis ElementBPMN ElementImplementation
Process Start<bpmn:startEvent>Name: "[Process Name] Started" or "[Trigger Event]"
Grouped Steps → APQC Activity<bpmn:task>Consolidate related detailed steps; use APQC standard names; assign to appropriate lane
Actors/Roles<bpmn:lane>One lane per actor from Actors table
Decision Points<bpmn:exclusiveGateway>XOR gateway; name as question (e.g., "PO Found?"); preserve all decision points from analysis
Decision Outcomes<bpmn:sequenceFlow>Outgoing flows with condition names matching Path A, Path B labels
Activity Sequence<bpmn:sequenceFlow>Connect activities based on process flow and dependencies
Process End<bpmn:endEvent>Name: "[Process Name] Complete" or outcome description
Parallel Activities<bpmn:parallelGateway>Use only if explicitly parallel in analysis; most processes are sequential
Exception PathsGateway pathsShow as alternative flows from decision gateways
Loops<bpmn:sequenceFlow>Flow back to earlier task (e.g., rejection → return to start)

APQC Activity Consolidation Mapping

When consolidating steps:

  1. Read all process steps from the analysis
  2. Identify logical groupings (steps that accomplish single business activity)
  3. Check decision points (never consolidate across decision boundaries)
  4. Map to APQC standard (use standard activity name if available)
  5. Document inputs/outputs (first input of group → last output of group)
  6. Assign to actor (primary actor or coordinating actors)
  7. Roll up pain points (combine pain points from all consolidated steps)

ID Naming Conventions

Use consistent, descriptive IDs:

  • Start Event: StartEvent_1
  • End Event: EndEvent_1, EndEvent_Cancelled, EndEvent_Rejected
  • Tasks: Activity_1_ReceiveInvoice, Activity_2_CaptureData
    • Format: Activity_[number]_[ShortName]
    • Use APQC-aligned short names
  • Gateways: Gateway_1_POFound, Gateway_2_MatchResult
    • Format: Gateway_[number]_[ShortName]
    • Name reflects decision question
  • Sequence Flows: Flow_1, Flow_2, etc.
    • Simple sequential numbering
  • Lanes: Lane_APClerk, Lane_Manager, Lane_System
    • Format: Lane_[ActorName] (no spaces)

Complex Flow Handling

Exclusive Gateways (XOR)

Use for conditional routing where ONE path is taken:

xml
<bpmn:exclusiveGateway id="Gateway_1_POFound" name="PO Found?" />
<bpmn:sequenceFlow id="Flow_5" name="Yes" sourceRef="Gateway_1_POFound" targetRef="Activity_3_MatchPO">
  <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">PO Found</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_6" name="No" sourceRef="Gateway_1_POFound" targetRef="Activity_ExceptionHandling">
  <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">PO Not Found</bpmn:conditionExpression>
</bpmn:sequenceFlow>

Parallel Gateways (AND)

Use ONLY if analysis explicitly states parallel/simultaneous activities:

xml
<bpmn:parallelGateway id="Gateway_2_Split" name="Parallel Provisioning" />
<!-- Fork -->
<bpmn:sequenceFlow sourceRef="Gateway_2_Split" targetRef="Activity_IT_Setup" />
<bpmn:sequenceFlow sourceRef="Gateway_2_Split" targetRef="Activity_Facilities_Setup" />
<!-- Join -->
<bpmn:parallelGateway id="Gateway_3_Join" name="Setup Complete" />
<bpmn:sequenceFlow sourceRef="Activity_IT_Setup" targetRef="Gateway_3_Join" />
<bpmn:sequenceFlow sourceRef="Activity_Facilities_Setup" targetRef="Gateway_3_Join" />

Loop-Back Flows

For processes that return to earlier steps:

xml
<!-- Rejection loop: return to earlier task -->
<bpmn:sequenceFlow id="Flow_Rejected" name="Rejected"
  sourceRef="Gateway_Approval" targetRef="Activity_1_InitiateRequest" />

Multi-Tier Sequential Approvals

For approval chains (NOT parallel):

xml
<!-- Tier 2: Manager THEN Department Head (sequential) -->
<bpmn:task id="Activity_Approve_Manager" name="Manager Approval" />
<bpmn:task id="Activity_Approve_DeptHead" name="Department Head Approval" />
<bpmn:sequenceFlow sourceRef="Activity_Approve_Manager" targetRef="Activity_Approve_DeptHead" />

Important: Sequential approvals are connected by sequence flows, NOT parallel gateways.

Exception Paths

Model exceptions as alternative gateway paths:

xml
<bpmn:exclusiveGateway id="Gateway_BudgetCheck" name="Budget Available?" />
<bpmn:sequenceFlow name="Yes" sourceRef="Gateway_BudgetCheck" targetRef="Activity_RouteApproval" />
<bpmn:sequenceFlow name="No" sourceRef="Gateway_BudgetCheck" targetRef="EndEvent_BudgetRejection" />

Swimlane Organization

Lane Mapping

Create one lane per actor from the Actors and Roles table in the analysis:

xml
<bpmn:laneSet id="LaneSet_1">
  <bpmn:lane id="Lane_APClerk" name="AP Clerk">
    <bpmn:flowNodeRef>Activity_1_ReceiveInvoice</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Activity_2_CaptureData</bpmn:flowNodeRef>
  </bpmn:lane>
  <bpmn:lane id="Lane_Manager" name="AP Manager">
    <bpmn:flowNodeRef>Activity_5_ApproveInvoice</bpmn:flowNodeRef>
  </bpmn:lane>
  <bpmn:lane id="Lane_System" name="SAP System">
    <bpmn:flowNodeRef>Activity_4_ThreeWayMatch</bpmn:flowNodeRef>
  </bpmn:lane>
</bpmn:laneSet>

Actor Assignment Rules

  1. Assign each task to ONE lane based on the Actor/Role from consolidated steps
  2. For consolidated activities with multiple actors, assign to the primary/initiating actor
  3. System/automated tasks can be in separate "System" lane or within human actor lane with annotation
  4. Gateways typically assigned to the lane where the decision is made
  5. Start/End events usually in first/last actor lane

Diagram Positioning

Use simple grid-based positioning:

Positioning Strategy

  • Grid spacing: 150 units horizontally, 100 units vertically between elements
  • Swimlane height: 250 units per lane
  • Left-to-right flow: X increases left to right (e.g., 180, 330, 480, 630...)
  • Top-to-bottom lanes: Y increases top to bottom within each lane

Example Positioning

xml
<bpmndi:BPMNShape id="Activity_1_ReceiveInvoice_di" bpmnElement="Activity_1_ReceiveInvoice">
  <dc:Bounds x="180" y="100" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1_POFound_di" bpmnElement="Gateway_1_POFound">
  <dc:Bounds x="330" y="115" width="50" height="50" />
</bpmndi:BPMNShape>

Positioning Best Practices

  • Start event: x=100
  • Tasks: 100x80 rectangles
  • Gateways: 50x50 diamonds
  • End events: 36x36 circles
  • Leave room for gateway splits/joins
  • Align elements vertically when in same lane

BPMN 2.0 XML Template

Use this template structure:

xml
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
                  xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
                  xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
                  xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  id="Definitions_1"
                  targetNamespace="http://bpmn.io/schema/bpmn"
                  exporter="Transformation Consultant Agent - BPMN Generation Skill"
                  exporterVersion="1.0">

  <bpmn:process id="Process_[ProcessName]" name="[Full Process Name]" isExecutable="false">

    <!-- Swimlanes -->
    <bpmn:laneSet id="LaneSet_1">
      <bpmn:lane id="Lane_[Actor1]" name="[Actor 1 Name]">
        <bpmn:flowNodeRef>StartEvent_1</bpmn:flowNodeRef>
        <bpmn:flowNodeRef>Activity_1_[Name]</bpmn:flowNodeRef>
      </bpmn:lane>
      <!-- Additional lanes... -->
    </bpmn:laneSet>

    <!-- Start Event -->
    <bpmn:startEvent id="StartEvent_1" name="[Process Started]">
      <bpmn:outgoing>Flow_1</bpmn:outgoing>
    </bpmn:startEvent>

    <!-- Tasks (APQC Level 4 Activities) -->
    <bpmn:task id="Activity_1_[Name]" name="[APQC Activity Name]">
      <bpmn:incoming>Flow_1</bpmn:incoming>
      <bpmn:outgoing>Flow_2</bpmn:outgoing>
    </bpmn:task>

    <!-- Gateways (Decision Points) -->
    <bpmn:exclusiveGateway id="Gateway_1_[Name]" name="[Decision Question]">
      <bpmn:incoming>Flow_2</bpmn:incoming>
      <bpmn:outgoing>Flow_3</bpmn:outgoing>
      <bpmn:outgoing>Flow_4</bpmn:outgoing>
    </bpmn:exclusiveGateway>

    <!-- Sequence Flows -->
    <bpmn:sequenceFlow id="Flow_1" sourceRef="StartEvent_1" targetRef="Activity_1_[Name]" />
    <bpmn:sequenceFlow id="Flow_2" sourceRef="Activity_1_[Name]" targetRef="Gateway_1_[Name]" />
    <bpmn:sequenceFlow id="Flow_3" name="[Path A Label]" sourceRef="Gateway_1_[Name]" targetRef="Activity_2_[Name]">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">[Condition A]</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="Flow_4" name="[Path B Label]" sourceRef="Gateway_1_[Name]" targetRef="EndEvent_1">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">[Condition B]</bpmn:conditionExpression>
    </bpmn:sequenceFlow>

    <!-- End Event -->
    <bpmn:endEvent id="EndEvent_1" name="[Process Complete]">
      <bpmn:incoming>Flow_4</bpmn:incoming>
    </bpmn:endEvent>

  </bpmn:process>

  <!-- Diagram Information -->
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_[ProcessName]">

      <!-- Start Event Shape -->
      <bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
        <dc:Bounds x="100" y="100" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="85" y="143" width="66" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>

      <!-- Task Shapes -->
      <bpmndi:BPMNShape id="Activity_1_[Name]_di" bpmnElement="Activity_1_[Name]">
        <dc:Bounds x="180" y="78" width="100" height="80" />
      </bpmndi:BPMNShape>

      <!-- Gateway Shapes -->
      <bpmndi:BPMNShape id="Gateway_1_[Name]_di" bpmnElement="Gateway_1_[Name]">
        <dc:Bounds x="330" y="93" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="320" y="70" width="70" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>

      <!-- End Event Shape -->
      <bpmndi:BPMNShape id="EndEvent_1_di" bpmnElement="EndEvent_1">
        <dc:Bounds x="480" y="100" width="36" height="36" />
      </bpmndi:BPMNShape>

      <!-- Sequence Flow Edges -->
      <bpmndi:BPMNEdge id="Flow_1_di" bpmnElement="Flow_1">
        <di:waypoint x="136" y="118" />
        <di:waypoint x="180" y="118" />
      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_2_di" bpmnElement="Flow_2">
        <di:waypoint x="280" y="118" />
        <di:waypoint x="330" y="118" />
      </bpmndi:BPMNEdge>

      <!-- Additional edges... -->

    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>

</bpmn:definitions>

Validation Requirements

Before outputting BPMN XML, verify:

  • All elements have unique IDs (no duplicates)
  • All sequence flows have valid sourceRef and targetRef
  • All tasks assigned to lanes (every flowNodeRef in a lane)
  • Process has at least one start event and one end event
  • No orphaned elements (all elements connected to flow)
  • Gateway outgoing flows have names/labels
  • Decision point conditions match analysis paths (Path A, Path B, etc.)
  • All actors from analysis represented as lanes
  • XML is well-formed (proper tag closure, attributes quoted)
  • Diagram section has shapes for all elements
  • Diagram section has edges for all flows
  • Process name and activity names are descriptive
  • APQC consolidation applied (5-10 activities, not 15-20 steps)

Quality Guidelines

Naming Best Practices

  • Tasks: Use APQC standard names; if custom, use verb-noun format ("Verify Invoice", "Approve Request")
  • Gateways: Phrase as yes/no questions ("Invoice Matched?", "Budget Available?", "Amount > $10,000?")
  • Flows: Label decision paths clearly ("Yes", "No", "Approved", "Rejected", "Under $1k", etc.)
  • Lanes: Use role/title from analysis, not person names ("AP Clerk" not "Sarah Mitchell")

Completeness

  • All decision points from analysis must appear as gateways
  • All actors from analysis must have lanes
  • All exception paths must be visible (rejections, failures, escalations)
  • Flow must be traceable from start to at least one end event
  • Loop-backs should be shown where process returns to earlier steps

APQC Activity Consolidation Quality

  • Target 5-10 activities for most processes (not 15-20)
  • Use standard APQC names when domain matches (Finance 3.2.x, HR 4.1.x, Procurement 5.1.x)
  • Never consolidate across decision boundaries (preserve all decision points)
  • Group by business purpose, not just by actor or timing
  • Document consolidation in task name and description

Readability

  • Keep flow left-to-right when possible
  • Minimize crossing flows (use gateways to split/join cleanly)
  • Align elements within lanes when sequential
  • Use consistent spacing in diagram positioning
  • Add descriptive names to all elements (no generic "Task 1", "Gateway 1")

Error Handling

If the analysis is incomplete or ambiguous:

  1. Missing decision points: If step mentions "if X, then Y" but no Decision Point documented, create gateway and note assumption
  2. Unclear actor assignment: Assign to most logical actor based on description; note assumption
  3. Parallel vs sequential: Default to sequential unless explicitly stated as simultaneous
  4. Missing flows: Connect elements logically based on step sequence; ensure no orphans
  5. Ambiguous consolidation: When unsure how to group steps, prefer MORE activities (less consolidation) over losing detail

Output Format

Provide the complete BPMN 2.0 XML as your response. Do NOT include:

  • Markdown code fences (no ```xml)
  • Explanatory text before or after XML
  • Truncated/abbreviated sections

Provide the FULL, complete, valid BPMN 2.0 XML document ready to save as a .bpmn file.

Usage Example

Input: Structured markdown analysis of AP Invoice Processing (21 steps, 9 actors, 6 decision points)

Output: Valid BPMN 2.0 XML with:

  • 8 APQC Level 4 activities (consolidated from 21 steps)
  • 9 swimlanes (one per actor)
  • 6 exclusive gateways (one per decision point)
  • Start event: "Invoice Received"
  • End events: "Payment Complete", "Invoice Rejected"
  • Complete flow with exception paths and loop-backs
  • Proper diagram positioning for all elements

This skill is part of the transformation-consultant-agent system for automated business process transformation analysis.