--- description: 現在のタスクを中断せずにサイドの質問にすばやく回答します。回答後は自動的に作業を再開します。 --- # Asideコマンド タスク中に質問をして即座に集中した回答を受け取り、中断した場所から作業を続行します。現在のタスク、ファイル、コンテキストは一切変更されません。 ## 使用するタイミング - Claudeが作業中に気になることがあり、勢いを失いたくない場合 - Claudeが現在編集しているコードのクイック説明が必要な場合 - タスクを脱線させずに判断のセカンドオピニオンや確認が必要な場合 - Claudeが続行する前にエラー、概念、パターンを理解したい場合 - 現在のタスクと無関係なことを新しいセッションを開始せずに質問したい場合 ## 使い方 ``` /aside <質問> /aside この関数は実際に何を返す? /aside このパターンはスレッドセーフ? /aside なぜここでYの代わりにXを使っている? /aside foo()とbar()の違いは? /aside 追加したN+1クエリは心配すべき? ``` ## プロセス ### ステップ1: 現在のタスク状態をフリーズ 回答する前に、以下を確認: - アクティブなタスクは何か?(どのファイル、機能、問題に取り組んでいたか) - `/aside`が呼び出された時点でどのステップが進行中だったか? - 次に何が行われる予定だったか? aside中はファイルの編集、作成、削除を一切行わない。 ### ステップ2: 質問に直接回答 完全で有用でありながら最も簡潔な形式で回答する。 - 推論ではなく回答から始める - 短く保つ — 詳細な説明が必要な場合は、タスク後に掘り下げることを提案 - 現在作業中のファイルやコードについての質問の場合、正確に参照(関連する場合はファイルパスと行番号) - 回答にファイル読み取りが必要な場合、読み取る — ただし読み取り専用、書き込みは絶対にしない レスポンスのフォーマット: ``` ASIDE: [質問を簡潔に再表現] [回答] — タスクに戻る: [行っていた作業の一行説明] ``` ### ステップ3: メインタスクを再開 回答を提供した後、即座にアクティブなタスクを一時停止した正確なポイントから続行する。asideの回答がブロッカーや現在のアプローチを再考する理由を明らかにしない限り、再開の許可を求めない(エッジケースを参照)。 --- ## エッジケース **質問が提供されない(`/aside`のみ):** 応答: ``` ASIDE: 質問が提供されていません 何を知りたいですか?(質問してください。現在のタスクコンテキストを失わずに回答します) — タスクに戻る: [行っていた作業の一行説明] ``` **質問が現在のタスクの潜在的な問題を明らかにする:** 再開前に明確にフラグを立てる: ``` ASIDE: [回答] WARNING: この回答は現在のアプローチに[問題]があることを示唆しています。続行する前にこれに対処しますか、それとも予定通り進めますか? ``` 再開前にユーザーの判断を待つ。 **質問が実際にはタスクのリダイレクト(サイドの質問ではない):** 質問が構築中のものを変更することを意味する場合(例: `/aside 実は、代わりにRedisを使おう`)、確認: ``` ASIDE: それはサイドの質問ではなく、方向転換のようです。 どうしますか: (a) 情報としてのみ回答し、現在の計画を維持 (b) 現在のタスクを一時停止してアプローチを変更 ``` ユーザーの回答を待つ — 仮定を立てない。 **現在開いているファイルやコードについての質問:** ライブコンテキストから回答する。ファイルがセッション中に既に読み取られている場合、直接参照する。そうでない場合、今読み取り(読み取り専用)、file:line参照で回答する。 **アクティブなタスクがない(`/aside`呼び出し時に進行中のものがない):** レスポンスの形状を一貫させるため、標準ラッパーを使用: ``` ASIDE: [質問を簡潔に再表現] [回答] — タスクに戻る: 再開するアクティブなタスクなし ``` **長い回答が必要な質問:** 本質的な回答を簡潔に述べ、次に提案: ``` 以上が短いバージョンです。[現在のタスク]を終えた後、より詳しい説明が必要ですか? ``` **連続した複数の`/aside`質問:** それぞれ順番に回答する。最後の回答の後、メインタスクを再開する。一連のaside全体でタスク状態を失わない。 **asideの回答がコード変更が必要であることを示す:** 必要な変更を記録するが、aside中は実行しない: ``` ASIDE: [回答] 修正すべき点: [変更内容]。現在のタスク後にフラグを立てますが、今対処したい場合はお知らせください。 ``` **質問が曖昧または漠然としすぎる:** 1つの明確化質問をする — 回答に必要な情報を得るための最短の質問。複数の質問はしない。 --- ## 出力例 ``` User: /aside fetchWithRetry()は実際に何をする? ASIDE: fetchWithRetry()は何をする? fetchWithRetry() (src/api/retry.ts:12) はリクエストを指数バックオフ (250ms → 500ms → 1s)で最大3回試行します。5xxレスポンスと ネットワークエラーのみリトライし、4xxエラーは最終的なものとして リトライしません。 — タスクに戻る: src/middleware/auth.tsの認証ミドルウェアのリファクタリング ``` ``` User: /aside 現在取っているアプローチはスレッドセーフ? ASIDE: 現在のアプローチはスレッドセーフ? いいえ — src/cache/store.ts:34の共有キャッシュオブジェクトがロックなしで 変更されています。並行リクエスト下ではこれは競合状態です。 シングルプロセスのNode.jsサーバーではリスクは低いですが、ワーカースレッドや クラスタリングでは実際の問題になります。 WARNING: これは構築中の機能に影響する可能性があります。今対処しますか、それとも続行してフォローアップで修正しますか? ``` --- ## ノート - aside中はファイルを変更しない — 読み取り専用アクセスのみ - asideは会話の一時停止であり、新しいタスクではない — 元のタスクは必ず再開しなければならない - 回答は焦点を絞る: 目標はユーザーのブロックをすばやく解除すること、講義を行うことではない - asideがより大きな議論を引き起こす場合、asideがブロッカーを明らかにしない限り、現在のタスクを先に終了する - asideはタスク結果に明示的に関連しない限り、セッションファイルに保存されない