Slack のメッセージから GitHub Issue、そして修正へ

Slack で普段の言葉でバグを説明するだけ。Zero が GitHub Issue を書いて担当者を割り当て、原因が 1 つのコンポーネントに収まる場合は修正とリグレッションテストを含むプルリクエストまで作成し、あなたのレビューを待ちます。

Zeroの接続先:SlackGitHubLinear

Zero が提供するもの:Slack のメッセージからレビュー待ちの修正まで

開いて読める実際の実行結果です。Zero は 1 週間分の Slack のバグ報告を GitHub の Issue にし、原因を特定できたものはリグレッションテスト付きのプルリクエストにまで進めました。レポートには差分と、なぜ 3 件を修正し残る 4 件は起票にとどめたかが書かれています。データはサンプルですが、形式は実際の出力そのものです。

エージェントサマリー. Zero は #bugs、#support-escalation、#design-review、#product の 24 件のメッセージを読みました。9 件が不具合を説明し、2 件は既存の Issue と一致、7 件が新しい GitHub Issue になりました。そのうち 3 件には修正とリグレッションテストを含むプルリクエストも作成し、Issue に紐付けて CI も通っています。残る 4 件は修正せず起票にとどめました。共通の日付処理、デザイントークン、プロダクト判断が必要なもの、そして再現手順がまだないものです。 読み取ったメッセージ: 24, うち 9 件が不具合. 作成した Issue: 7, すべて Slack の表示名から担当者を割り当て. 修正を出した PR: 3, リグレッションテスト付き・未レビューのマージは 0.

起票と修正の全レポートを開く

Slack から GitHub Issue を作成するとはどういうことか

Slack から GitHub Issue を作成するとは、会話の中で誰かが報告したバグを、スレッドを離れて入力し直すことなく、リポジトリ上の構造化された Issue に変えることです。難しいのは API 呼び出しではありません。分かりやすいタイトルを書き、再現手順と期待される挙動を切り分け、ラベルを選び、優先度を決め、適切な担当者を見つけることです。Zero がその作業を引き受けます。Slack のメッセージと前後の返信を読み、Issue の本文を書き、根拠を説明できるラベルと優先度を付け、Slack の表示名を GitHub のハンドルに突き合わせて担当者を割り当て、同じスレッドに Issue のリンクを返信するので、報告者はその場で確認できます。

バグ報告が Slack のスレッドに埋もれてしまう理由

デモの最中に誰かがバグを見つける。あるいは土曜日に顧客から連絡が来る。従来の道のりは長いものでした。GitHub を開き、リポジトリを探し、整形された Issue を書き、担当者を割り当て、その人が着手してコードを読み、修正を書くのを待つ。10 分で終わる変更が、3 人をまたぐ数日がかりの往復になり、しかも報告の半分はスレッドから出ないまま消えていきます。代わりに Slack で説明してください。Zero が再現手順・ラベル・担当者付きで Issue を作成し、原因が限定できる場合はさらに修正とテストを含むプルリクエストまで進めます。あなたはレビューしてリリースするだけです。

Zero が Slack から GitHub Issue を作成する仕組み

ステップ1:ツールを接続する

GitHub
GitHub
必須
GitHub への OAuth 接続。Issue の作成と、修正がある場合のブランチのプッシュおよびプルリクエストの作成のために読み書き権限が必要です。
接続
Slack
Slack
必須
Zeroがメッセージを読み、同じスレッドに返信します。
接続

ステップ2:Zeroに聞く

@Zero Issue作成: スケジュールダイアログでESCを押すと、未保存の編集があっても即座に閉じてしまう。最初に確認を求めるべき。Lancyに割り当て。bug、platformのラベル。優先度中。
Zero がスレッドを読む
Zero はあなたのメッセージと前後の返信を読むため、3 つ後の返信で補足された文脈も反映されます。担当者を特定し、実際に交わされた言葉からラベルと優先度を推測します。
GitHub に Issue が作成される
書き起こしたタイトル、説明、期待される挙動と切り分けた再現手順、影響範囲、ラベル、そして Slack の表示名から一致させた担当者。作成前に Open Issue を確認し、重複なら 2 件目を作らずコメントします。
Zero が原因を特定してプルリクエストを作成
スレッドまたはコードが 1 つのコンポーネントを指しており、先に失敗するテストを書ける場合、Zero は修正とそのテストを書き、プルリクエストを Issue に紐付けて CI を回します。できない場合は Issue で止め、その理由をスレッドに書きます。
あなたがレビューしてリリース
Zero は同じスレッドに Issue、プルリクエスト、プレビューリンクを返信し、担当者にレビューを依頼します。自動でマージされることはありません。修正はあなたを待ちます。

