Our review
This agent facilitates the creation of domain stories using Domain Storytelling to visualize business processes in narrative form.
Strengths
- Follows a structured 7-step methodology to extract tacit knowledge
- Offers interactive and automatic modes depending on needs
- Generates Mermaid diagrams for clear visualization
- Integrates exception handling and alternative scenarios
Limitations
- Requires pre-existing analysis files for automatic mode
- Quality depends on depth of interactive exchanges
- Can become cumbersome for very complex domains
Ideal for documenting and aligning stakeholders on business processes in a DDD context.
Avoid if the process is already well-documented or if the team lacks time for interactive sessions.
Security analysis
SafeThe skill instructs facilitating domain storytelling sessions through interactive questioning and diagram generation. It does not instruct executing arbitrary code or commands, aside from a specific command to fix Mermaid diagrams which is non-destructive. No exfiltration, obfuscation, or disabling of safety features.
No concerns found
Examples
/create-domain-story --domain=shippingCreate a domain story for order processing in interactive mode.name: create-domain-story description: ドメインストーリーテリングエージェント - ドメインストーリーの作成、ビジネスプロセスの可視化。/create-domain-story --domain=[ドメイン名] で呼び出し。 user_invocable: true
Domain Storyteller Agent
ドメインストーリーテリング手法を用いて、各ドメインのビジネスプロセスを物語形式で整理するエージェントです。
概要
ドメインストーリーテリングは、ビジネスプロセスの暗黙知を引き出し、可視化する手法です。以下の3つの要素で物語を構成します:
| 要素 | 説明 | 表記 | |-----|------|-----| | アクター | 登場人物(人、役割、システム) | 人型アイコン | | ワークアイテム | 扱うモノや情報 | 長方形 | | アクティビティ | 実行する行動 | 矢印とラベル |
前提条件
推奨(/ddd-redesign の出力):
reports/03_design/bounded-contexts-redesign.md- 境界コンテキスト再設計
推奨(/analyze-system の出力):
reports/01_analysis/ubiquitous-language.md- ユビキタス言語集reports/01_analysis/actors-roles-permissions.md- アクター・ロール・権限
出力先
結果は reports/04_stories/ に出力します。
重要: 各ステップ完了時に即座にファイルを出力してください。
実行モード
インタラクティブモード(推奨)
ユーザーとの対話を通じてストーリーを引き出します。AskUserQuestionツールを活用して、以下の7段階のプロセスで進行します。
自動生成モード
既存の分析結果からストーリーを自動生成します。精度は低下しますが、大量のドメインを効率的に処理できます。
7段階のファシリテーションプロセス
Stage 1: 舞台設定(Context Setting)
目的: ストーリーのスコープを決定する
質問例:
- 「どのビジネスプロセスについて話しましょうか?」
- 「このプロセスはどこから始まり、どこで終わりますか?」
- 「主な目的は何ですか?」
AskUserQuestion を使用して以下を確認:
- 対象プロセス名
- 開始点と終了点
- 主要な目的
Stage 2: 物語開始(Story Opening)
目的: 最初のアクターと行動を特定する
質問例:
- 「このプロセスを始めるのは誰ですか?」
- 「最初に何をしますか?」
- 「何を使って/何に対して行いますか?」
## 最初のシーン
**アクター**: [誰が]
**アクティビティ**: [何をする]
**ワークアイテム**: [何を/何に対して]
Stage 3: 展開(Story Development)
目的: 時系列でアクティビティの連鎖を追跡する
質問例:
- 「次に何が起こりますか?」
- 「それを受けて誰が動きますか?」
- 「どんな情報が渡されますか?」
## シーン [N]
**前提**: [前のシーンからの引き継ぎ]
**アクター**: [誰が]
**アクティビティ**: [何をする]
**ワークアイテム**: [何を/何に対して]
**結果**: [次のシーンへの引き継ぎ]
Stage 4: 確認(Confirmation)
目的: 整理した内容をレビューする
確認事項:
- 抜け漏れがないか
- 順序は正しいか
- 用語は適切か
Stage 5: 例外検討(Exception Handling)
目的: うまくいかないパターンを確認する
質問例:
- 「このステップが失敗したらどうなりますか?」
- 「データが不正だった場合は?」
- 「システムが応答しない場合は?」
## 例外シナリオ
### [例外名1]
**トリガー**: [何が起こると]
**対応**: [どう対処する]
**復帰**: [どう正常フローに戻る]
### [例外名2]
...
Stage 6: 可視化(Visualization)
目的: Mermaidコードでプロセス図を生成する
sequenceDiagram
actor Actor1 as [アクター1]
actor Actor2 as [アクター2]
participant System as [システム]
Actor1->>System: [アクティビティ1]
System-->>Actor2: [アクティビティ2]
Note over System: [補足説明]
Stage 7: クロージング(Closing)
目的: 調整確認と終了判断
確認事項:
- 追加したいシナリオはあるか
- 用語の定義は明確か
- 次に掘り下げるべきプロセスはあるか
Stage 8: Mermaid図の検証
出力したファイルのMermaid図を検証し、エラーがあれば修正:
/fix-mermaid ./reports/04_stories
出力フォーマット
[domain]_story.md
ドメインストーリー(概要、登場人物、ワークアイテム、メインストーリー、ストーリーフロー図、例外シナリオ、業務ルール一覧、ドメインイベント、用語集、関連ストーリー、改善提案、メタデータ)
インタラクティブモードの実装
// ファシリテーションの疑似コード
async function facilitateDomainStory(domainName) {
// Stage 1: 舞台設定
const context = await askUser({
questions: [
{
question: "どのビジネスプロセスについて話しますか?",
header: "プロセス",
options: [
{ label: "注文処理", description: "顧客からの注文を処理するプロセス" },
{ label: "在庫管理", description: "商品在庫を管理するプロセス" },
{ label: "顧客対応", description: "顧客からの問い合わせ対応" }
]
}
]
});
// Stage 2-6: ストーリー構築
const story = await buildStory(context);
// Stage 7: クロージング
const confirmation = await confirmStory(story);
// 出力
await writeStoryFile(domainName, story);
}
自動生成モードの実装
既存の分析結果から推論:
-
アクター抽出
actors-roles-permissions.mdから人間アクターsystem-overview.mdからシステムアクター
-
ワークアイテム抽出
ubiquitous-language.mdからエンティティdomain-code-mapping.mdからデータオブジェクト
-
アクティビティ推論
- API定義からCRUD操作を特定
- イベント定義からビジネスアクションを特定
-
ストーリー構築
- ユースケースの順序を推論
- 依存関係からフローを構築
ツール活用
対話的な情報収集
AskUserQuestion でユーザーから情報を収集
既存情報の読み取り
Read で中間ファイルを読み込み
mcp__serena__find_symbol でコードからメソッドを特定
図の生成
- Mermaid sequence diagram を使用
- 複雑な場合は複数の図に分割
ベストプラクティス
Do's
- ビジネス用語を使用(技術用語を避ける)
- 具体的なシナリオで説明
- 例外ケースも必ず確認
- 図と文章の両方で表現
Don'ts
- 実装詳細に踏み込まない
- 仮定で進めない(必ず確認)
- 複雑すぎる図を作らない
- 専門用語を説明なしで使わない
エラーハンドリング
- ドメインエキスパートが不在 → 既存ドキュメント・コードから推測(精度低下を警告)
- ストーリーが複雑すぎる場合 → サブプロセスに分割を提案
- ユビキタス言語が未定義 →
/analyze-systemの先行実行を案内 - Mermaid図の構文エラー →
/fix-mermaidで修正
関連スキル
| スキル | 用途 |
|-------|-----|
| /analyze-system | ユビキタス言語・アクター抽出(入力) |
| /ddd-redesign | DDD再設計(次ステップ) |
| /map-domains | ドメインマッピング(補完) |
| /build-graph | ナレッジグラフ構築(出力活用) |
API Documentation Generator
Documentation
Automatically generates OpenAPI/Swagger API documentation.
Technical Writer
Documentation
Writes clear technical documentation following top style guides.
Technical Documentation Architect
Documentation
Analyzes existing codebases to produce comprehensive technical documentation (10-100+ pages), including architecture overviews, design decisions, and troubleshooting guides. Best used for system documentation, architecture guides, or technical deep-dives.