plugins/enterprise-architecture/skills/domain-storytelling/SKILL.md
Collaborative domain modeling through pictographic stories. Use when gathering requirements, understanding business workflows, onboarding team members, or preparing for event storming. Follows Stefan Hofer & Henning Schwentner's methodology with actors, work objects, and activities.
npx skillsauth add melodic-software/claude-code-plugins domain-storytellingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Domain Storytelling is a collaborative modeling technique that captures business processes through pictographic stories. This skill guides AI-assisted domain storytelling sessions that can feed into event storming and bounded context discovery.
Key Principle: Stories are told from the perspective of domain experts, using their language and understanding.
Keywords: domain storytelling, pictographic, actors, work objects, activities, AS-IS, TO-BE, business workflow, domain modeling, story collection, bounded context discovery, requirements gathering
Use this skill when:
Document how things work today:
When to use: Understanding current state, identifying problems, baseline before changes.
Document how things should work:
When to use: Requirements gathering, designing solutions, communicating vision.
Domain Storytelling uses simple pictographic elements:
| Element | Symbol | Description | | --- | --- | --- | | Actor | 🧑 (stick figure) | Person or system that performs activities | | Work Object | 📄 (document) | Data, documents, or physical items exchanged | | Activity | ➡️ (arrow with verb) | Action performed by an actor | | Sequence | ① ② ③ | Numbered order of activities | | Annotation | 💬 (note) | Additional context or explanation |
Detailed notation guide: See references/pictographic-notation.md
Goal: Gather the narrative from the user in their own words.
Prompts:
Capture:
Goal: Explore edge cases and variations.
Prompts:
Capture:
Goal: Map all participants in the story.
Prompts:
Capture:
Goal: Identify all data and documents exchanged.
Prompts:
Capture:
Goal: Find bounded context candidates.
Analysis:
Output: Potential bounded context candidates for event storming.
Detailed boundary discovery: See references/boundary-discovery.md
# Domain Story: [Story Name]
**Type:** AS-IS | TO-BE
**Domain:** [Domain Name]
**Date:** YYYY-MM-DD
## Narrative Summary
[2-3 sentence plain language summary]
## Story Sequence
① **Customer** submits **Order Form** to **Sales Rep**
② **Sales Rep** validates **Order Form** using **Product Catalog**
③ **Sales Rep** creates **Order** in **Order System**
④ **Order System** notifies **Warehouse** with **Pick List**
⑤ **Warehouse Staff** picks items using **Pick List**
...
## Actors
| Actor | Type | Responsibilities |
| --- | --- | --- |
| Customer | Human (External) | Initiates orders |
| Sales Rep | Human (Internal) | Validates and enters orders |
| Order System | System (Internal) | Order management |
| Warehouse | System (Internal) | Inventory and fulfillment |
## Work Objects
| Work Object | Type | Used By | Description |
| --- | --- | --- | --- |
| Order Form | Document | Customer, Sales Rep | Customer order request |
| Product Catalog | Reference | Sales Rep | Available products |
| Order | Data | Order System | Validated order record |
| Pick List | Document | Warehouse Staff | Items to pick |
## Annotations
- [Note 1]: Exception handling for out-of-stock items
- [Note 2]: Peak season requires additional staff
sequenceDiagram
participant C as Customer
participant SR as Sales Rep
participant OS as Order System
participant W as Warehouse
C->>SR: ① submits Order Form
SR->>SR: ② validates using Product Catalog
SR->>OS: ③ creates Order
OS->>W: ④ notifies with Pick List
W->>W: ⑤ picks items
Story templates: See references/story-templates.md
Domain stories naturally feed into event storming:
| Story Element | Event Storming Element | | --- | --- | | Activity | Command or Event | | Actor | Actor (yellow sticky) | | Work Object | Aggregate or Read Model | | Sequence | Timeline ordering | | Boundary | Bounded context candidate |
Workflow:
Domain Storytelling (understand "what happens")
↓
Event Storming (design "how it happens")
↓
Bounded Contexts → Modular Architecture
To proceed to event storming: Invoke the enterprise-architecture:event-storming skill with collected stories as input.
The skill guides an interactive conversation with the user:
Rapid story capture from user-provided narrative:
Extract stories from existing documentation:
As stories are collected, build a domain glossary:
| Term | Definition | Context | Aliases | | --- | --- | --- | --- | | Order | A validated customer request for products | Sales | Purchase Order, PO | | Pick List | List of items to retrieve from warehouse | Warehouse | Picking Ticket |
Glossary purpose:
references/pictographic-notation.md - Detailed notation guide with examplesreferences/story-templates.md - YAML headers, output formatsreferences/boundary-discovery.md - Finding bounded contexts from storiesevent-storming - Design "how it happens" after understanding "what happens"modular-architecture - Implement bounded contexts discovered from storiesadr-management - Document significant decisions discovered during storytellingLast Updated: 2025-12-22
When invoked directly by the user, this skill creates domain stories.
as-is.story-facilitator agent to guide the interactive session:
docs/domain-stories/[journey-name]-[type]-[date].md (or custom --dir).development
Search Milan Jovanovic's .NET blog for Clean Architecture, DDD, CQRS, EF Core, and ASP.NET Core patterns. Use for finding applicable patterns, code examples, and architecture guidance. Invoke when working with .NET projects that could benefit from proven architectural patterns.
tools
Install and configure Data API Builder (DAB) for production SQL Server MCP access with RBAC
tools
Manage MssqlMcp servers - status, rebuild, and upstream updates
tools
Developer environment setup guides for Windows, macOS, Linux, and WSL. Use when setting up development machines, installing tools, configuring environments, or following platform-specific setup guides. Covers package management, shell/terminal, code editors, AI tooling, containerization, databases, and more.