Skip to content
Development
Command

/impact-analysis

影響範囲分析を実施する

BOOST
From plugin
tsumiki
97443 skills43 commands
Install
> /plugin marketplace add classmethod/tsumiki
> /plugin install tsumiki@tsumiki

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/impact-analysis

Context preview

What this command does when you run it.

影響範囲分析を実施する

Command definition

impact-analysis.md
description: 影響範囲分析を実施する
allowed-tools: Read, Glob, Grep, Task, Bash
argument-hint: "[変更対象(ファイルパス/関数名/クラス名/自然言語)]"

変更対象の影響範囲を分析し、修正が必要なファイルとリスク評価を提供します。一時ファイルを作成せず直接 Task で実行し、必要に応じて追加調査を繰り返し、最後に全体サマリーを作成します。

context

出力ディレクトリ=".dcs" カレントディレクトリ={{プロジェクトルート}} 分析ファイルリスト=[]

step

  • $1 がない場合、「引数に変更対象を指定してください(例: ファイルパス、関数名、クラス名、または自然言語)」と言って終了する
  • $1 の内容を簡潔に説明する
  • AskUserQuestion ツールを使って以下の質問を順番に実施し、context を更新する:

1. 変更対象の種類を確認 2. 変更内容の種類を確認 3. 分析の目的を確認 4. 除外条件の有無を確認

  • 収集した context の内容をまとめてユーザに宣言する
  • step2 を実行する

step2

  • 既存の出力ファイルを確認して、重複しないナンバリングを決定する
  • {{出力ディレクトリ}}/{{timestamp}}_* を検索
  • 今回の内容を簡単に英語化したもの(例: "calculate_function", "user_model")を作成
  • 同じ timestamp と内容で既存ディレクトリがある場合、末尾の連番を +1 する
  • ベースディレクトリを "{{出力ディレクトリ}}/{{timestamp}}_{{内容の英語化}}" とする
  • 例: ".dcs/20251008_123456_calculate_function"
  • 例: ".dcs/20251008_123456_user_model"
  • 分析結果ファイルのリストを準備する(セクション別分割ファイル)
  • インデックスファイル: "{{ベースディレクトリ}}/index.md"
  • サマリーファイル: "{{ベースディレクトリ}}/summary.md"
  • 各層別ファイル: "core.md", "api.md", "service.md", "data.md", "ui.md", "test.md", "config.md", "other.md"
  • その他: "external.md", "recommendations.md", "details.md"
  • すべてのファイル名を 分析ファイルリスト に追加する
  • <impact_analysis_template> の内容を context の情報で埋めて、Task ツールで直接実行する
  • subagent_type: "general-purpose"
  • description: "影響範囲分析の実行"
  • prompt: テンプレートの内容を context で埋めた完全なプロンプト
  • Task の実行結果を受け取る
  • step3 を実行する

step3

  • 出力されたファイルを Read で確認する
  • 深掘り内容のルール に基づいて、追加調査が必要かを判断する
  • 追加調査が必要な場合:
  • 追加調査の内容をリストとしてユーザに提示する
  • ユーザの承認を得る
  • 追加調査項目が複数ある場合、各項目に対して個別に Task ツールで追加調査を実行する
  • 各項目ごとに新しい連番で追加ファイルとして保存する(例: "2_core.md", "3_api.md", "4_service.md")
  • 各ファイル名を 分析ファイルリスト に追加する
  • 再度 step3 を実行する(追加調査が不要になるまで繰り返す、最大5回)
  • 追加調査が不要な場合:
  • step4 を実行する

step4

  • <summary_template> の内容を使って、Task ツールで最終サマリーファイルを作成する
  • subagent_type: "general-purpose"
  • description: "影響範囲分析 最終サマリーの作成"
  • prompt: サマリーテンプレートの内容を context で埋めた完全なプロンプト
  • 最終サマリーファイル名: "{{ベースディレクトリ}}/final_summary.md"
  • 全ての分析ファイルのパスを分析回数別に整理して表示する
  • 初回分析ファイル一覧(インデックス、サマリー、層別ファイルなど)
  • 追加調査ファイル一覧(該当する場合)
  • 最終サマリー
  • 分析完了をユーザに報告する

rules

確認ポイント

AskUserQuestion ツールを使って、以下の質問を順番に実施する:

質問1: 変更対象の種類

  • **質問**: 変更対象はどの種類ですか?
  • **header**: "対象種類"
  • **options**:
  • "ファイルパス" - 特定のファイル全体またはファイル内の特定箇所
  • "関数/メソッド" - 特定の関数やメソッド
  • "クラス/型" - クラスや型定義
  • "自然言語" - 機能や概念の説明(具体的なコード要素は未特定)

質問2: 変更内容の種類

  • **質問**: どのような変更を予定していますか?
  • **header**: "変更種類"
  • **multiSelect**: true
  • **options**:
  • "削除" - コードやファイルを削除する
  • "変更" - 既存のコードを修正する
  • "追加" - 新しいコードや機能を追加する
  • "リファクタリング" - 動作を変えずに内部実装を改善する

質問3: 分析の目的

  • **質問**: この影響範囲分析の主な目的は何ですか?
  • **header**: "分析目的"
  • **options**:
  • "リリース前の影響確認" - 本番リリース前のリスク評価
  • "リファクタリング計画" - コード改善の影響範囲把握
  • "バグ修正の影響確認" - バグ修正による副作用の確認
  • "機能追加の影響確認" - 新機能追加による既存機能への影響確認

