event-storming
skillEvent Stormingでイベント(動詞の過去形)を中心に、コマンド・集約・リードモデルを抽出/命名/レビューする作業に使う
apm::install
apm install @j5ik2o/event-stormingapm::skill.md
---
name: event-storming
description: Event Stormingでイベント(動詞の過去形)を中心に、コマンド・集約・リードモデルを抽出/命名/レビューする作業に使う
metadata:
short-description: Event Storming支援
---
# Event Storming
## 使う場面
- 要件や仕様にイベントの説明が不足している
- イベント名の命名やイベント/リソースの区別に迷う
- Event Storming成果物(イベント/コマンド/集約/リードモデル)を整理・追記したい
## ルール(要点)
- イベントはドメインの重要な出来事で、動詞の過去形で表現する
- イベントはビジネスの重要な振る舞いを表すため、イベント中心に整理する
- 原則として **1コマンドに対して1イベント** とし、1コマンドで複数イベントを生成しない
- コマンド名の動詞とイベント名の動詞は対応させる(例: `AddCartItem` → `CartItemAdded`)
- 動詞が異なる場合は別イベントとみなし、混同しない(例: `AppendCartItem` に `CartItemAdded` を割り当てない)
- 関係の表現は「R(, )」で整理する
詳細は `references/event-storming-notes.md` を参照する。
## 手順(簡潔)
1. 重要な出来事を列挙し、イベント名を過去形で確定する
2. 各イベントに対応するコマンドを逆算して決める
3. イベントを受け取る集約を決め、境界を調整する
4. クエリで必要なリードモデルを定義する
5. R(Event, Resource) / R(Event, Event) / R(Resource, Resource) を整理する
6. イベント/リソースの区別が曖昧なら判定ルールを適用する
## 出力テンプレート
```
## Event Storming の前提モデル
### イベント
- ...
### コマンド
- ...
### 集約
- ...
### リードモデル
- ...
```