# doc-gen > プロジェクトドキュメント(仕様書・引き継ぎ・レトロ)の新規作成 - Author: becky - Repository: becky3/learning-companion - Version: 20260203194955 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/becky3/learning-companion - Web: https://mule.run/skillshub/@@becky3/learning-companion~doc-gen:20260203194955 --- --- name: doc-gen description: プロジェクトドキュメント(仕様書・引き継ぎ・レトロ)の新規作成 user-invocable: true allowed-tools: Bash, Read, Edit, Write, Grep, Glob argument-hint: "[spec|handover|retro] [feature-name]" --- ## タスク プロジェクトドキュメントを自動生成する。Issue/PR/コミット履歴から情報を収集し、CLAUDE.mdのルールに従ったフォーマットで出力する。 ## 引数 `$ARGUMENTS` の形式: - `spec `: 仕様書生成(例: `spec feed-collection`) - `handover`: 引き継ぎ資料生成 - `retro `: レトロスペクティブ生成(例: `retro chat`) ## 処理手順 ### 共通フロー 1. **引数解析** ```bash ARGS=($ARGUMENTS) DOC_TYPE="${ARGS[0]}" # spec, handover, retro FEATURE_NAME="${ARGS[1]}" # 機能名(handoverの場合は不要) ``` 2. **既存ドキュメントの参照** - 同種のドキュメントを1-2件読み込み、フォーマットを理解する 3. **出力ファイル名の決定** - CLAUDE.mdの命名規則に従う - 既存ファイルがある場合は警告を表示し、上書き確認 4. **ドキュメント生成** - テンプレートに従って各セクションを作成 - 関連情報(Issue/PR/コミット)を調査・反映 5. **ファイル保存** - Writeツールでファイルを作成 - 生成結果を表示 ### A. 仕様書生成 (`spec `) **出力先**: `docs/specs/f{N}-{feature-name}.md` **手順**: 1. 機能番号の決定 - 既存の仕様書一覧から最大のf{N}を取得 - 新規機能は次の番号を割り当て(例: f5, f6, ...) - 既存機能を指定された場合はその番号を使用 2. Issue情報の収集 ```bash # 該当機能のIssueを検索 gh issue list --search "in:title $FEATURE_NAME" --json number,title,body ``` - Issue本文から要件を抽出 - コメントから議論内容を収集 3. 関連コードの調査 ```bash # 機能に関連するファイルを検索 find src/ -name "*${FEATURE_NAME}*" ``` 4. 仕様書生成(以下のセクションを含む): - **概要**: 機能の簡潔な説明 - **背景**: なぜこの機能が必要か - **ユーザーストーリー**: ユーザー視点での要求 - **技術仕様**: 入出力、処理フロー - **受け入れ条件 (AC)**: チェックボックス形式 - **使用LLMプロバイダー**: オンライン/ローカル - **関連ファイル**: テーブル形式 - **テスト方針**: テスト戦略 **参考**: `docs/specs/f1-chat.md` のフォーマットを踏襲 ### B. 引き継ぎ資料生成 (`handover`) **出力先**: `docs/handover/YYYY-MM-DD-{内容}.md` **手順**: 1. 日付の取得 ```bash DATE=$(date +%Y-%m-%d) ``` 2. 現在の状況調査 ```bash # ブランチ確認 git branch --show-current # 最近のコミット git log --oneline -10 # 現在のPR gh pr view --json number,title,state # 未完了のIssue gh issue list --state open ``` 3. 引き継ぎ資料生成(CLAUDE.mdのテンプレートに従う): - **完了済み作業**: 最近のコミットから抽出(Issue番号を含める) - **未着手・作業中**: 未完了のIssueから抽出 - **注意事項・判断メモ**: 最近のPRコメント等から重要な判断を抽出 - **環境メモ**: 特殊な設定があれば記載 4. ファイル名の決定 - 内容を示す短い文字列を生成(例: `step2-complete`, `f3-in-progress`) - フルパス: `docs/handover/{DATE}-{内容}.md` ### C. レトロスペクティブ生成 (`retro `) **出力先**: `docs/retro/f{N}-{feature-name}.md` **手順**: 1. 機能番号の決定 - 仕様書と同じ番号を使用 2. 実装情報の収集 ```bash # 該当機能のPR gh pr list --search "in:title $FEATURE_NAME" --state all --json number,title,body # 関連コミット gh pr view --json commits ``` 3. Issue/PRコメントから学びを抽出 - 実装時の議論 - 技術的な判断 - ハマったポイント 4. レトロ生成(以下のセクションを含む): - **何を実装したか**: 機能の概要 - **うまくいったこと**: 良かったアプローチ、効率的だった点 - **改善点**: 時間がかかった部分、難しかった点 - **次に活かすこと**: 今後の開発に役立つ知見 ## エラーハンドリング - 引数が不正な場合: ``` エラー: 引数が不正です。 使用方法: /doc-gen spec /doc-gen handover /doc-gen retro ``` - 既存ファイルがある場合: ``` 警告: ファイル {path} は既に存在します。 上書きしますか? (y/n) ``` - Issue/PRが見つからない場合: ``` 警告: {feature-name} に関連するIssue/PRが見つかりませんでした。 手動で情報を入力してドキュメントを作成します。 ``` ## 出力例 ``` ✓ 仕様書を生成しました: docs/specs/f5-notification.md 内容: - Issue #42 の要件を反映 - 関連ファイル 3件を特定 - 受け入れ条件 5項目を定義 次のステップ: 1. 仕様書をレビュー 2. 実装を開始 3. 完了後に `/doc-gen retro notification` でレトロを作成 ``` ## 注意事項 - 生成されたドキュメントは必ず人間がレビューし、必要に応じて修正する - Issue/PRから自動収集できない情報は「TODO」として明示する - 既存ファイルを上書きする前に必ず確認する