Skip to content

Latest commit

 

History

History
421 lines (325 loc) · 15.3 KB

File metadata and controls

421 lines (325 loc) · 15.3 KB

DCS ドキュメント

全体概要

DCSは、ソフトウェア開発の各フェーズにおける様々な分析・計画作業を支援するコマンドスイートです。各コマンドは対話的に必要な情報を収集し、.dcs/ ディレクトリ配下に構造化された分析結果を出力します。

開発フェーズ別コマンド一覧

企画・要件定義フェーズ

  • /tsumiki:dcs:feature-rubber-duck - アイデア整理とPRD作成

設計・分析フェーズ

  • /tsumiki:dcs:sequence-diagram-analysis - シーケンス図作成
  • /tsumiki:dcs:state-transition-analysis - 状態遷移分析
  • /tsumiki:dcs:impact-analysis - 影響範囲分析
  • /tsumiki:dcs:edgecase-analysis - エッジケース・異常系分析

実装計画フェーズ

  • /tsumiki:dcs:incremental-dev - 増分開発計画

デバッグ・保守フェーズ

  • /tsumiki:dcs:bug-analysis - バグ原因分析
  • /tsumiki:dcs:performance-analysis - 性能問題調査

コードベース理解

  • /tsumiki:dcs:code-question - ソースコードに関する質問回答

コマンド詳細

1. feature-rubber-duck

用途 曖昧なアイデアや要望を対話を通じて整理し、実現可能なPRD(Product Requirements Document)を作成します。

概要 ラバーダック法のように、対話を重ねながら機能アイデアを具体化していきます。コードベース調査、技術検証、要件の具体化を段階的に進め、最終的に実装可能なPRDを作成します。

使うタイミング

  • 新機能のアイデアを整理したいとき
  • 機能要件が曖昧で具体化が必要なとき
  • 既存コードベースへの組み込み方を検討したいとき
  • 技術的実現可能性を検証しながら要件を詰めたいとき

主な出力ファイル

.dcs/{{timestamp}}_{{feature_name}}/
├── index.md              # セッション情報のインデックス
├── conversation.md       # 対話履歴
├── context.md           # 収集したコンテキスト情報
├── research.md          # 調査結果(コードベース、技術検証など)
└── prd.md               # 最終的なPRD(Product Requirements Document)

特徴

  • 最大10イテレーションの対話セッション
  • コードベース調査とWeb検索を活用した技術検証
  • 段階的な要件の具体化
  • 実装可能性を考慮したPRD作成

2. sequence-diagram-analysis

用途 指定された機能のシーケンス図をmermaid形式で作成します。

概要 機能の処理フローを視覚化し、コンポーネント間の相互作用を明確にします。コードベースを分析し、関数呼び出し、データフロー、外部システムとの連携を図示します。

使うタイミング

  • 複雑な処理フローを理解したいとき
  • 既存機能の動作を可視化したいとき
  • リファクタリングやデバッグの前にフローを把握したいとき
  • ドキュメント作成や設計レビューのため

主な出力ファイル

.dcs/{{timestamp}}_{{feature_name}}/
├── index.md              # 分析情報のインデックス
├── tmp/                  # 一時調査結果(コンテキスト削減用)
│   ├── initial_survey.md
│   └── detailed_survey.md
└── sequence_diagram.md   # Mermaidシーケンス図とフロー説明

特徴

  • 一時ファイルを活用したコンテキスト削減
  • 複数シナリオ(正常系・異常系)のサポート
  • 詳細レベルの調整可能(概要・詳細・実装レベル)
  • Mermaid形式での出力

3. state-transition-analysis

用途 対象データの状態遷移に関わる全ての機能を特定し、状態遷移フロー、関連データとの依存関係、リスク評価を提供します。

概要 エンティティやリソースの状態管理を包括的に分析し、状態遷移図、遷移表、機能別分析、データ依存関係、リスク評価を作成します。

使うタイミング

  • 状態管理ロジックを理解したいとき
  • ワークフローや承認フローを可視化したいとき
  • データの状態変更に関わる機能を一覧化したいとき
  • 状態遷移の一貫性やリスクを評価したいとき

主な出力ファイル

.dcs/{{timestamp}}_{{data_name}}/
├── index.md              # 分析情報のインデックス
├── summary.md            # 分析サマリー
├── diagram.md            # Mermaid状態遷移図
├── transitions.md        # 状態遷移表
├── functions.md          # 機能別分析
├── dependencies.md       # データ依存関係分析
├── risks.md             # リスク評価
└── recommendations.md    # 推奨事項

