|
| 1 | +# DCS ドキュメント |
| 2 | + |
| 3 | +## 全体概要 |
| 4 | + |
| 5 | +DCSは、ソフトウェア開発の各フェーズにおける様々な分析・計画作業を支援するコマンドスイートです。各コマンドは対話的に必要な情報を収集し、`.dcs/` ディレクトリ配下に構造化された分析結果を出力します。 |
| 6 | + |
| 7 | +### 開発フェーズ別コマンド一覧 |
| 8 | + |
| 9 | +#### **企画・要件定義フェーズ** |
| 10 | +- `/tsumiki:dcs:feature-rubber-duck` - アイデア整理とPRD作成 |
| 11 | + |
| 12 | +#### **設計・分析フェーズ** |
| 13 | +- `/tsumiki:dcs:sequence-diagram-analysis` - シーケンス図作成 |
| 14 | +- `/tsumiki:dcs:state-transition-analysis` - 状態遷移分析 |
| 15 | +- `/tsumiki:dcs:impact-analysis` - 影響範囲分析 |
| 16 | + |
| 17 | +#### **実装計画フェーズ** |
| 18 | +- `/tsumiki:dcs:incremental-dev` - 増分開発計画 |
| 19 | + |
| 20 | +#### **デバッグ・保守フェーズ** |
| 21 | +- `/tsumiki:dcs:bug-analysis` - バグ原因分析 |
| 22 | +- `/tsumiki:dcs:performance-analysis` - 性能問題調査 |
| 23 | + |
| 24 | +--- |
| 25 | + |
| 26 | +## コマンド詳細 |
| 27 | + |
| 28 | +### 1. feature-rubber-duck |
| 29 | + |
| 30 | +**用途** |
| 31 | +曖昧なアイデアや要望を対話を通じて整理し、実現可能なPRD(Product Requirements Document)を作成します。 |
| 32 | + |
| 33 | +**概要** |
| 34 | +ラバーダック法のように、対話を重ねながら機能アイデアを具体化していきます。コードベース調査、技術検証、要件の具体化を段階的に進め、最終的に実装可能なPRDを作成します。 |
| 35 | + |
| 36 | +**使うタイミング** |
| 37 | +- 新機能のアイデアを整理したいとき |
| 38 | +- 機能要件が曖昧で具体化が必要なとき |
| 39 | +- 既存コードベースへの組み込み方を検討したいとき |
| 40 | +- 技術的実現可能性を検証しながら要件を詰めたいとき |
| 41 | + |
| 42 | +**主な出力ファイル** |
| 43 | +``` |
| 44 | +.dcs/{{timestamp}}_{{feature_name}}/ |
| 45 | +├── index.md # セッション情報のインデックス |
| 46 | +├── conversation.md # 対話履歴 |
| 47 | +├── context.md # 収集したコンテキスト情報 |
| 48 | +├── research.md # 調査結果(コードベース、技術検証など) |
| 49 | +└── prd.md # 最終的なPRD(Product Requirements Document) |
| 50 | +``` |
| 51 | + |
| 52 | +**特徴** |
| 53 | +- 最大10イテレーションの対話セッション |
| 54 | +- コードベース調査とWeb検索を活用した技術検証 |
| 55 | +- 段階的な要件の具体化 |
| 56 | +- 実装可能性を考慮したPRD作成 |
| 57 | + |
| 58 | +--- |
| 59 | + |
| 60 | +### 2. sequence-diagram-analysis |
| 61 | + |
| 62 | +**用途** |
| 63 | +指定された機能のシーケンス図をmermaid形式で作成します。 |
| 64 | + |
| 65 | +**概要** |
| 66 | +機能の処理フローを視覚化し、コンポーネント間の相互作用を明確にします。コードベースを分析し、関数呼び出し、データフロー、外部システムとの連携を図示します。 |
| 67 | + |
| 68 | +**使うタイミング** |
| 69 | +- 複雑な処理フローを理解したいとき |
| 70 | +- 既存機能の動作を可視化したいとき |
| 71 | +- リファクタリングやデバッグの前にフローを把握したいとき |
| 72 | +- ドキュメント作成や設計レビューのため |
| 73 | + |
| 74 | +**主な出力ファイル** |
| 75 | +``` |
| 76 | +.dcs/{{timestamp}}_{{feature_name}}/ |
| 77 | +├── index.md # 分析情報のインデックス |
| 78 | +├── tmp/ # 一時調査結果(コンテキスト削減用) |
| 79 | +│ ├── initial_survey.md |
| 80 | +│ └── detailed_survey.md |
| 81 | +└── sequence_diagram.md # Mermaidシーケンス図とフロー説明 |
| 82 | +``` |
| 83 | + |
| 84 | +**特徴** |
| 85 | +- 一時ファイルを活用したコンテキスト削減 |
| 86 | +- 複数シナリオ(正常系・異常系)のサポート |
| 87 | +- 詳細レベルの調整可能(概要・詳細・実装レベル) |
| 88 | +- Mermaid形式での出力 |
| 89 | + |
| 90 | +--- |
| 91 | + |
| 92 | +### 3. state-transition-analysis |
| 93 | + |
| 94 | +**用途** |
| 95 | +対象データの状態遷移に関わる全ての機能を特定し、状態遷移フロー、関連データとの依存関係、リスク評価を提供します。 |
| 96 | + |
| 97 | +**概要** |
| 98 | +エンティティやリソースの状態管理を包括的に分析し、状態遷移図、遷移表、機能別分析、データ依存関係、リスク評価を作成します。 |
| 99 | + |
| 100 | +**使うタイミング** |
| 101 | +- 状態管理ロジックを理解したいとき |
| 102 | +- ワークフローや承認フローを可視化したいとき |
| 103 | +- データの状態変更に関わる機能を一覧化したいとき |
| 104 | +- 状態遷移の一貫性やリスクを評価したいとき |
| 105 | + |
| 106 | +**主な出力ファイル** |
| 107 | +``` |
| 108 | +.dcs/{{timestamp}}_{{data_name}}/ |
| 109 | +├── index.md # 分析情報のインデックス |
| 110 | +├── summary.md # 分析サマリー |
| 111 | +├── diagram.md # Mermaid状態遷移図 |
| 112 | +├── transitions.md # 状態遷移表 |
| 113 | +├── functions.md # 機能別分析 |
| 114 | +├── dependencies.md # データ依存関係分析 |
| 115 | +├── risks.md # リスク評価 |
| 116 | +└── recommendations.md # 推奨事項 |
| 117 | +``` |
| 118 | + |
| 119 | +**特徴** |
| 120 | +- 状態フィールドの自動検出 |
| 121 | +- Mermaid状態遷移図の生成 |
| 122 | +- 網羅的な機能特定 |
| 123 | +- 関連データの依存関係分析 |
| 124 | +- リスク評価と推奨事項 |
| 125 | + |
| 126 | +--- |
| 127 | + |
| 128 | +### 4. impact-analysis |
| 129 | + |
| 130 | +**用途** |
| 131 | +変更対象の影響範囲を分析し、修正が必要なファイルとリスク評価を提供します。 |
| 132 | + |
| 133 | +**概要** |
| 134 | +ファイル、関数、クラス、または自然言語で指定された変更対象について、影響を受ける全てのコード箇所を特定し、層別に整理します。リスク評価と推奨事項も提供します。 |
| 135 | + |
| 136 | +**使うタイミング** |
| 137 | +- コード変更前に影響範囲を把握したいとき |
| 138 | +- リファクタリングの影響を評価したいとき |
| 139 | +- API変更やモデル変更の影響を調査したいとき |
| 140 | +- レビューやテスト計画の策定時 |
| 141 | + |
| 142 | +**主な出力ファイル** |
| 143 | +``` |
| 144 | +.dcs/{{timestamp}}_{{target_name}}/ |
| 145 | +├── index.md # 分析情報のインデックス |
| 146 | +├── summary.md # 全体サマリー |
| 147 | +├── core.md # コア層の影響 |
| 148 | +├── api.md # API層の影響 |
| 149 | +├── service.md # サービス層の影響 |
| 150 | +├── data.md # データ層の影響 |
| 151 | +├── ui.md # UI層の影響 |
| 152 | +├── test.md # テストへの影響 |
| 153 | +├── config.md # 設定ファイルへの影響 |
| 154 | +├── other.md # その他の影響 |
| 155 | +├── external.md # 外部システムへの影響 |
| 156 | +├── recommendations.md # 推奨事項 |
| 157 | +└── details.md # 詳細情報 |
| 158 | +``` |
| 159 | + |
| 160 | +**特徴** |
| 161 | +- 層別の影響範囲分析 |
| 162 | +- リスクレベルの評価 |
| 163 | +- 修正の優先順位付け |
| 164 | +- テスト戦略の提案 |
| 165 | + |
| 166 | +--- |
| 167 | + |
| 168 | +### 5. incremental-dev |
| 169 | + |
| 170 | +**用途** |
| 171 | +増分開発の計画を立案し、実装方法毎のPRD(Product Requirements Document)を作成します。 |
| 172 | + |
| 173 | +**概要** |
| 174 | +開発対象を分析し、初期調査から追加調査を経て、複数の実装アプローチを提示します。各アプローチについて詳細なPRDを作成し、段階的な実装計画を立案します。 |
| 175 | + |
| 176 | +**使うタイミング** |
| 177 | +- 新機能の実装計画を立てたいとき |
| 178 | +- 複数の実装アプローチを比較検討したいとき |
| 179 | +- 段階的なリリース計画を作成したいとき |
| 180 | +- 既存システムへの機能追加を計画するとき |
| 181 | + |
| 182 | +**主な出力ファイル** |
| 183 | +``` |
| 184 | +.dcs/{{timestamp}}_{{feature_name}}/ |
| 185 | +├── index.md # 分析情報のインデックス |
| 186 | +├── survey_summary.md # 初期調査サマリー |
| 187 | +├── existing_impl.md # 既存実装調査 |
| 188 | +├── tech_stack.md # 技術スタック |
| 189 | +├── dependencies.md # 依存関係分析 |
| 190 | +├── complexity.md # 複雑度評価 |
| 191 | +├── constraints.md # 課題と制約 |
| 192 | +├── additional_research/ # 追加調査結果 |
| 193 | +│ └── {{research_topic}}.md |
| 194 | +└── approaches/ # 実装アプローチ毎のPRD |
| 195 | + ├── approach_1_{{name}}.md |
| 196 | + ├── approach_2_{{name}}.md |
| 197 | + └── approach_3_{{name}}.md |
| 198 | +``` |
| 199 | + |
| 200 | +**特徴** |
| 201 | +- 初期調査での包括的な情報収集 |
| 202 | +- 複数の実装アプローチの提示 |
| 203 | +- 各アプローチの詳細PRD作成 |
| 204 | +- 段階的な実装計画 |
| 205 | +- 500行以内のファイル分割 |
| 206 | + |
| 207 | +--- |
| 208 | + |
| 209 | +### 6. bug-analysis |
| 210 | + |
| 211 | +**用途** |
| 212 | +バグの原因を特定するための詳細分析を実施します。 |
| 213 | + |
| 214 | +**概要** |
| 215 | +バグの発生経緯や症状から原因を特定し、修正方針を提示します。ソースコードを詳細に分析し、段階的に原因を絞り込みます。初期調査、処理フロー分析、根本原因分析を経て、最終レポートを作成します。 |
| 216 | + |
| 217 | +**使うタイミング** |
| 218 | +- バグの原因が不明なとき |
| 219 | +- 複雑な不具合を調査したいとき |
| 220 | +- 再現性の低いバグを分析したいとき |
| 221 | +- 根本原因を特定して恒久対策を立てたいとき |
| 222 | + |
| 223 | +**主な出力ファイル** |
| 224 | +``` |
| 225 | +.dcs/{{timestamp}}_{{bug_name}}/ |
| 226 | +├── index.md # 分析情報のインデックス |
| 227 | +├── initial_investigation.md # 初期調査結果 |
| 228 | +├── flow_analysis.md # 処理フロー分析 |
| 229 | +├── root_cause_analysis.md # 根本原因分析 |
| 230 | +└── final_report.md # 最終レポート |
| 231 | +``` |
| 232 | + |
| 233 | +**特徴** |
| 234 | +- 対話的な情報収集 |
| 235 | +- 段階的な原因の絞り込み |
| 236 | +- 処理フローの詳細分析 |
| 237 | +- 根本原因の特定 |
| 238 | +- 修正方針の提示 |
| 239 | + |
| 240 | +--- |
| 241 | + |
| 242 | +### 7. performance-analysis |
| 243 | + |
| 244 | +**用途** |
| 245 | +性能問題の原因を調査します。 |
| 246 | + |
| 247 | +**概要** |
| 248 | +性能問題の原因を特定するための包括的な調査を実施します。初期調査、詳細な原因分析、最終サマリーを段階的に作成し、性能問題の根本原因を明らかにします。 |
| 249 | + |
| 250 | +**使うタイミング** |
| 251 | +- パフォーマンスが劣化しているとき |
| 252 | +- レスポンスが遅い機能を調査したいとき |
| 253 | +- スケーラビリティの問題を特定したいとき |
| 254 | +- 最適化の優先順位を決めたいとき |
| 255 | + |
| 256 | +**主な出力ファイル** |
| 257 | +``` |
| 258 | +.dcs/{{timestamp}}_{{target_name}}/ |
| 259 | +├── index.md # 分析情報のインデックス |
| 260 | +├── initial.md # 初期調査結果 |
| 261 | +├── causes.md # 原因分析 |
| 262 | +└── recommendations.md # 推奨対応 |
| 263 | +``` |
| 264 | + |
| 265 | +**特徴** |
| 266 | +- TodoWriteによるタスク管理 |
| 267 | +- 症状と発生状況の詳細ヒアリング |
| 268 | +- 複数の原因候補の特定 |
| 269 | +- 優先順位付けされた推奨対応 |
| 270 | +- パフォーマンスボトルネックの特定 |
| 271 | + |
| 272 | +--- |
| 273 | + |
| 274 | +## 共通の出力構造 |
| 275 | + |
| 276 | +すべてのコマンドは `.dcs/` ディレクトリ配下にタイムスタンプ付きのディレクトリを作成し、以下のような構造で結果を出力します: |
| 277 | + |
| 278 | +``` |
| 279 | +.dcs/ |
| 280 | +└── {{timestamp}}_{{target_name}}/ |
| 281 | + ├── index.md # 分析の概要とメタ情報 |
| 282 | + ├── (各種分析結果ファイル) |
| 283 | + └── (サブディレクトリ) |
| 284 | +``` |
| 285 | + |
| 286 | +### タイムスタンプ形式 |
| 287 | +`YYYYMMDD_HHMMSS` 形式(例: `20251030_143022`) |
| 288 | + |
| 289 | +### 重複防止 |
| 290 | +同一タイムスタンプ・同一内容のディレクトリが存在する場合、末尾に連番が付与されます。 |
| 291 | + |
| 292 | +--- |
| 293 | + |
| 294 | +## 使用可能なツール |
| 295 | + |
| 296 | +各コマンドで使用可能なツールは、ファイルヘッダーの `allowed-tools` に記載されています: |
| 297 | + |
| 298 | +- **Read, Glob, Grep**: ファイル検索・読み込み |
| 299 | +- **Task**: サブタスクの実行(コンテキスト削減) |
| 300 | +- **Bash**: シェルコマンド実行 |
| 301 | +- **AskUserQuestion**: 対話的な情報収集 |
| 302 | +- **Write**: ファイル書き込み |
| 303 | +- **TodoWrite**: タスク管理(performance-analysisで使用) |
| 304 | +- **WebSearch, WebFetch**: Web検索・情報取得(feature-rubber-duckで使用) |
| 305 | + |
| 306 | +--- |
| 307 | + |
| 308 | +## 実行例 |
| 309 | + |
| 310 | +### バグ分析の実行 |
| 311 | +``` |
| 312 | +/tsumiki:dcs:bug-analysis カート内の商品合計金額が正しく計算されない |
| 313 | +``` |
| 314 | + |
| 315 | +### 影響範囲分析の実行 |
| 316 | +``` |
| 317 | +/tsumiki:dcs:impact-analysis src/models/User.ts |
| 318 | +``` |
| 319 | + |
| 320 | +### シーケンス図作成の実行 |
| 321 | +``` |
| 322 | +/tsumiki:dcs:sequence-diagram-analysis 注文確定処理 |
| 323 | +``` |
| 324 | + |
| 325 | +### 増分開発計画の実行 |
| 326 | +``` |
| 327 | +/tsumiki:dcs:incremental-dev ユーザー認証機能の追加 |
| 328 | +``` |
| 329 | + |
| 330 | +--- |
| 331 | + |
| 332 | +## 注意事項 |
| 333 | + |
| 334 | +1. **対話型コマンド**: すべてのコマンドは対話的に情報を収集します。質問に答えることで、より正確な分析が可能になります。 |
| 335 | + |
| 336 | +2. **出力ディレクトリ**: すべての出力は `.dcs/` ディレクトリに集約されます。gitignoreに追加することを推奨します。 |
| 337 | + |
0 commit comments