機能のシーケンス図を作成する
Generates Mermaid sequence diagrams for specified functions by analyzing code structure and creating detailed scenario-based diagrams.
/plugin marketplace add classmethod/tsumiki/plugin install tsumiki@tsumiki機能名または対象(ファイルパス/関数名/クラス名/自然言語)dcs/指定された機能のシーケンス図をmermaid形式で作成します。調査結果を一時ファイルに保存し、Task で参照することでコンテキスト削減を実現します。
出力ディレクトリ=".dcs" カレントディレクトリ={{プロジェクトルート}} 分析ファイルリスト=[] 機能特定済み=false 対象機能=[] ベースディレクトリ="" tmpディレクトリ=""
コンポーネント分析: {{tmpディレクトリ}}/component_analysis.md
処理フロー分析: {{tmpディレクトリ}}/flow_analysis.md
エラーハンドリング分析: {{tmpディレクトリ}}/error_handling.md
重要ファイル抜粋: {{tmpディレクトリ}}/file_contents/
controller.md, service.md, repository.md などcomponent_analysis.md に Writeflow_analysis.md に Writeerror_handling.md に Writefile_contents/*.md に Write(各ファイル個別に){{tmpディレクトリ}}/additional_N_*.md){{tmpディレクトリ}} に保存されているAskUserQuestion ツールを使って、以下の質問を順番に実施する:
contextとして以下を保持する
sequence_success.md - 成功パターンsequence_error.md - エラーパターン(バリデーション、ビジネスロジック)sequence_exception.md - 例外パターン(システムエラー、外部API障害)sequence_auth_error.md - 認証/認可エラーパターン2_, 3_, 4_ など2_sequence_success.md, 3_sequence_error.md など(ベースディレクトリ内に配置){{ベースディレクトリ}}/tmp/ に保存tmp/component_analysis.mdtmp/flow_analysis.mdtmp/error_handling.mdtmp/file_contents/*.mdtmp/additional_N_*.md初回分析:
.dcs/20251027123456_order_confirmation/index.md (インデックス).dcs/20251027123456_order_confirmation/summary.md (サマリー).dcs/20251027123456_order_confirmation/sequence_success.md (成功パターン).dcs/20251027123456_order_confirmation/sequence_error.md (エラーパターン).dcs/20251027123456_order_confirmation/sequence_exception.md (例外パターン).dcs/20251027123456_order_confirmation/details.md (分析詳細)調査結果(一時ファイル):
.dcs/20251027123456_order_confirmation/tmp/component_analysis.md.dcs/20251027123456_order_confirmation/tmp/flow_analysis.md.dcs/20251027123456_order_confirmation/tmp/error_handling.md.dcs/20251027123456_order_confirmation/tmp/file_contents/controller.md追加調査1回目:
.dcs/20251027123456_order_confirmation/tmp/additional_2_flow.md.dcs/20251027123456_order_confirmation/2_sequence_success.md (追加調査).dcs/20251027123456_order_confirmation/2_sequence_error.md (追加調査)最終サマリー:
.dcs/20251027123456_order_confirmation/final_summary.md (全体サマリー)/Users/makotan/projects/esample/src/api/order.tssrc/api/order.ts以下の条件のいずれかに該当する場合、追加調査を提案する:
調査した内容を元に、以下の観点で追加調査が必要な箇所をリストアップする:
具体的な調査内容を提示し、originRule を参考に深掘りする。
{{tmpディレクトリ}} に保存される<sequence_diagram_template> あなたはシーケンス図作成のエキスパートです。以下の情報に基づいて、対象機能のシーケンス図をmermaid形式で作成し、ファイル出力してください。
対象機能: {{対象機能の具体的な情報}} 図に含めるシナリオ: {{シナリオリスト}} 詳細レベル: {{詳細レベル}} 除外条件: {{除外条件(なければ「なし」)}} ベースディレクトリ: {{ベースディレクトリ}}(例: ".dcs/20251027123456_order_confirmation") カレントディレクトリ: {{カレントディレクトリ}}
重要: 以下のファイルに調査結果が保存されています。これらのファイルを Read で読み込んで参照してください。
すべてのファイルパスは、カレントディレクトリを基準とした相対パスで記載してください。 絶対パス(/Users/... や C:\... など)は使用しないでください。 各ファイルは500行以内を目標としてください。 調査結果ファイルは必ず Read で読み込んでから使用してください。
例:
/Users/makotan/projects/esample/src/api/order.tssrc/api/order.tsシーケンス図は以下のファイルに分割して出力してください:
インデックスファイル: {{ベースディレクトリ}}/index.md
サマリーファイル: {{ベースディレクトリ}}/summary.md
シーケンス図ファイル(シナリオごとに作成):
{{ベースディレクトリ}}/sequence_success.md - 成功パターン{{ベースディレクトリ}}/sequence_error.md - エラーパターン{{ベースディレクトリ}}/sequence_exception.md - 例外パターン{{ベースディレクトリ}}/sequence_auth_error.md - 認証/認可エラーパターン分析詳細ファイル:
{{ベースディレクトリ}}/details.md - 分析詳細とコンポーネント情報最初に必ず以下のファイルを Read で読み込んでください:
{{tmpディレクトリ}}/component_analysis.md){{tmpディレクトリ}}/flow_analysis.md){{tmpディレクトリ}}/error_handling.md){{tmpディレクトリ}}/file_contents/*.md) - 必要に応じて読み込んだ調査結果を基に、以下のシナリオについてシーケンス図を作成する:
各シーケンス図は以下のmermaid記法で記述する:
sequenceDiagram
participant Frontend
participant BFF
participant Backend
participant Database
participant ExternalAPI
Frontend->>BFF: POST /api/orders
Note over Frontend,BFF: リクエストボディ:<br/>{orderId, items, ...}
BFF->>Backend: POST /orders/confirm
Note over BFF,Backend: Authorization Header<br/>Pzx-Clan-Code Header
Backend->>Database: SELECT * FROM orders WHERE id = ?
Database-->>Backend: Order データ
alt 在庫が十分な場合
Backend->>Database: UPDATE inventory SET quantity = quantity - ?
Database-->>Backend: Success
Backend->>ExternalAPI: POST /payment/charge
ExternalAPI-->>Backend: Payment Success
Backend->>Database: UPDATE orders SET status = 'CONFIRMED'
Database-->>Backend: Success
Backend-->>BFF: 200 OK {orderId, status: 'CONFIRMED'}
BFF-->>Frontend: 200 OK {orderId, status: 'CONFIRMED'}
else 在庫が不足の場合
Backend-->>BFF: 400 Bad Request {error: 'INSUFFICIENT_INVENTORY'}
BFF-->>Frontend: 400 Bad Request {error: 'INSUFFICIENT_INVENTORY'}
end
sequenceDiagram で開始するparticipant でコンポーネントを定義する->>(実線矢印)で同期呼び出しを表現する-->> (破線矢印)でレスポンスを表現するNote over A,B: で注釈を追加するalt / else / end で条件分岐を表現するloop / end でループを表現するpar / and / end で並列処理を表現するopt / end でオプショナル処理を表現する以下の順序で各ファイルを作成してください。各ファイルは Write ツールを使って個別に保存してください。
最初に {{ベースディレクトリ}}/index.md を作成してください。
次に {{ベースディレクトリ}}/summary.md を作成してください。
シナリオごとに個別ファイルを作成してください:
{{ベースディレクトリ}}/sequence_success.md{{ベースディレクトリ}}/sequence_error.md{{ベースディレクトリ}}/sequence_exception.md{{ベースディレクトリ}}/sequence_auth_error.md (必要な場合){{ベースディレクトリ}}/details.md を作成してください。
index.md)# シーケンス図 - インデックス
**作成日時**: {{実施日時}}
**作成者**: Claude Code
---
## 対象機能
- **機能**: {{対象機能の詳細}}
- **シナリオ**: {{シナリオリスト}}
- **詳細レベル**: {{詳細レベル}}
---
## シーケンス図ファイル一覧
### 基本情報
- [サマリー](./summary.md) - 対象機能とシナリオの概要
### シーケンス図
- [成功パターン](./sequence_success.md) - 正常な処理フロー
- [エラーパターン](./sequence_error.md) - バリデーション・ビジネスロジックエラー
- [例外パターン](./sequence_exception.md) - システムエラー・外部API障害
- [認証/認可エラー](./sequence_auth_error.md) - 認証・認可失敗
### その他の情報
- [分析詳細](./details.md) - コンポーネント情報と分析手法
---
*各ファイルの詳細は上記リンクから参照してください。*
summary.md)# シーケンス図 - サマリー
**作成日時**: {{実施日時}}
**作成者**: Claude Code
[← インデックスに戻る](./index.md)
---
## 対象機能
### 機能概要
- **機能名**: {{対象機能の詳細}}
- **エントリーポイント**: {{エントリーポイント(相対パス:行番号)}}
- **機能説明**: {{機能の説明}}
---
## シナリオ一覧
| シナリオ | ファイル | 説明 |
|---------|---------|------|
| 成功パターン | [sequence_success.md](./sequence_success.md) | 正常な処理フロー |
| エラーパターン | [sequence_error.md](./sequence_error.md) | バリデーション・ビジネスロジックエラー |
| 例外パターン | [sequence_exception.md](./sequence_exception.md) | システムエラー・外部API障害 |
| 認証/認可エラー | [sequence_auth_error.md](./sequence_auth_error.md) | 認証・認可失敗 |
---
## コンポーネント一覧
| コンポーネント | 役割 | 関連ファイル |
|--------------|------|-------------|
| Frontend | {{役割}} | {{相対パス}} |
| BFF | {{役割}} | {{相対パス}} |
| Backend | {{役割}} | {{相対パス}} |
| Database | {{役割}} | - |
| External API | {{役割}} | - |
---
## 主要な処理フロー
1. {{ステップ1の説明}}
2. {{ステップ2の説明}}
3. {{ステップ3の説明}}
...
---
## 追加調査が必要な項目
以下の項目について、追加調査が推奨されます:
1. {{追加調査項目1}}
2. {{追加調査項目2}}
3. {{追加調査項目3}}
(追加調査が不要な場合は「なし」と記載)
---
*詳細なシーケンス図は各シナリオファイルを参照してください。*
sequence_success.md, sequence_error.md, sequence_exception.md, sequence_auth_error.md)各シナリオのファイルは以下の形式で記述してください:
# シーケンス図 - {{シナリオ名}}
**作成日時**: {{実施日時}}
**作成者**: Claude Code
[← インデックスに戻る](./index.md) | [サマリー](./summary.md)
---
## シナリオ概要
- **シナリオ**: {{シナリオ名}}
- **説明**: {{シナリオの説明}}
- **前提条件**: {{前提条件}}
- **期待結果**: {{期待結果}}
---
## シーケンス図
```mermaid
sequenceDiagram
{{mermaid記法で記述したシーケンス図}}
(同様の形式で記述)
このファイルには{{シナリオ名}}のシーケンス図のみを記載しています。他のシナリオは対応するファイルを参照してください。
## 分析詳細ファイル (`details.md`)
```markdown
# シーケンス図 - 分析詳細
**作成日時**: {{実施日時}}
**作成者**: Claude Code
[← インデックスに戻る](./index.md)
---
## 分析対象の詳細
### エントリーポイント
- **ファイル**: {{相対パス}}
- **関数/メソッド**: {{関数名}}
- **行番号**: {{行番号}}
### 関連ファイル一覧
- {{相対パス1}} - {{役割}}
- {{相対パス2}} - {{役割}}
- {{相対パス3}} - {{役割}}
---
## コンポーネント詳細
### Frontend
- **技術スタック**: {{技術スタック}}
- **主要ファイル**: {{相対パス}}
- **役割**: {{役割の説明}}
### BFF (Backend for Frontend)
- **技術スタック**: {{技術スタック}}
- **主要ファイル**: {{相対パス}}
- **役割**: {{役割の説明}}
### Backend
- **技術スタック**: {{技術スタック}}
- **主要ファイル**: {{相対パス}}
- **役割**: {{役割の説明}}
### Database
- **データベース**: {{データベース種類}}
- **関連テーブル**: {{テーブル一覧}}
- **役割**: {{役割の説明}}
### External API
- **API名**: {{API名}}
- **エンドポイント**: {{エンドポイント}}
- **役割**: {{役割の説明}}
---
## 分析手法
### 使用した調査結果
- コンポーネント分析: `{{tmpディレクトリ}}/component_analysis.md`
- 処理フロー分析: `{{tmpディレクトリ}}/flow_analysis.md`
- エラーハンドリング分析: `{{tmpディレクトリ}}/error_handling.md`
### 分析アプローチ
調査結果ファイルから情報を抽出し、シーケンス図として可視化しました。
---
## 制限事項
- 動的な呼び出し(リフレクション、eval など)は検出できない可能性がある
- 非同期処理のタイミングは概算で表現している
- キャッシュやキューなどの中間層は、状態に応じて処理が変わる可能性がある
- 外部APIの詳細な動作は推測に基づいている
---
*この分析結果は調査結果ファイルを基に自動生成されたものです。実際の処理フローは、コードレビューやテストを通じて確認してください。*
重要: 必ず以下の順序でファイルを作成してください:
調査結果ファイルを Read で読み込む
{{tmpディレクトリ}}/component_analysis.md{{tmpディレクトリ}}/flow_analysis.md{{tmpディレクトリ}}/error_handling.mdインデックスファイルを最初に作成 ({{ベースディレクトリ}}/index.md)
サマリーファイルを作成 ({{ベースディレクトリ}}/summary.md)
シーケンス図ファイルを作成(シナリオごとに)
{{ベースディレクトリ}}/sequence_success.md, {{ベースディレクトリ}}/sequence_error.md, ...分析詳細ファイルを作成
{{ベースディレクトリ}}/details.md各ファイルは Write ツールを使って個別に保存してください。一つのファイルにまとめないでください。 </sequence_diagram_template>
<summary_template> あなたはシーケンス図作成のサマリー作成エキスパートです。以下の情報に基づいて、全体サマリーを作成してください。
対象機能: {{対象機能の具体的な情報}} 分析ファイルリスト: {{分析ファイルリスト}}(インデックスファイル、サマリーファイル、シーケンス図ファイルなど) 最終サマリーファイル名: {{サマリーファイル名}}(例: ".dcs/20251027123456_order_confirmation/final_summary.md") カレントディレクトリ: {{カレントディレクトリ}}
すべてのファイルパスは、カレントディレクトリを基準とした相対パスで記載してください。 絶対パス(/Users/... や C:\... など)は使用しないでください。 このファイルは500行以内に収まるように簡潔に記述してください。 分析ファイルリストのファイルは必ず Read で読み込んでから使用してください。
例:
/Users/makotan/projects/esample/src/api/order.tssrc/api/order.ts以下の出力形式で {{サマリーファイル名}} に結果を保存してください。
# シーケンス図 - 最終サマリー
**作成日時**: {{実施日時}}
**作成者**: Claude Code
---
## ナビゲーション
- [初回分析インデックス](./index.md)
- [初回分析サマリー](./summary.md)
(追加調査がある場合は追加)
- [追加調査2(成功パターン)](./2_sequence_success.md)
- [追加調査3(エラーパターン)](./3_sequence_error.md)
---
## 対象機能の概要
### 機能
- **機能名**: {{対象機能の詳細}}
- **エントリーポイント**: {{エントリーポイント}}
- **機能説明**: {{機能の説明}}
### 分析実施状況
- **実施した分析回数**: {{分析回数}}回(初回 + 追加調査{{N}}回)
- **作成されたファイル数**: {{ファイル数}}件
---
## 総合サマリー
| 項目 | 内容 |
|------|------|
| シナリオ数 | XX件 |
| コンポーネント数 | XX個 |
| 処理ステップ数 | XX個 |
| エラーパターン数 | XX個 |
---
## 主要な処理フロー
### 全体フロー
1. {{ステップ1の説明}}
2. {{ステップ2の説明}}
3. {{ステップ3の説明}}
...
### 重要なハイライト
1. **{{ハイライト1のタイトル}}**
- {{詳細説明}}
- 関連ファイル: [相対パス:行番号](相対パス#L行番号)
2. **{{ハイライト2のタイトル}}**
- {{詳細説明}}
- 関連ファイル: [相対パス:行番号](相対パス#L行番号)
3. **{{ハイライト3のタイトル}}**
- {{詳細説明}}
- 関連ファイル: [相対パス:行番号](相対パス#L行番号)
---
## シナリオ別サマリー
### 成功パターン
- **説明**: {{説明}}
- **主要コンポーネント**: {{コンポーネント}}
- **詳細**: [sequence_success.md](./sequence_success.md)
### エラーパターン
- **説明**: {{説明}}
- **エラー種別**: {{エラー種別}}
- **詳細**: [sequence_error.md](./sequence_error.md)
### 例外パターン
- **説明**: {{説明}}
- **例外種別**: {{例外種別}}
- **詳細**: [sequence_exception.md](./sequence_exception.md)
### 認証/認可エラー
- **説明**: {{説明}}
- **エラー種別**: {{エラー種別}}
- **詳細**: [sequence_auth_error.md](./sequence_auth_error.md)
---
## コンポーネント間の相互作用
### 主要なメッセージフロー
1. Frontend → BFF: {{メッセージ内容}}
2. BFF → Backend: {{メッセージ内容}}
3. Backend → Database: {{メッセージ内容}}
4. Backend → External API: {{メッセージ内容}}
### データフロー
- {{データの流れの説明}}
---
## エラーハンドリングのパターン
### パターン1: {{パターン名}}
- **エラー種別**: {{エラー種別}}
- **ハンドリング方法**: {{ハンドリング方法}}
- **関連ファイル**: [相対パス:行番号](相対パス#L行番号)
### パターン2: {{パターン名}}
(同様の形式で記述)
---
## テスト推奨事項
### 重要なテストパス
1. {{テストパス1の説明}}
2. {{テストパス2の説明}}
3. {{テストパス3の説明}}
### テストすべきエッジケース
- {{エッジケース1}}
- {{エッジケース2}}
- {{エッジケース3}}
---
## ドキュメント化の推奨事項
### 追加すべきドキュメント
1. **{{ドキュメント1のタイトル}}**
- {{内容の説明}}
2. **{{ドキュメント2のタイトル}}**
- {{内容の説明}}
### API仕様の明確化
- {{明確化が必要な項目1}}
- {{明確化が必要な項目2}}
---
## 改善提案
### パフォーマンス最適化
- {{提案1}}
- {{提案2}}
### エラーハンドリングの改善
- {{提案1}}
- {{提案2}}
### コードの可読性向上
- {{提案1}}
- {{提案2}}
---
## 詳細分析ファイル一覧
以下のファイルに詳細な分析結果が記録されています:
1. [{{ファイル名1}}]({{相対パス1}}) - 初回分析
2. [{{ファイル名2}}]({{相対パス2}}) - 追加調査1
3. [{{ファイル名3}}]({{相対パス3}}) - 追加調査2
...
---
## 制限事項と注意点
- {{制限事項1}}
- {{制限事項2}}
- {{制限事項3}}
---
*このサマリーは複数の分析結果を統合して自動生成されたものです。詳細は個別の分析ファイルを参照してください。*
必ず Write ツールを使用して、{{サマリーファイル名}} に結果を保存してください。 </summary_template>