特徴

  • 状態フィールドの自動検出
  • Mermaid状態遷移図の生成
  • 網羅的な機能特定
  • 関連データの依存関係分析
  • リスク評価と推奨事項

4. impact-analysis

用途 変更対象の影響範囲を分析し、修正が必要なファイルとリスク評価を提供します。

概要 ファイル、関数、クラス、または自然言語で指定された変更対象について、影響を受ける全てのコード箇所を特定し、層別に整理します。リスク評価と推奨事項も提供します。

使うタイミング

  • コード変更前に影響範囲を把握したいとき
  • リファクタリングの影響を評価したいとき
  • API変更やモデル変更の影響を調査したいとき
  • レビューやテスト計画の策定時

主な出力ファイル

.dcs/{{timestamp}}_{{target_name}}/
├── 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           # 詳細情報

特徴

  • 層別の影響範囲分析
  • リスクレベルの評価
  • 修正の優先順位付け
  • テスト戦略の提案

5. incremental-dev

用途 増分開発の計画を立案し、実装方法毎のPRD(Product Requirements Document)を作成します。

概要 開発対象を分析し、初期調査から追加調査を経て、複数の実装アプローチを提示します。各アプローチについて詳細なPRDを作成し、段階的な実装計画を立案します。

使うタイミング

  • 新機能の実装計画を立てたいとき
  • 複数の実装アプローチを比較検討したいとき
  • 段階的なリリース計画を作成したいとき
  • 既存システムへの機能追加を計画するとき

主な出力ファイル

.dcs/{{timestamp}}_{{feature_name}}/
├── index.md                    # 分析情報のインデックス
├── survey_summary.md           # 初期調査サマリー
├── existing_impl.md            # 既存実装調査
├── tech_stack.md              # 技術スタック
├── dependencies.md            # 依存関係分析
├── complexity.md              # 複雑度評価
├── constraints.md             # 課題と制約
├── additional_research/       # 追加調査結果
│   └── {{research_topic}}.md
└── approaches/                # 実装アプローチ毎のPRD
    ├── approach_1_{{name}}.md
    ├── approach_2_{{name}}.md
    └── approach_3_{{name}}.md

特徴

  • 初期調査での包括的な情報収集
  • 複数の実装アプローチの提示
  • 各アプローチの詳細PRD作成
  • 段階的な実装計画
  • 500行以内のファイル分割

6. bug-analysis

用途 バグの原因を特定するための詳細分析を実施します。

概要 バグの発生経緯や症状から原因を特定し、修正方針を提示します。ソースコードを詳細に分析し、段階的に原因を絞り込みます。初期調査、処理フロー分析、根本原因分析を経て、最終レポートを作成します。

使うタイミング

  • バグの原因が不明なとき
  • 複雑な不具合を調査したいとき
  • 再現性の低いバグを分析したいとき
  • 根本原因を特定して恒久対策を立てたいとき

主な出力ファイル

.dcs/{{timestamp}}_{{bug_name}}/
├── index.md                    # 分析情報のインデックス
├── initial_investigation.md    # 初期調査結果
├── flow_analysis.md           # 処理フロー分析
├── root_cause_analysis.md     # 根本原因分析
└── final_report.md            # 最終レポート

特徴

  • 対話的な情報収集
  • 段階的な原因の絞り込み
  • 処理フローの詳細分析
  • 根本原因の特定
  • 修正方針の提示

7. performance-analysis

用途 性能問題の原因を調査します。

概要 性能問題の原因を特定するための包括的な調査を実施します。初期調査、詳細な原因分析、最終サマリーを段階的に作成し、性能問題の根本原因を明らかにします。

使うタイミング

  • パフォーマンスが劣化しているとき
  • レスポンスが遅い機能を調査したいとき
  • スケーラビリティの問題を特定したいとき
  • 最適化の優先順位を決めたいとき

主な出力ファイル

.dcs/{{timestamp}}_{{target_name}}/
├── index.md                # 分析情報のインデックス
├── initial.md             # 初期調査結果
├── causes.md              # 原因分析
└── recommendations.md      # 推奨対応

特徴

  • TodoWriteによるタスク管理
  • 症状と発生状況の詳細ヒアリング
  • 複数の原因候補の特定
  • 優先順位付けされた推奨対応
  • パフォーマンスボトルネックの特定

