影響範囲分析を実施する
Analyzes impact scope of code changes and generates risk assessment reports with file-level recommendations.
/plugin marketplace add classmethod/tsumiki/plugin install tsumiki@tsumiki変更対象(ファイルパス/関数名/クラス名/自然言語)dcs/変更対象の影響範囲を分析し、修正が必要なファイルとリスク評価を提供します。一時ファイルを作成せず直接 Task で実行し、必要に応じて追加調査を繰り返し、最後に全体サマリーを作成します。
出力ディレクトリ=".dcs" カレントディレクトリ={{プロジェクトルート}} 分析ファイルリスト=[]
AskUserQuestion ツールを使って、以下の質問を順番に実施する:
contextとして以下を保持する
index.md - インデックス(全体概要とファイル一覧)summary.md - 分析対象とサマリーcore.md - コアロジック層の影響api.md - API層の影響service.md - サービス層の影響data.md - データアクセス層の影響ui.md - UI層の影響test.md - テストの影響config.md - 設定の影響other.md - その他の影響external.md - 外部依存関係recommendations.md - 推奨アクションdetails.md - 分析詳細2_, 3_, 4_ など2_core.md, 2_api.md, 3_service.md など(ベースディレクトリ内に配置)初回分析:
.dcs/20251008123456_calculate_total/index.md (インデックス).dcs/20251008123456_calculate_total/summary.md (サマリー).dcs/20251008123456_calculate_total/core.md (コアロジック層).dcs/20251008123456_calculate_total/api.md (API層)追加調査1回目:
.dcs/20251008123456_calculate_total/2_core.md (追加調査のコアロジック層).dcs/20251008123456_calculate_total/2_api.md (追加調査のAPI層)最終サマリー:
.dcs/20251008123456_calculate_total/final_summary.md (全体サマリー)/Users/makotan/projects/esample/src/utils/helper.tssrc/utils/helper.ts総合的に以下の観点でリスクを評価する:
以下の基準でファイルを分類する:
以下の条件のいずれかに該当する場合、追加調査を提案する:
調査した内容を元に、以下の観点で追加調査が必要な箇所をリストアップする:
具体的な調査内容を提示し、originRule を参考に深掘りする。
<impact_analysis_template> あなたは影響範囲分析のエキスパートです。以下の情報に基づいて、変更対象の影響範囲を分析し、セクション別に分割してファイル出力してください。
変更対象: {{変更対象の具体的な情報}} 変更内容: {{変更内容の種類}} 分析目的: {{分析の目的}} 除外条件: {{除外条件(なければ「なし」)}} ベースディレクトリ: {{ベースディレクトリ}}(例: ".dcs/20251008123456_calculate_total") カレントディレクトリ: {{カレントディレクトリ}}
すべてのファイルパスは、カレントディレクトリを基準とした相対パスで記載してください。 絶対パス(/Users/... や C:... など)は使用しないでください。 各セクションファイルは500行以内を目標としてください。
例:
/Users/makotan/projects/esample/src/utils/helper.tssrc/utils/helper.ts分析結果は以下のセクション別ファイルに分割して出力してください:
インデックスファイル: {{ベースディレクトリ}}/index.md
サマリーファイル: {{ベースディレクトリ}}/summary.md
層別影響ファイル(影響があるもののみ作成):
{{ベースディレクトリ}}/core.md - コアロジック層{{ベースディレクトリ}}/api.md - API層{{ベースディレクトリ}}/service.md - サービス層{{ベースディレクトリ}}/data.md - データアクセス層{{ベースディレクトリ}}/ui.md - UI層{{ベースディレクトリ}}/test.md - テスト{{ベースディレクトリ}}/config.md - 設定{{ベースディレクトリ}}/other.md - その他その他のファイル:
{{ベースディレクトリ}}/external.md - 外部依存関係{{ベースディレクトリ}}/recommendations.md - 推奨アクション{{ベースディレクトリ}}/details.md - 分析詳細以下の基準に基づいて、各ファイルの影響度を総合的に評価する:
総合的なリスクレベル(高/中/低)を判定し、リスク評価の根拠を記録する。
以下の順序で各セクションファイルを作成してください。各ファイルは Write ツールを使って個別に保存してください。
最初に {{ベースディレクトリ}}/index.md を作成してください。
次に {{ベースディレクトリ}}/summary.md を作成してください。
影響があるファイル種別について、それぞれ個別ファイルを作成してください:
{{ベースディレクトリ}}/core.md - コアロジック層(影響がある場合のみ){{ベースディレクトリ}}/api.md - API層(影響がある場合のみ){{ベースディレクトリ}}/service.md - サービス層(影響がある場合のみ){{ベースディレクトリ}}/data.md - データアクセス層(影響がある場合のみ){{ベースディレクトリ}}/ui.md - UI層(影響がある場合のみ){{ベースディレクトリ}}/test.md - テスト(影響がある場合のみ){{ベースディレクトリ}}/config.md - 設定(影響がある場合のみ){{ベースディレクトリ}}/other.md - その他(影響がある場合のみ)以下のファイルを作成してください:
{{ベースディレクトリ}}/external.md - 外部依存関係{{ベースディレクトリ}}/recommendations.md - 推奨アクション{{ベースディレクトリ}}/details.md - 分析詳細index.md)# 影響範囲分析 - インデックス
**実施日時**: {{実施日時}}
**分析者**: Claude Code
---
## 分析概要
### 変更対象
- **対象**: {{変更対象の詳細}}
- **変更内容**: {{変更内容の種類}}
- **分析目的**: {{分析の目的}}
### サマリー
| 項目 | 内容 |
|------|------|
| 影響を受けるファイル数 | XX件 |
| 総合リスク評価 | **高/中/低** |
| 最大影響深度 | X階層 |
---
## 分析結果ファイル一覧
### 基本情報
- [サマリー](./summary.md) - 分析対象とリスク評価
### 影響を受けるファイル(層別)
- [コアロジック層](./core.md) - XX件の影響
- [API層](./api.md) - XX件の影響
- [サービス層](./service.md) - XX件の影響
- [データアクセス層](./data.md) - XX件の影響
- [UI層](./ui.md) - XX件の影響
- [テスト](./test.md) - XX件の影響
- [設定](./config.md) - XX件の影響
- [その他](./other.md) - XX件の影響
### その他の情報
- [外部依存関係](./external.md)
- [推奨アクション](./recommendations.md)
- [分析詳細](./details.md)
---
## クイックナビゲーション
### 高リスク項目
1. {{高リスク項目1}} - [詳細](./{{section}}.md)
2. {{高リスク項目2}} - [詳細](./{{section}}.md)
### 即座に対応が必要な項目
1. {{対応項目1}} - [詳細](./recommendations.md)
2. {{対応項目2}} - [詳細](./recommendations.md)
---
*各ファイルの詳細は上記リンクから参照してください。*
summary.md)# 影響範囲分析 - サマリー
**実施日時**: {{実施日時}}
**分析者**: Claude Code
[← インデックスに戻る](./index.md)
---
## 分析対象
### 変更対象
- **対象**: {{変更対象の詳細(相対パス:行番号、関数名など)}}
- **変更内容**: {{変更内容の種類}}
- **分析目的**: {{分析の目的}}
- **除外条件**: {{除外条件}}
---
## サマリー
| 項目 | 内容 |
|------|------|
| 影響を受けるファイル数 | XX件 |
| 総合リスク評価 | **高/中/低** |
| 最大影響深度 | X階層 |
| 推奨対応優先度 | 高/中/低 |
### リスク評価の根拠
{{総合的なリスク評価の理由を簡潔に記述}}
---
## ファイル種別ごとの影響統計
| ファイル種別 | 影響ファイル数 | リスクレベル | 詳細 |
|-------------|--------------|------------|------|
| コアロジック | XX件 | 高/中/低 | [詳細](./core.md) |
| API層 | XX件 | 高/中/低 | [詳細](./api.md) |
| サービス層 | XX件 | 高/中/低 | [詳細](./service.md) |
| データアクセス層 | XX件 | 高/中/低 | [詳細](./data.md) |
| UI層 | XX件 | 高/中/低 | [詳細](./ui.md) |
| テスト | XX件 | 低 | [詳細](./test.md) |
| 設定 | XX件 | 高/中/低 | [詳細](./config.md) |
| その他 | XX件 | 高/中/低 | [詳細](./other.md) |
---
## 追加調査が必要な項目
以下の項目について、追加調査が推奨されます:
1. {{追加調査項目1}}
2. {{追加調査項目2}}
3. {{追加調査項目3}}
(追加調査が不要な場合は「なし」と記載)
---
*詳細な影響内容は各層別ファイルを参照してください。*
core.md, api.md, service.md, data.md, ui.md, test.md, config.md, other.md)各層のファイルは以下の形式で記述してください:
# 影響範囲分析 - {{層名}}層
**実施日時**: {{実施日時}}
**分析者**: Claude Code
[← インデックスに戻る](./index.md) | [サマリー](./summary.md)
---
## {{層名}}層の影響概要
| 項目 | 内容 |
|------|------|
| 影響ファイル数 | XX件 |
| リスクレベル | **高/中/低** |
| 直接影響 | XX件 |
| 間接影響 | XX件 |
---
## 直接的な影響
### [相対パス:行番号](相対パス#L行番号)
- **影響の種類**: 直接参照/関数呼び出し/継承/実装/型依存
- **影響度**: 高/中/低
- **理由**: {{なぜこの影響度なのか、どのような修正が必要か}}
- **コードコンテキスト**: {{関連するコードの説明}}
- **推奨対応**: {{対応方法}}
### [相対パス:行番号](相対パス#L行番号)
(同様の形式で記述)
---
## 間接的な影響(2階層)
### [相対パス:行番号](相対パス#L行番号)
- **影響の種類**: 間接参照
- **依存経路**: 変更対象 → 中間ファイルA → このファイル
- **影響度**: 中/低
- **理由**: {{影響の説明}}
- **推奨対応**: {{対応方法}}
---
## 間接的な影響(3階層以上)
### [相対パス:行番号](相対パス#L行番号)
(同様の形式で記述)
---
*このファイルには{{層名}}層に関する影響のみを記載しています。他の層の影響は対応するファイルを参照してください。*
external.md)# 影響範囲分析 - 外部依存関係
**実施日時**: {{実施日時}}
**分析者**: Claude Code
[← インデックスに戻る](./index.md)
---
## 影響を受ける可能性のある外部パッケージ
### パッケージ名@バージョン
- **使用箇所**: {{どこで使用されているか(相対パス)}}
- **影響の可能性**: {{どのような影響が考えられるか}}
- **リスクレベル**: 高/中/低
- **推奨対応**: {{必要な対応があれば}}
---
## パッケージ依存関係の注意事項
- {{注意事項1}}
- {{注意事項2}}
---
*外部パッケージへの影響は間接的である可能性があります。実際の影響は詳細な検証が必要です。*
recommendations.md)# 影響範囲分析 - 推奨アクション
**実施日時**: {{実施日時}}
**分析者**: Claude Code
[← インデックスに戻る](./index.md)
---
## 優先度: 高(即座に対応が必要)
### 1. [相対パス:行番号](相対パス#L行番号)
- **理由**: {{なぜ即座に対応が必要か}}
- **影響範囲**: {{影響範囲}}
- **推奨対応**: {{具体的な対応方法}}
- **所要時間**: {{概算}}
### 2. [相対パス:行番号](相対パス#L行番号)
(同様の形式で記述)
---
## 優先度: 中(レビューと検証が必要)
### 1. [相対パス:行番号](相対パス#L行番号)
- **理由**: {{なぜレビューが必要か}}
- **影響範囲**: {{影響範囲}}
- **推奨対応**: {{具体的な対応方法}}
---
## 優先度: 低(念のため確認推奨)
### 1. [相対パス:行番号](相対パス#L行番号)
- **理由**: {{確認が推奨される理由}}
---
## テスト推奨範囲
### ユニットテスト
- {{テストすべき関数・クラス1}}
- {{テストすべき関数・クラス2}}
### 統合テスト
- {{テストすべきモジュール間連携1}}
- {{テストすべきモジュール間連携2}}
### E2Eテスト
- {{テストすべきユーザーシナリオ1}}
- {{テストすべきユーザーシナリオ2}}
---
## その他の注意事項
- {{注意すべき点1}}
- {{注意すべき点2}}
- {{注意すべき点3}}
---
*推奨アクションは分析結果に基づいて生成されています。実際の対応は状況に応じて調整してください。*
details.md)# 影響範囲分析 - 分析詳細
**実施日時**: {{実施日時}}
**分析者**: Claude Code
[← インデックスに戻る](./index.md)
---
## 検索キーワード
### 使用した検索パターン
- `{{パターン1}}`
- `{{パターン2}}`
- `{{パターン3}}`
---
## 分析範囲
### 対象ディレクトリ
- {{分析したディレクトリ(相対パス)}}
### 除外条件
- {{除外条件1}}
- {{除外条件2}}
### 分析深度
- 最大追跡階層: {{何階層まで追跡したか}}
- 分析したファイル総数: {{総数}}
---
## 分析手法
### 使用したツール
- {{使用したツール1}}
- {{使用したツール2}}
### 分析アプローチ
{{分析アプローチの説明}}
---
## 制限事項
- {{分析の制限や注意点1}}
- {{分析の制限や注意点2}}
- {{分析の制限や注意点3}}
---
## 追加情報
### 検出できなかった可能性のある影響
- 動的な呼び出し(リフレクション、eval など)
- 文字列による間接的な参照
- ランタイムでの動的ロード
---
*この分析結果は自動生成されたものです。実際の影響範囲は、コードレビューやテストを通じて確認してください。*
重要: 必ず以下の順序でファイルを作成してください:
インデックスファイルを最初に作成 ({{ベースディレクトリ}}/index.md)
サマリーファイルを作成 ({{ベースディレクトリ}}/summary.md)
影響がある層別ファイルを作成(影響があるものだけ)
{{ベースディレクトリ}}/core.md, {{ベースディレクトリ}}/api.md, ...その他のファイルを作成
{{ベースディレクトリ}}/external.md{{ベースディレクトリ}}/recommendations.md{{ベースディレクトリ}}/details.md各ファイルは Write ツールを使って個別に保存してください。一つのファイルにまとめないでください。 </impact_analysis_template>
<summary_template> あなたは影響範囲分析のサマリー作成エキスパートです。以下の情報に基づいて、全体サマリーを作成してください。
変更対象: {{変更対象の具体的な情報}} 分析ファイルリスト: {{分析ファイルリスト}}(インデックスファイル、サマリーファイル、層別ファイルなど) 最終サマリーファイル名: {{サマリーファイル名}}(例: ".dcs/20251008123456_calculate_total/final_summary.md") カレントディレクトリ: {{カレントディレクトリ}}
すべてのファイルパスは、カレントディレクトリを基準とした相対パスで記載してください。 絶対パス(/Users/... や C:... など)は使用しないでください。 このファイルは500行以内に収まるように簡潔に記述してください。
例:
/Users/makotan/projects/esample/src/utils/helper.tssrc/utils/helper.ts以下の出力形式で {{サマリーファイル名}} に結果を保存してください。
# 影響範囲分析 - 最終サマリー
**実施日時**: {{実施日時}}
**分析者**: Claude Code
---
## ナビゲーション
- [初回分析インデックス](./index.md)
- [初回分析サマリー](./summary.md)
(追加調査がある場合は追加)
- [追加調査2(コアロジック層)](./2_core.md)
- [追加調査3(API層)](./3_api.md)
---
## 分析概要
### 変更対象
- **対象**: {{変更対象の詳細}}
- **変更内容**: {{変更内容の種類}}
- **分析目的**: {{分析の目的}}
### 分析実施状況
- **実施した分析回数**: {{分析回数}}回(初回 + 追加調査{{N}}回)
- **作成されたファイル数**: {{ファイル数}}件
---
## 総合サマリー
| 項目 | 内容 |
|------|------|
| 影響を受けるファイル総数 | XX件 |
| 総合リスク評価 | **高/中/低** |
| 最大影響深度 | X階層 |
| 推奨対応優先度 | 高/中/低 |
### 総合リスク評価の根拠
{{全体を通じたリスク評価の理由を記述}}
---
## 主要な発見事項
### 重要なハイライト
1. **{{ハイライト1のタイトル}}**
- {{詳細説明}}
- 影響: {{影響の概要}}
- リスク: 高/中/低
2. **{{ハイライト2のタイトル}}**
- {{詳細説明}}
- 影響: {{影響の概要}}
- リスク: 高/中/低
3. **{{ハイライト3のタイトル}}**
- {{詳細説明}}
- 影響: {{影響の概要}}
- リスク: 高/中/低
---
## ファイル種別ごとの影響統計
| ファイル種別 | 影響ファイル数 | リスクレベル | 備考 |
|-------------|--------------|------------|------|
| コアロジック | XX件 | 高/中/低 | {{備考}} |
| API層 | XX件 | 高/中/低 | {{備考}} |
| サービス層 | XX件 | 高/中/低 | {{備考}} |
| データアクセス層 | XX件 | 高/中/低 | {{備考}} |
| UI層 | XX件 | 高/中/低 | {{備考}} |
| テスト | XX件 | 低 | {{備考}} |
| 設定 | XX件 | 高/中/低 | {{備考}} |
| その他 | XX件 | 高/中/低 | {{備考}} |
---
## 統合推奨アクション
### 優先度: 高(即座に対応が必要)
1. [相対パス:行番号](相対パス#L行番号) - {{理由}}
2. [相対パス:行番号](相対パス#L行番号) - {{理由}}
3. [相対パス:行番号](相対パス#L行番号) - {{理由}}
### 優先度: 中(レビューと検証が必要)
1. [相対パス:行番号](相対パス#L行番号) - {{理由}}
2. [相対パス:行番号](相対パス#L行番号) - {{理由}}
3. [相対パス:行番号](相対パス#L行番号) - {{理由}}
### 優先度: 低(念のため確認推奨)
1. [相対パス:行番号](相対パス#L行番号) - {{理由}}
2. [相対パス:行番号](相対パス#L行番号) - {{理由}}
---
## 全体的な対応方針
### 推奨アプローチ
1. **{{アプローチ1}}**
- {{詳細説明}}
2. **{{アプローチ2}}**
- {{詳細説明}}
3. **{{アプローチ3}}**
- {{詳細説明}}
### テスト戦略
- **ユニットテスト**: {{テスト対象と範囲}}
- **統合テスト**: {{テスト対象と範囲}}
- **E2Eテスト**: {{テスト対象と範囲}}
- **リグレッションテスト**: {{特に注意すべき領域}}
### リスク軽減策
1. {{リスク軽減策1}}
2. {{リスク軽減策2}}
3. {{リスク軽減策3}}
---
## 外部依存関係の統合情報
### 影響を受ける外部パッケージ
- **パッケージ名**: パッケージ名@バージョン
- **影響の可能性**: {{統合された影響情報}}
- **推奨対応**: {{推奨される対応}}
---
## 追加で考慮すべき事項
1. **{{考慮事項1}}**
- {{詳細}}
2. **{{考慮事項2}}**
- {{詳細}}
3. **{{考慮事項3}}**
- {{詳細}}
---
## 詳細分析ファイル一覧
以下のファイルに詳細な分析結果が記録されています:
1. [{{ファイル名1}}]({{相対パス1}}) - 初回分析
2. [{{ファイル名2}}]({{相対パス2}}) - 追加調査1
3. [{{ファイル名3}}]({{相対パス3}}) - 追加調査2
...
---
## 分析の制限事項と注意点
- {{制限事項1}}
- {{制限事項2}}
- {{制限事項3}}
---
*このサマリーは複数の分析結果を統合して自動生成されたものです。詳細は個別の分析ファイルを参照してください。*
必ず Write ツールを使用して、{{サマリーファイル名}} に結果を保存してください。 </summary_template>