Skip to content
Development
Command

/feature-rubber-duck

アイデアを整理して実現可能なPRDを作成する

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/feature-rubber-duck

Context preview

What this command does when you run it.

アイデアを整理して実現可能なPRDを作成する

Command definition

feature-rubber-duck.md
description: アイデアを整理して実現可能なPRDを作成する
allowed-tools: Read, Glob, Grep, Task, Bash, WebSearch, WebFetch, AskUserQuestion
argument-hint: "[機能やアイデアの概要(任意)]"

曖昧なアイデアや要望を対話を通じて整理し、実現可能なPRD(Product Requirements Document)を作成します。コードベースの調査、技術検証、要件の具体化を段階的に進めます。

context

出力ディレクトリ=".dcs" カレントディレクトリ={{プロジェクトルート}} セッションファイルリスト=[] イテレーション回数=0 最大イテレーション=10

step

  • $1 がある場合、初期アイデアとして記録する
  • $1 がない場合、ユーザーに「どのような機能やアイデアについて相談したいですか?」と尋ねる
  • AskUserQuestion ツールを使って初期ヒアリングを実施し、context を更新する
  • 収集した context の内容をユーザーに宣言する
  • step2 を実行する

step2: セッション初期化

  • 既存の出力ファイルを確認して、重複しないナンバリングを決定する
  • {{出力ディレクトリ}}/{{timestamp}}_* を検索
  • 今回の内容を簡単に英語化したもの(例: "order_export", "payment_integration")を作成
  • 同じ timestamp と内容で既存ディレクトリがある場合、末尾の連番を +1 する
  • ベースディレクトリを "{{出力ディレクトリ}}/{{timestamp}}_{{内容の英語化}}" とする
  • 例: ".dcs/20251025123456_order_export"
  • セッションファイルのリストを準備する
  • インデックスファイル: "{{ベースディレクトリ}}/index.md"
  • 会話履歴ファイル: "{{ベースディレクトリ}}/conversation.md"
  • コンテキストファイル: "{{ベースディレクトリ}}/context.md"
  • 調査結果ファイル: "{{ベースディレクトリ}}/research.md"
  • PRDファイル: "{{ベースディレクトリ}}/prd.md"
  • すべてのファイル名を セッションファイルリスト に追加する
  • インデックスファイルを作成し、セッション情報を記録する
  • step3 を実行する

step3: 対話セッション

  • イテレーション回数を +1 する
  • 現在の理解状況をユーザーに確認する
  • これまでの整理内容を簡潔にまとめる
  • 不明点や確認したい点をリストアップする
  • ユーザーからの追加情報や質問への回答を受け取る
  • 必要に応じて以下を実施する:
  • **コードベース調査**: Task ツールで関連コードを検索・分析
  • **技術調査**: WebSearch/WebFetch で技術情報を収集
  • **既存機能確認**: Read/Grep で既存実装を確認
  • 新しい情報を context に統合し、整理する
  • 会話履歴ファイルとコンテキストファイルを更新する
  • 調査を実施した場合は調査結果ファイルを更新する
  • 次のアクションを判断する ルール に基づいて判断し、該当するステップに進む

step4: PRD作成

  • <prd_template> の内容を使って、Task ツールで PRD ファイルを作成する
  • subagent_type: "general-purpose"
  • description: "PRD(Product Requirements Document)の作成"
  • prompt: PRD テンプレートの内容を context で埋めた完全なプロンプト
  • PRD ファイル名: "{{ベースディレクトリ}}/prd.md"
  • インデックスファイルを最終更新する
  • 全てのセッションファイルのパスを整理して表示する
  • インデックスファイル
  • 会話履歴ファイル
  • コンテキストファイル
  • 調査結果ファイル(該当する場合)
  • PRDファイル
  • セッション完了をユーザーに報告する
  • ユーザーに次のアクションを提案する
  • PRDの内容を実装に進めるか
  • さらに詳細化が必要か
  • 影響範囲分析を実施するか

rules

初期ヒアリングの質問

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

質問1: アイデアのカテゴリ

  • **質問**: このアイデアはどのカテゴリに該当しますか?
  • **header**: "カテゴリ"
  • **multiSelect**: false
  • **options**:
  • "新機能の追加" - 全く新しい機能を追加したい
  • "既存機能の改善" - 既存の機能を改善・拡張したい
  • "技術的な改善" - パフォーマンス、アーキテクチャなどの技術的改善
  • "バグ修正・問題解決" - 既知の問題を解決したい

質問2: 優先度と緊急度

  • **質問**: この機能の優先度はどの程度ですか?
  • **header**: "優先度"
  • **multiSelect**: false
  • **options**:
  • "高 - すぐに必要" - ビジネスクリティカル、早急に必要
  • "中 - 近い将来必要" - 重要だが少し時間的余裕がある
  • "低 - あると良い" - Nice to have、時間があれば実装したい
  • "調査中 - まだ決まっていない" - 優先度を判断するために相談したい

質問3: 現状の理解度

  • **質問**: この機能に関連する技術やコードベースについて、どの程度理解していますか?
  • **header**: "理解度"
  • **multiSelect**: false
  • **options**:
  • "詳しく理解している" - 技術スタックやコードベースを把握している
  • "ある程度理解している" - 概要は理解しているが詳細は不明
  • "あまり理解していない" - 技術的な詳細はよくわからない
  • "全く理解していない" - 一から教えてほしい

contextとして以下を保持する:

  • アイデアの概要
  • カテゴリ
  • 優先度
  • 理解度
  • 関連する既存機能(判明している場合)
  • 技術的制約(判明している場合)

次のアクションを判断するルール