8. code-question

用途 ソースコードに関する質問に対して、コードベースを調査して分かりやすく回答します。

概要 ユーザーの質問内容を分析し、質問の種類(コードの場所/動作の仕方/設計の理由/使い方)に応じた適切なアプローチで調査を行います。追加質問にも対応し、最大3回まで深掘り可能です。

使うタイミング

  • 特定の機能やクラスがどこにあるか知りたいとき
  • コードの動作フローを理解したいとき
  • 設計意図やアーキテクチャの理由を知りたいとき
  • 特定のAPIや機能の使い方を確認したいとき

主な出力ファイル

.dcs/{{timestamp}}_{{question_topic}}/
├── answer.md             # 初回回答
├── answer_2.md          # 追加回答(該当する場合)
└── answer_3.md          # 追加回答(該当する場合)

特徴

  • 質問の種類に応じた調査アプローチの自動選択
  • 追加質問への対応(最大3回)
  • 構造化された回答(概要→詳細→補足→まとめ)
  • ファイルパスと行番号付きの参照

9. edgecase-analysis

用途 システムの各レイヤーにおける包括的なエッジケース・エラー状態を詳細に分析し、見落としがちな異常系シナリオを洗い出します。

概要 要件定義書またはソースコードを入力として、アプリケーション層・UI・データ管理・ネットワーク・非同期処理・認証・エラーハンドリングなど各層で発生する複合的なエッジケースを網羅的に分析します。

使うタイミング

  • 新機能の実装前にエッジケースを洗い出したいとき
  • テストケースの網羅性を向上させたいとき
  • 異常系の処理漏れがないか確認したいとき
  • セキュリティや信頼性の観点でリスクを評価したいとき

主な出力ファイル

.dcs/{{timestamp}}_{{target_name}}/
├── index.md              # 分析情報のインデックス
├── check_list.md         # エッジケースチェックリスト
└── (カテゴリ別分析ファイル)

分析カテゴリ

  • アプリケーション層ビジネスロジック
  • UI状態
  • データ管理層
  • ネットワーク通信層
  • 非同期処理・メッセージング
  • 認証・認可
  • エラーハンドリング
  • データモデル状態組み合わせ
  • 複合的なエッジケース

特徴

  • 要件定義書ベースとソースコードベースの2つの分析モード
  • 9カテゴリによる網羅的なエッジケース分析
  • チェックリスト形式での出力

共通の出力構造

すべてのコマンドは .dcs/ ディレクトリ配下にタイムスタンプ付きのディレクトリを作成し、以下のような構造で結果を出力します:

.dcs/
└── {{timestamp}}_{{target_name}}/
    ├── index.md          # 分析の概要とメタ情報
    ├── (各種分析結果ファイル)
    └── (サブディレクトリ)

タイムスタンプ形式

YYYYMMDD_HHMMSS 形式(例: 20251030_143022

重複防止

同一タイムスタンプ・同一内容のディレクトリが存在する場合、末尾に連番が付与されます。


使用可能なツール

各コマンドで使用可能なツールは、ファイルヘッダーの allowed-tools に記載されています:

  • Read, Glob, Grep: ファイル検索・読み込み
  • Task: サブタスクの実行(コンテキスト削減)
  • Bash: シェルコマンド実行
  • AskUserQuestion: 対話的な情報収集
  • Write: ファイル書き込み
  • TodoWrite: タスク管理(performance-analysisで使用)
  • WebSearch, WebFetch: Web検索・情報取得(feature-rubber-duckで使用)

実行例

バグ分析の実行

/tsumiki:dcs:bug-analysis カート内の商品合計金額が正しく計算されない

影響範囲分析の実行

/tsumiki:dcs:impact-analysis src/models/User.ts

シーケンス図作成の実行

/tsumiki:dcs:sequence-diagram-analysis 注文確定処理

増分開発計画の実行

/tsumiki:dcs:incremental-dev ユーザー認証機能の追加

ソースコードへの質問

/tsumiki:dcs:code-question 認証フローはどのように実装されていますか

エッジケース分析の実行

/tsumiki:dcs:edgecase-analysis ユーザー認証システム

注意事項

  1. 対話型コマンド: すべてのコマンドは対話的に情報を収集します。質問に答えることで、より正確な分析が可能になります。

  2. 出力ディレクトリ: すべての出力は .dcs/ ディレクトリに集約されます。gitignoreに追加することを推奨します。