ステップ3:さらに活用する

修正まで依頼する
チケットで終わらせずプルリクエストまで
@Zero #6260 を修正して、リグレッションテスト付きの PR を作成して。Issue に紐付けて、このスレッドにプレビューリンクを貼って。
詳細を追加
スクリーンショットや再現手順を添付
@Zero #6260に追加: 再現手順。1. スケジュールダイアログを開く 2. 何か入力 3. ESCを押す。期待: 確認ダイアログ。
一括Issue作成
複数のIssueを一度に作成
@Zero これらのバグから3つのIssueを作成: 1. ESCダイアログ閉じ(Lancy) 2. 日付ピッカーが1日ずれる(James) 3. Safariでアバターアップロードが失敗(Yuma)
トリアージを自動化
チャンネルからIssueを自動作成
@Zero #bugsを監視、誰かが「bug:」で始まるメッセージを投稿したら、自動的にGitHub Issueを作成してリンクで返信。

このワークフローを支える Slack と GitHub の連携

これはエージェントを間に挟んだ Slack と GitHub の連携です。Zero は Slack で会話を読み、GitHub に記録を書き込みます。各コネクタは個別に許可され、ワークフローが実際に使う範囲に限定されるため、チャンネルの読み取りがリポジトリへの書き込み権限を意味することはありません。

Slack

Slack 連携:Zero が読む会話

必須

Zero は指定されたメッセージとその前後の返信を読むため、3 つ後の返信で補足された文脈も Issue に反映されます。添付されたスクリーンショットを引き継ぎ、報告者の表示名から担当者を解決し、メッセージのパーマリンクを保持するので、すべての Issue が報告の出発点にリンクします。書き込みは 1 つだけ、同じスレッドへの Issue 番号とリンクの返信です。他のチャンネルへの投稿、DM の送信、他人のメッセージの編集は行いません。

GitHub

GitHub 連携:Zero が作成する Issue

必須

Zero は指定されたリポジトリに Issue を作成します。タイトルは元のメッセージの複製ではなく報告内容から書き起こし、説明、再現手順、期待される挙動、スレッドで言及されていれば対象箇所を含めます。指定されたラベルを適用するか文面から推測し、理由を説明できる優先度を設定し、担当者を割り当てます。作成前に同じ症状の Open Issue を検索し、一致すれば新規作成せず既存 Issue にコメントします。バグを修正できる場合は、ブランチをプッシュし、その Issue をクローズするプルリクエストを作成してレビューを依頼します。書き込み権限は許可されたリポジトリに限定され、範囲はそれで全部です。Issue、コメント、そしてレビュー用に作成するプルリクエスト。マージ、強制プッシュ、リポジトリ設定の変更は行いません。

Zero と Slack 版 GitHub アプリ、自動化ツールの比較

Slack のメッセージからバグを GitHub に届けるには 3 つの工程があります。報告を捕まえること、使える Issue を書くこと、担当者に渡すことです。既存の選択肢はそれぞれ 1 つだけを解決します。

Slack 版 GitHub アプリ

/github と入力するとダイアログが開き、タイトル・本文・ラベル・担当者を自分で埋めます。ブラウザに移動する手間は省けますが、Issue を書くのは依然としてあなたであり、会話の途中でフォームが出てくること自体が「あとで起票しよう」を生む摩擦です。

自動化ツール

ノーコードのツールはトリガーに応じて Slack のメッセージを新しい Issue にコピーできます。コピーされるのは生のメッセージなので、報告者がたまたま書いた文面がそのまま Issue になり、ラベル・優先度・担当割り当て・重複判定のルールはチャンネルごとに自分で定義して保守することになります。

Zero の Slack から GitHub へのワークフロー