質問4: 除外条件

  • **質問**: 分析から除外したい対象はありますか?
  • **header**: "除外条件"
  • **multiSelect**: true
  • **options**:
  • "テストコード" - テストファイルを除外
  • "ドキュメント" - ドキュメントファイルを除外
  • "特定ディレクトリ" - 特定のディレクトリを除外(追記で指定)
  • "除外なし" - すべて分析対象にする

contextとして以下を保持する

  • 変更対象(具体的なファイルパスまたはコード要素)
  • 変更対象の種類
  • 変更内容の種類
  • 分析の目的
  • 除外条件

ファイル名のルール

timestamp の形式

  • yyyyMMddHHmmss 形式(例: 20251008123456)

内容の英語化のルール

  • 変更対象を簡潔な英語に変換する
  • スネークケース(snake_case)を使用
  • 最大30文字程度に収める
  • 例:
  • "calculateTotal 関数" → "calculate_total"
  • "ユーザーモデル" → "user_model"
  • "src/utils/helper.ts" → "utils_helper"
  • "APIエンドポイント" → "api_endpoint"

セクション別ファイル名のルール

  • 分析結果は論理的なセクション単位で分割し、各セクション500行以内を目標とする
  • 各セクションはベースディレクトリ内に個別ファイルとして配置
  • セクション一覧:
  • `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.ts`
  • ✅ `src/utils/helper.ts`
  • カレントディレクトリは分析開始時の作業ディレクトリ
  • すべてのファイルパスは相対パスで統一する

リスク評価基準

総合的に以下の観点でリスクを評価する:

影響の深さ

  • 直接参照: 高リスク
  • 1階層の間接参照: 中リスク
  • 2階層以上の間接参照: 低リスク

影響の範囲

  • 影響を受けるファイル数が多い: リスク増加
  • 影響が限定的: リスク低下

コードの重要度

  • コアロジック、データ処理: 高リスク
  • API層、ビジネスロジック: 中リスク
  • UI層、表示ロジック: 低リスク
  • テストコード: 参考情報

変更の種類

  • 削除、破壊的変更: 高リスク
  • 型変更、インターフェース変更: 中リスク
  • 追加、内部実装のみの変更: 低リスク

ファイル種別の分類基準

以下の基準でファイルを分類する:

  • **コアロジック**: ビジネスロジック、データモデル、ユーティリティ
  • **API層**: エンドポイント、コントローラー、ルーティング
  • **サービス層**: サービスクラス、ビジネスサービス
  • **データアクセス層**: リポジトリ、DAO、クエリ
  • **UI層**: コンポーネント、ビュー、テンプレート
  • **テスト**: テストコード全般
  • **設定**: 設定ファイル、環境変数
  • **その他**: 上記に該当しないファイル

影響の種類

  • **直接参照**: import/require による直接的な依存
  • **関数呼び出し**: 関数・メソッドの直接呼び出し
  • **継承**: クラスの継承関係
  • **実装**: インターフェースの実装
  • **型依存**: 型定義への依存
  • **間接参照**: 中間ファイルを経由した依存

追加調査が必要な条件

以下の条件のいずれかに該当する場合、追加調査を提案する:

  • リスク評価が「高」のファイルが5件以上ある
  • 影響が大きいが詳細が不明なファイルがある
  • 複雑な依存関係があるファイルがある(循環参照、多階層依存など)
  • 外部APIとの連携部分に影響がある
  • データベーススキーマとの関連がある
  • 設定ファイルへの影響がある
  • パフォーマンスへの影響が懸念される
  • 分析結果に不明確な点や曖昧な箇所がある

深掘り内容のルール

調査した内容を元に、以下の観点で追加調査が必要な箇所をリストアップする:

  • 影響が大きいが詳細が不明なファイル
  • 複雑な依存関係があるファイル
  • 外部APIとの連携部分
  • データベーススキーマとの関連
  • 設定ファイルへの影響
  • パフォーマンスへの影響

具体的な調査内容を提示し、originRule を参考に深掘りする。

step3 の繰り返しルール

  • 追加調査が必要な項目がある場合、step3 を繰り返す
  • 最大5回まで繰り返す(無限ループ防止)
  • 追加調査項目が複数ある場合は、各項目ごとに個別に Task を実行する
  • 各繰り返しで新しい連番のファイ
Read more
Ships withtsumiki

TsumikiはAI駆動開発のためのフレームワークです。要件定義から実装まで、AIを活用した効率的な開発プロセスを提供します。 基本的にClaude Codeをサポートしますが、それ以外のツールでも使用できます。Claude Code以外のツールでtsumikiを使用する を参照してください。

Get the whole plugin

Other commands on tsumiki.

auto-debug
Command

auto-debug

テストエラーを解消するための自動デバッグプロセス。全テストケースの確認からエラー原因の調査、修正まで段階的に実行し、テストケースの成功率向上を目指します。

build-fix
Command

build-fix

ビルドエラー(コンパイルエラー、型エラー、依存パッケージ未解決)を自動的に分析・修正します。auto-debugから委譲される他、ユーザが直接呼び出すことも可能です。