各イテレーションの終わりに、以下の基準で次のアクションを判断する:

step3 を継続する条件(以下のいずれかに該当)

  • ユーザーのアイデアがまだ曖昧で具体化が必要
  • 追加の技術調査や検証が必要
  • 既存コードベースとの統合方法が不明確
  • ユーザーからの追加情報待ち
  • イテレーション回数が最大イテレーション未満

step4 に進む条件(以下のすべてに該当)

  • アイデアが十分に具体化されている
  • 技術的な実現可能性が確認されている
  • 要件が明確に定義されている
  • ユーザーが PRD 作成に合意している

セッション終了条件

  • イテレーション回数が最大イテレーションに達した
  • ユーザーが明示的にセッション終了を希望した

ファイル名のルール

timestamp の形式

  • yyyyMMddHHmmss 形式(例: 20251025123456)

内容の英語化のルール

  • アイデアを簡潔な英語に変換する
  • スネークケース(snake_case)を使用
  • 最大30文字程度に収める
  • 例:
  • "注文履歴のエクスポート機能" → "order_export"
  • "決済方法の追加" → "payment_integration"
  • "パフォーマンス改善" → "performance_improvement"
  • "CSVインポート" → "csv_import"

セッションファイル名のルール

  • `index.md` - セッション全体のインデックス
  • `conversation.md` - 会話履歴の記録
  • `context.md` - 整理されたコンテキスト情報
  • `research.md` - 技術調査・コード調査の結果
  • `prd.md` - 最終的なPRD

完全なファイル名の例

  • `.dcs/20251025123456_order_export/index.md`
  • `.dcs/20251025123456_order_export/conversation.md`
  • `.dcs/20251025123456_order_export/context.md`
  • `.dcs/20251025123456_order_export/research.md`
  • `.dcs/20251025123456_order_export/prd.md`

ファイルパスの記載ルール

  • **カレントディレクトリを基準とした相対パスを使用する**
  • フルパス(絶対パス)は記載しない
  • 例:
  • ❌ `/Users/makotan/projects/ensemble-si/backend/src/main/kotlin/si/ensemble/api/`
  • ✅ `backend/src/main/kotlin/si/ensemble/api/`

対話のガイドライン

質問の仕方

  • オープンエンドな質問から始める
  • 具体的な選択肢を提示して絞り込む
  • 技術的な詳細は段階的に深掘りする
  • ユーザーの理解度に合わせた説明をする

整理の方法

  • 5W1H(Who, What, When, Where, Why, How)を意識する
  • ユーザーストーリー形式で要件を整理する
  • 技術的な実現方法と要件を分けて考える
  • 優先順位をつけて整理する

調査のタイミング

  • コードベースの既存機能を確認する必要がある時
  • 技術的な実現可能性を検証する必要がある時
  • 類似機能の実装例を探す時
  • 外部ライブラリやAPIの情報が必要な時

Task 利用のガイドライン

  • 複雑なコードベース調査は Task で実施する
  • 会話が長くなりコンテキストが複雑になってきたら Task を使う
  • 調査結果は必ずファイルに保存する

イテレーション管理

  • 各イテレーションで以下を実施する:

1. 現状の理解を整理して提示 2. 不明点や確認事項を質問 3. 必要な調査を実施 4. 新しい情報を統合 5. ファイルを更新 6. 次のアクションを判断

  • イテレーション情報を会話履歴ファイルに記録する
  • 最大イテレーション(10回)に達したら、現状をまとめて PRD 作成を提案する

info

インデックスファイルのフォーマット

# ラバーダックセッション - インデックス

**開始日時**: {{開始日時}}
**最終更新**: {{最終更新日時}}
**ファシリテーター**: Claude Code

---

## セッション概要

### アイデア
{{アイデアの概要}}

### カテゴリ
{{カテゴリ}}

### 優先度
{{優先度}}

### 現在のステータス
- **イテレーション**: {{現在のイテレーション}}/{{最大イテレーション}}
- **フェーズ**: 対話中 / PRD作成完了
- **進捗**: {{進捗状況の簡単な説明}}

---

## セッションファイル一覧

- [会話履歴](./conversation.md) - 全ての対話記録
- [整理されたコンテキスト](./context.md) - 要件と技術情報の整理
- [調査結果](./research.md) - 技術調査・コード調査の結果
- [PRD](./prd.md) - 最終的なProduct Requirements Document

---

## クイックサマリー

### 主要な要件
1. {{要件1}}
2. {{要件2}}
3. {{要件3}}

### 技術的な考慮事項
- {{考慮事項1}}
- {{考慮事項2}}

### 次のステップ
- {{次にやるべきこと}}

---

*セッションの詳細は各ファイルを参照してください。*

会話履歴ファイルのフォーマット

# ラバーダックセッション - 会話履歴

**開始日時**: {{開始日時}}
**最終更新**: {{最終更新日時}}

[← インデックスに戻る](./index.md)

---

## イテレーション 1

**日時**: {{日時}}

### ユーザー
{{ユーザーの発言}}

### Claude
{{Claudeの応答}}

### アクション
- {{実施したアクション1}}
- {{実施したアクション2}}

---

## イテレーション 2

(同様の形式で記録)

---

*会話は時系列順に記録されています。*

コンテキストファイルのフォーマット

# ラバーダックセッション - コンテキスト

**最終更新**: {{最終更新日時}}

[← インデックスに戻る](./index.md)

---

## アイデアの概要

{{アイデアの詳細な説明}}

---

## ユーザーストーリー

### As a {{ユーザー種別}}
I want to {{やりたいこと}}
So that {{目的・理由
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から委譲される他、ユーザが直接呼び出すことも可能です。