home / skills / wellapp-ai / well / bpmn-workflow
This skill generates BPMN 2.0 diagrams from feature specs, links them to Gherkin scenarios, and composes a system-wide workflow visualization for stakeholders.
npx playbooks add skill wellapp-ai/well --skill bpmn-workflowReview the files below or copy the command above to add this skill to your agents.
---
name: bpmn-workflow
description: Generate and maintain BPMN 2.0 diagrams linked to Gherkin scenarios
---
# 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:
```gherkin
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:
```markdown
## 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 Concept | BPMN Element |
|-----------------|--------------|
| Scenario | UserTask |
| Given steps | Documentation (preconditions) |
| When steps | Documentation (action) |
| Then steps | Documentation (expected) |
| Feature | Process |
| Background | Subprocess (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
This skill generates and maintains BPMN 2.0 process diagrams from feature specifications and links them to Gherkin scenarios for end-to-end traceability. It automates creation of feature-level BPMN files, manifests that map Gherkin to BPMN elements, and updates a system-wide diagram to reflect feature pools. The output supports documentation, engineering handoffs, and QA validation.
The skill inspects project feature files and Ask-mode artifacts (wireframes, user flows, API specs) to parse or generate Gherkin scenarios. It calls a BPMN generator to produce feature .bpmn files, creates a manifest that links BPMN elements to scenario IDs, and composes a master system.bpmn by merging features. Validation steps check IDs, step keywords, and BPMN validity.
What prerequisites are required?
You should have feature exploration completed (wireframes, user flows) and any relevant API endpoints documented; existing .feature files can be parsed.
How are Gherkin scenarios mapped to BPMN elements?
Scenarios become UserTasks; Given/When/Then steps are captured as documentation or subprocess annotations; backgrounds map to shared subprocesses.