--- description: 進捗ドキュメント内のOpen Questionsを解消し、Decision LogやSpecificationセクションを自動更新。ユーザーがARGUMENTS形式で各質問への意思決定を入力し、LLMがそれを進捗ドキュメントに反映 --- # /issync:resolve-questions: Open Questions解消コマンド 進捗ドキュメントのOpen Questionsを解消し、Decision LogとSpecificationを自動更新します。詳細な実行ステップは後述の「実行ステップ」セクションを参照してください。 ## 使用方法 ```bash /issync:resolve-questions Q1-2: 推奨案 Q3: <ユーザーの意思決定を自然文で記載> Q4: 推奨案 Q5-6: 推奨案 ``` **引数形式**: - 各行に `Q[番号または範囲]: [意思決定内容]` を記載 - 範囲指定可能: `Q1-3: 推奨案` で Q1, Q2, Q3 すべてに適用 - 意思決定内容: - `推奨案` または `推奨` と記載した場合、Open Questionsの検討案から推奨マーク付きの案を採用 - それ以外の場合、記載内容をそのまま決定内容として使用 ## 前提条件 - 進捗ドキュメントが作成済み(`/issync:plan`実行済み) - Open Questionsセクションに未解決の質問が存在 - `ISSYNC_GITHUB_TOKEN`環境変数が設定済み ## 実行ステップ ### ステップ1-3: 準備 1. `/understand-progress`で進捗ドキュメントを読み込む 2. Open Questionsセクションから未解決の質問を抽出(取り消し線がないもの) 3. ユーザー入力を解析: - 各行から質問番号と意思決定内容を抽出 - 範囲指定(`Q1-3`)は範囲内すべてに適用 - `推奨案`/`推奨`の場合、検討案から推奨マーク付き案を自動抽出 - その他の場合、入力内容をそのまま使用 ### ステップ4: Open Questionsセクションの更新 各質問を以下の形式で更新: - 質問タイトルを取り消し線(`~テキスト~`)でマーク - 直後に` ✅ 解決済み (YYYY-MM-DD)`を追加 - 質問文と検討案は保持 - 末尾に`**決定**: <内容>`を追記 ### ステップ5: Decision Logセクションへの記録 関連する質問をグループ化し、以下のフォーマットでDecision Logに追加: - **YYYY-MM-DD: <決定タイトル>** - **採用**: <採用案> - **理由**: 箇条書き - **比較検討した候補**: 候補と却下理由 - **トレードオフ**: 採用案の制約 Open Questionsの検討案から情報を抽出し、不足分はユーザー入力から推論してください。 ### ステップ6: Specificationセクションの更新 解決内容から仕様を推論し、Specificationセクションを更新: - コマンドインターフェース、データフォーマット、アーキテクチャ、動作フローなど - 既存仕様に追記(矛盾がある場合は既存を更新) - 見出し(###)で構造化 - 仕様が推論できない場合はスキップ ### ステップ7-8: 更新と同期 1. Editツールで進捗ドキュメントを更新(Open Questions、Decision Log、Specification) - Editツールは1回1箇所のみ更新可能(複数回呼び出す) - `old_string`に十分なコンテキストを含める 2. `issync push`でGitHub Issueに同期 ## 出力フォーマット 完了後、以下を出力: - 解消した質問リスト(Q番号、タイトル、決定内容) - 更新内容(Open Questions、Decision Log、Specificationの件数) - 次のアクション(確認事項、残タスク) ## 重要な注意事項 - ユーザーがARGUMENTSで意思決定を明示(自動推論しない) - `推奨案`指定時は検討案から推奨マーク付き案を自動抽出 - 一貫フォーマット:取り消し線 + "✅ 解決済み (YYYY-MM-DD)" - Decision Logに「採用」「理由」「比較検討した候補」「トレードオフ」を含める - Specification更新は自律的に仕様を推論 - 作業後は`issync push`で同期 ## エラーハンドリング - **Open Questions不在**: メッセージ表示して終了 - **質問番号不在**: 警告表示してスキップ(他の処理は継続) - **推奨案不在**: 検討案の最初の項目を採用(検討案もない場合はユーザー入力を使用) - **issync push失敗**: エラー表示、ローカル更新済みを通知、手動実行を案内 ## 実行例・運用フロー ```bash /issync:resolve-questions Q1-2: 推奨案 Q3: コマンドのARGUMENTSとしてユーザーが意思決定を各Qごとに行う Q4-6: 推奨案 ``` **運用フロー**: `/issync:plan`で進捗ドキュメント作成 → 開発を進める → 回答が明確になったら`/issync:resolve-questions`で解消 → すべて解消したら次フェーズへ