Zero はスレッドを読んで Issue を書きます。実際のタイトル、期待される挙動と切り分けた再現手順、根拠を説明できるラベルと優先度、報告者の表示名から一致させた担当者。原因が 1 つのコンポーネントに収まる場合はそこで止まらず、修正とリグレッションテストを含むプルリクエストを Issue に紐付けて作成し、あなたのレビューを待ちます。先に Open Issue を確認し、重複なら新規作成せずコメントし、スレッドにリンクを返信します。

より良い結果のためのヒント

担当者名を含めましょう。ZeroがSlackの表示名をGitHubユーザー名にマッチングします。
特定のラベルが必要な場合は明示的に指定してください。そうでなければZeroがコンテキストから推定します。
機能リクエストにも使えます - 「bug」の代わりに「機能リクエスト」と言うだけです。
チケットだけでなく修正まで欲しいときは「PR も作って」と伝えてください。原因が広範囲に及んで安全に変更できない場合は、Zero がスレッドでそう伝えます。

よくある質問

Slack のメッセージから GitHub Issue を作成するには?

Slack と GitHub を Zero に接続し、チャンネルでバグを説明して Zero にメンションします。Zero はメッセージと周辺の返信を読み、タイトル・再現手順・期待される挙動・ラベル・優先度を備えた Issue を書き、指定したリポジトリに作成し、担当者を割り当て、Issue 番号とリンクをスレッドに返信します。フォーム入力は不要です。

Slack 版 GitHub アプリとの違いは?

GitHub アプリは入力用のダイアログを提供するもので、タイトル・本文・ラベル・担当者は自分で書きます。Zero はそれらを会話から書き起こし、作成前に同じ症状の既存 Issue を確認し、1 件ずつではなくチャンネル全体を定期的に処理することもできます。

Zero は Issue を作るだけですか、それともバグを修正できますか?

どちらも行い、どちらをなぜ選んだかを明示します。Issue は必ず作成します。スレッドまたはコードから対象が 1 つのコンポーネントに特定でき、期待される挙動が明確で、先に失敗するテストを書ける場合は、修正とそのテストを含むプルリクエストも作成し、Issue に紐付けてレビューを依頼します。共通ユーティリティ、デザイントークン、プロダクト判断が必要なものは変更せず起票にとどめます。Zero がマージすることはありません。修正はすべて、あなたがレビューするプルリクエストとして届きます。

担当者は自動で割り当てられますか?

はい。Zero はメッセージ内で挙げられた名前、または報告者の Slack 表示名をリポジトリの GitHub ハンドルと突き合わせて割り当てます。メッセージで担当者を明示するのが最も確実です。誰も指定されていない場合はスレッドが指す領域のオーナーにフォールバックし、判断の根拠を Issue に記載します。

重複した GitHub Issue はどう防いでいますか?

作成前に、同じ症状・対象箇所・表現の Open Issue を検索します。一致した場合は新しい Slack スレッドを報告者とタイムスタンプ付きでその Issue にコメントとして追加し、2 件目を作らずに既存 Issue のリンクを Slack に返信します。

再現手順のないバグ報告はどうなりますか?

報告が失われないよう Issue は作成し、再現手順が必要であることを示すラベルを付けたうえで、Slack のスレッドで報告者に手順を尋ねます。回答は、すでに Issue からリンクされているスレッドに集まります。

チャンネル全体からまとめて定期的に起票できますか?

はい。対象のチャンネルとスケジュール(たとえば毎週金曜 16 時)を指定してください。その週のメッセージを読み、不具合を説明しているものごとに Issue を作成し、重複にはコメントし、機能要望や質問は対象外とし、実行内容を報告します。

GitHub ではなく Linear や Jira でも使えますか?

同じワークフローの形は Zero が接続されている任意のトラッカーに適用できます。このページは GitHub コネクタを使う GitHub 版の手順です。Linear も同じ手順で接続でき、指示の中でトラッカーを指定します。

次のバグは Slack を離れずに起票する

Slack と GitHub を接続し、同僚に話すようにバグを説明するだけで、Zero が Issue を書いて担当者を割り当てます。原因が限定できる場合は、プルリクエストも一緒に待っています。

@Zero Issue作成: スケジュールダイアログでESCを押すと、未保存の編集があっても即座に閉じてしまう。最初に確認を求めるべき。Lancyに割り当て。bug、platformのラベル。優先度中。