OpenParable
Skip to content
← Back to skills

Bpmn Workflow

Documents
bpmn-workflow

Bpmn Workflow is an Agent Skill for documents published in the WellApp-ai/Well repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Generate and maintain BPMN 2.0 diagrams linked to Gherkin scenarios

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/WellApp-ai/Well/blob/HEAD/cursor-rules/skills/bpmn-workflow/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/bpmn-workflow, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

BPMN Workflow Skill

Generate BPMN 2.0 process diagrams from feature specifications, link them to Gherkin scenarios, and compose a system-wide workflow diagram.

When to Use

  • After completing Ask mode (feature exploration) to visualize the flow
  • When documenting system processes for stakeholders
  • Before Plan mode to ensure all scenarios are captured
  • When updating existing features with new scenarios

Prerequisites

  • Feature has been explored in Ask mode with wireframes
  • User flows have been identified
  • API endpoints (if any) have been specified

Instructions

Phase 1: Gather Feature Context

Step 1.1: Check for existing .feature files

Glob docs/bpmn/features/**/*.feature

If found, parse existing scenarios:

CallMcpTool:
  server: "bpmn-mcp"
  toolName: "read-feature"
  arguments: { "featurePath": "docs/bpmn/features/{feature-id}/{feature-id}.feature" }

Step 1.2: If no .feature file exists, generate scenarios from:

  • Ask mode wireframes (each screen = potential scenario)
  • User flow descriptions
  • API endpoints defined (CRUD operations = scenarios)
  • Edge cases identified (error states, empty states)

Phase 2: Generate Gherkin (if needed)

If generating new scenarios, structure them as:

Feature: [Feature Name]
  As a [user type]
  I want to [action]
  So that [benefit]

  Scenario: [Happy path name]
    Given [precondition]
    When [action]
    Then [expected result]

  Scenario: [Error case name]
    Given [precondition]
    When [invalid action]
    Then [error handling]

Scenario naming conventions:

  • Happy path: Successful [action], [Action] completes
  • Validation: [Action] with invalid [field]
  • Error: [Action] when [error condition]
  • Edge: [Action] with [edge case]

Phase 3: Generate BPMN

Call the generate-bpmn MCP tool:

CallMcpTool:
  server: "bpmn-mcp"
  toolName: "generate-bpmn"
  arguments: {
    "featureId": "{feature-id}",
    "featureName": "{Feature Name}",
    "scenarios": [
      {
        "id": "{scenario-id}",
        "name": "{Scenario Name}",
        "steps": [
          { "keyword": "Given", "text": "{step text}" },
          { "keyword": "When", "text": "{step text}" },
          { "keyword": "Then", "text": "{step text}" }
        ]
      }
    ],
    "outputPath": "docs/bpmn/features/{feature-id}/{feature-id}.bpmn"
  }

Phase 4: Create Manifest Link

Link BPMN elements to Gherkin scenarios:

CallMcpTool:
  server: "bpmn-mcp"
  toolName: "link-gherkin"
  arguments: {
    "featureId": "{feature-id}",
    "featureName": "{Feature Name}",
    "bpmnFile": "docs/bpmn/features/{feature-id}/{feature-id}.bpmn",
    "featureFile": "docs/bpmn/features/{feature-id}/{feature-id}.feature"
  }

This creates docs/bpmn/features/{feature-id}/manifest.json with traceability links.

Phase 5: Compose System Diagram

Update the master system diagram:

CallMcpTool:
  server: "bpmn-mcp"
  toolName: "compose-system"
  arguments: {
    "systemName": "Well Platform",
    "featuresDir": "docs/bpmn/features",
    "outputPath": "docs/bpmn/system.bpmn"
  }

Output Format

After completing all phases, present:

## BPMN Workflow Generated

### Files Created/Updated

| File | Status | Description |
|------|--------|-------------|
| `docs/bpmn/features/{id}/{id}.feature` | Created/Updated | [N] scenarios |
| `docs/bpmn/features/{id}/{id}.bpmn` | Created | Process diagram |
| `docs/bpmn/features/{id}/manifest.json` | Created | [N] links |
| `docs/bpmn/system.bpmn` | Updated | Added {Feature Name} pool |

### Scenarios Mapped

| Scenario | BPMN Element | Steps |
|----------|--------------|-------|
| [Name] | Task_{id} | [N] |

### System Diagram

[ASCII representation of system pools]

┌─────────────────┐     ┌─────────────────┐
│  Auth           │────▶│  Workspaces     │
│  • Login        │     │  • Create       │
│  • Register     │     │  • Switch       │
└─────────────────┘     └─────────────────┘

BPMN Element Mapping

Gherkin ConceptBPMN Element
ScenarioUserTask
Given stepsDocumentation (preconditions)
When stepsDocumentation (action)
Then stepsDocumentation (expected)
FeatureProcess
BackgroundSubprocess (shared)

Storage Structure

docs/bpmn/
├── README.md                    # Documentation
├── system.bpmn                  # Master system diagram
└── features/
    └── {feature-id}/
        ├── {feature-id}.bpmn    # Feature process diagram
        ├── {feature-id}.feature # Gherkin scenarios
        └── manifest.json        # BPMN ↔ Gherkin links

Related Skills

  • problem-framing - Defines the problem before BPMN generation
  • competitor-scan - Research how competitors document workflows
  • design-context - Ensures BPMN aligns with existing patterns

Troubleshooting

No MCP server available:

  • Ensure bpmn-mcp is configured in .cursor/mcp.json
  • Check that @wellapp/bpmn package is built

Invalid BPMN generated:

  • Validate with validate-bpmn tool
  • Check scenario IDs are unique
  • Ensure step keywords are valid (Given/When/Then/And/But)

Manifest links broken:

  • Re-run link-gherkin after updating scenarios
  • Ensure scenario IDs match between .feature and manifest