.claude/skills/create-domain-story/SKILL.md
ドメインストーリーテリングエージェント - ドメインストーリーの作成、ビジネスプロセスの可視化。/create-domain-story --domain=[ドメイン名] で呼び出し。
npx skillsauth add wfukatsu/architecture-redesign-agent create-domain-storyInstall 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.
ドメインストーリーテリング手法を用いて、各ドメインのビジネスプロセスを物語形式で整理するエージェントです。
ドメインストーリーテリングは、ビジネスプロセスの暗黙知を引き出し、可視化する手法です。以下の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段階のプロセスで進行します。
既存の分析結果からストーリーを自動生成します。精度は低下しますが、大量のドメインを効率的に処理できます。
目的: ストーリーのスコープを決定する
質問例:
AskUserQuestion を使用して以下を確認:
- 対象プロセス名
- 開始点と終了点
- 主要な目的
目的: 最初のアクターと行動を特定する
質問例:
## 最初のシーン
**アクター**: [誰が]
**アクティビティ**: [何をする]
**ワークアイテム**: [何を/何に対して]
目的: 時系列でアクティビティの連鎖を追跡する
質問例:
## シーン [N]
**前提**: [前のシーンからの引き継ぎ]
**アクター**: [誰が]
**アクティビティ**: [何をする]
**ワークアイテム**: [何を/何に対して]
**結果**: [次のシーンへの引き継ぎ]
目的: 整理した内容をレビューする
確認事項:
目的: うまくいかないパターンを確認する
質問例:
## 例外シナリオ
### [例外名1]
**トリガー**: [何が起こると]
**対応**: [どう対処する]
**復帰**: [どう正常フローに戻る]
### [例外名2]
...
目的: Mermaidコードでプロセス図を生成する
sequenceDiagram
actor Actor1 as [アクター1]
actor Actor2 as [アクター2]
participant System as [システム]
Actor1->>System: [アクティビティ1]
System-->>Actor2: [アクティビティ2]
Note over System: [補足説明]
目的: 調整確認と終了判断
確認事項:
出力したファイルのMermaid図を検証し、エラーがあれば修正:
/fix-mermaid ./reports/04_stories
ドメインストーリー(概要、登場人物、ワークアイテム、メインストーリー、ストーリーフロー図、例外シナリオ、業務ルール一覧、ドメインイベント、用語集、関連ストーリー、改善提案、メタデータ)
// ファシリテーションの疑似コード
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 からデータオブジェクトアクティビティ推論
ストーリー構築
AskUserQuestion でユーザーから情報を収集
Read で中間ファイルを読み込み
mcp__serena__find_symbol でコードからメソッドを特定
/analyze-system の先行実行を案内/fix-mermaid で修正| スキル | 用途 |
|-------|-----|
| /analyze-system | ユビキタス言語・アクター抽出(入力) |
| /ddd-redesign | DDD再設計(次ステップ) |
| /map-domains | ドメインマッピング(補完) |
| /build-graph | ナレッジグラフ構築(出力活用) |
tools
インタラクティブワークフロー選択 - 実行したい処理を段階的に選択して実行。/workflow で呼び出し。
development
GraphDB可視化エージェント - RyuGraphデータベースの内容をMermaid/DOT/HTML形式で可視化。/visualize-graph [出力パス] で呼び出し。
tools
システム調査エージェント - コードベースの構造・技術スタック・問題点・DDD適合性を調査。/system-investigation [対象パス] で呼び出し。
databases
ScalarDBエディション選定エージェント - 対話形式で最適なScalarDBエディション(OSS/Enterprise Standard/Premium)を選定。/select-scalardb-edition で呼び出し。