email-to-issue について
選択した Outlook のメールスレッドを GitHub での対応案にまとめ、ユーザーが承認した項目だけを登録するスキルです。未解決の issue との照合、公開範囲に応じた起案、返信とアーカイブの手順を含みます。
主な機能
- 01フラグ付きまたは指定された Outlook メールの収集
- 02メールと未解決 GitHub issue の照合
- 03全対応案を一つの承認表に提示
- 04承認済みの issue またはコメントを登録
- 05権限確認後の返信とアーカイブ
活用シーン
- 01フラグ付きメールを GitHub issue に変換
- 02既存 issue に新たな根拠を追加
- 03登録前にメール起点の対応案を確認
- 04登録済みメールスレッドの後処理
MCP 対応
Microsoft 365 コネクターのメールツールを、読み取り、検索、返信、移動、フラグ操作などの機能で利用します。MCP サーバーの指定はありません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ clhbid/ agent-context --skill email-to-issueインストール後、Claude Code で/email-to-issueを入力して読み込まれたか確認します。
詳細
メールから Issue へ
1 回の実行を一括処理と呼びます。選択した Outlook のスレッドを読み、すべてのスレッドについて 1 つの表を提案し、ユーザーが承認した行のみを issue-tracker で登録します。新しい Issue は Backlog にとどめます。トリアージで振り分け、必要なエージェント向けの概要を作成します。
Microsoft 365 コネクターのメールツールは、名前がコネクターのバージョンによって変わるため、機能(読み取り、検索、返信、移動、フラグ設定)から見つけてください。
メールの権限
一括処理で行うすべてのメール操作は、次の範囲内です。それ以外の操作が必要な場合は、ユーザー自身が手動で行う必要があると伝えてください。
- 許可される操作:
- 禁止される操作:
- 下書きを含むメールの削除。
- サインイン中のユーザー以外へのメールの送信、転送、下書きの作成。
- カレンダー、ファイル、Teams への書き込み。
一括処理
1. 収集
フラグ付きの受信トレイのスレッドをすべて読むか、ユーザーが件名を指定したスレッドを読みます。件名に一致するスレッドが複数ある場合は、送信者と日付を添えて一覧表示し、どれを対象にするかユーザーに尋ねます。
すでに返信があるスレッドは処理済みとしてスキップします。添付ファイルはメールに残し、そのスレッドに添付ファイルがあることを行に記載します。
完了条件: 処理対象のスレッド一覧があり、各スレッドの送信者、日付、件名が記載されていること。また、処理済みとしてスキップしたスレッドの数が記載されていること。
2. 権限の確認
メールへの書き込みには、次の 2 つの機能が必要です。
- 返信:宛先を引数として受け取る機能です。送信者だけをあらかじめ入力する返信機能は該当しません。
- 移動とフラグ設定:アーカイブに移動し、フラグを解除する機能です。
これらの機能がない場合でも、一括処理で Issue を登録できます。ステップ 6では手動で行う項目の一覧を提示します。
完了条件: 今回の一括処理で返信が可能か、フラグ解除とアーカイブが可能かを、ユーザーに 1 行で伝えていること。
3. 照合
組織全体のオープンな Issue を検索し、各スレッドの内容をすでに扱っている Issue があるか確認します。
gh search issues "<key terms>" --owner clhbid --state open --json repository,number,title,url
表現を 2、3 通り試し、一致と判断する前に候補を読みます。一致する場合は、スレッドで追加された情報(新しい証拠や説明)だけを含むコメントにします。一致するものがない場合は、そのスレッドが対象とするリポジトリに新しい Issueを作成します。
完了条件: すべてのスレッドに、提案する操作と対象が設定されていること。
4. 提案
各対象の公開範囲を確認し、機密性に従ってタイトルを下書きします。
gh repo view clhbid/<repo> --json visibility --jq .visibility
一括処理全体を 1 つの表で提示します。
| # | 送信元 | 操作 | 対象 | 公開範囲 | タイトル | 種類 |
|---|---|---|---|---|---|---|
| 1 | Pat Example([email protected])、3 月 2 日 | 新しい Issue | clhbid/<repo> | PRIVATE | 入札データのエクスポートで最後のロットが欠落 | Bug |
| 2 | Sam Sample([email protected])、3 月 3 日 | コメント | clhbid/<repo>#123 | PUBLIC | タイムアウトの 2 件目の報告 | — |
ユーザーは各行を承認、編集、またはスキップします。それまでは GitHub に変更を加えません。
完了条件: すべての行が承認またはスキップされていること。
5. 登録
承認された各行を、機密性に従って登録します。
- 新しい Issue:
issue-tracker§ 組織フォームからの Issue 作成に従って作成し、Backlogに登録されたことを確認します。 - コメント:
gh issue comment <number> --repo clhbid/<repo>をwriting-leanのスレッドコメントとして実行します。
完了条件: 承認されたすべての行にリンクがあり、新しい Issue がすべて Backlog として表示されること。
6. 一連の処理を完了する
ファイル済みの各スレッドで、返信を送信します。次に、ファイル済みのスレッドを一覧にして、フラグを解除してアーカイブするスレッドをユーザーに確認します。ステップ4で表を承認しても、この確認にはなりません。ユーザーが確認したスレッドのみを移動します。
書き込みツールがない場合は、ユーザーが手動で返信、フラグ解除、アーカイブできるように、ファイル済みの各スレッドについて、送信者、日付、件名、課題へのリンクを一覧にします。返信があることで、次回の確認でそのスレッドをスキップできます。
完了条件: 確認の概要に各スレッドの課題へのリンクと結果(返信済み、フラグ解除済み、アーカイブ済み、またはユーザーに対応を依頼)を記載し、返信をスキップした場合はその理由もすべて記載します。
返信
スレッドの処理が完了したことを示し、課題へのリンクを付けます。
-
コネクターのサインイン済みプロフィールからユーザーのアドレスを取得します。見つからない場合、または曖昧な場合は確認します。
-
本文を作成します。マーカーを先頭に置きます。
Filed by /email-to-issue: clhbid/<repo>#<number> https://github.com/clhbid/<repo>/issues/<number> -
宛先を置き換えます。
Toはユーザーのみとし、CcとBccは空にします。 -
作成したメッセージからすべての宛先欄を読み戻します。ユーザーのみが宛先である場合に限り、送信します。
-
少しでも疑問があれば返信をスキップし、確認の概要にリンクを記載します。下書きが残っている場合は、ユーザーが削除できるようにその旨を記載します。
機密保持
タイトル、本文、コメントは、対象の公開範囲に従います。
PRIVATE:機密情報を含め、スレッドの詳細をすべて記載します。PUBLIC:要約して記載します。送信者は役割(「販売者」「入札者」など)で示し、顧客名、連絡先、価格、その他の専有情報は省きます。- それ以外、または詳細に確信が持てない場合:確認します。