/ba-status
このチャンネルの紐付けを一覧表示します。
/ba-statusこのチャンネルに登録されている「GitHubリポジトリ ↔ Asanaプロジェクト(またはセクション)」の組み合わせを表示します。
別名・Asanaの対象範囲・既定かどうかが分かります。まず状況を確認したいときに使ってください。
例
/ba-status- 未登録のチャンネルでは「未登録です」と案内が返ります。
Slackから話しかけるだけで、Asanaへの起票・コードの実装とPR作成・PRレビューと指摘の反映までを行う開発支援ボットです。
操作方法は2種類です。
@ba-bot に続けて日本語で書きます。起票・実装・レビューなど、日々の作業はこちらです。
@ba-bot #1218055953831941 を実装してメッセージの先頭で / から入力します(@ba-bot は付けません)。設定まわりに使います。
/ba-status使い始めるには ①チャンネルにボットを招待(/invite @ba-bot)→ ②/ba-link でリポジトリとAsanaを紐付け → ③ /ba-status で確認、の3ステップです。
チャンネルとリポジトリ/Asanaの紐付けを管理します。メッセージ欄の先頭で直接入力してください。
このチャンネルの紐付けを一覧表示します。
/ba-statusこのチャンネルに登録されている「GitHubリポジトリ ↔ Asanaプロジェクト(またはセクション)」の組み合わせを表示します。
別名・Asanaの対象範囲・既定かどうかが分かります。まず状況を確認したいときに使ってください。
/ba-statusAsanaプロジェクト内のセクションとIDを一覧します。
/ba-sections <AsanaプロジェクトID>1つのAsanaプロジェクトをセクションで分けて複数リポジトリを運用する場合に、紐付けで指定するセクションIDを調べるために使います。
結果はそのまま /ba-link の第2引数に貼り付けられる形(プロジェクトID/セクションID)で表示されます。
AsanaプロジェクトのURLをそのまま貼っても構いません。
/ba-sections 1210280474134969このチャンネルに対象リポジトリ/プロジェクトを追加します。
/ba-link <GitHubリポURL> <AsanaプロジェクトID[/セクションID]> [別名]実行するたびに紐付けが「追加」されます。既存の紐付けは消えません(同じリポジトリを再登録したときだけ内容が更新されます)。
Asanaの分け方は2通りに対応しています。リポジトリごとにプロジェクトを分けている場合はプロジェクトIDだけを、1つのプロジェクトをセクションで分けている場合は プロジェクトID/セクションID を指定します。
別名は、Slackで対象を明示するときの短い名前です(@ba-bot [chick] … のように使います)。省略するとリポジトリ名がそのまま別名になります。
そのチャンネルで最初の紐付けは、自動的に「既定」になります。
/ba-link https://github.com/retbit/hieroom 1201234567890 hieroom→ プロジェクト単位で紐付ける場合(リポジトリごとにAsanaプロジェクトが分かれている構成)
/ba-link https://github.com/retbit/chick-web 1210280474134969/1210280474134986 chick→ セクション単位で紐付ける場合(1つのプロジェクトをセクションで分けている構成)
/ba-sections で調べられます。対象を特定できないときに使う「既定」の紐付けを切り替えます。
/ba-default <リポURL または別名>既定が使われるのは「調査・質問」のときだけです。
起票・実装・修正・一括削除は、対象が確定しない限り既定にフォールバックせず、候補を提示して聞き返します。誤ったリポジトリにPRを作ったり、別のセクションにチケットを溜めたりしないための仕様です。
/ba-default chickこのチャンネルから紐付けを1件解除します。
/ba-unlink <リポURL または別名>紐付けを解除しても、GitHubのリポジトリやAsanaのタスクには一切影響しません。ボットが対象として扱わなくなるだけです。
解除した紐付けが「既定」だった場合は、残っている紐付けのいずれかが自動的に既定になります。
/ba-unlink suite@ba-bot に続けて日本語で依頼します。決まった言い回しである必要はありません。
依頼内容から Asana にチケットを作成します。
@ba-bot [別名] <依頼内容>のチケットを作って依頼文がそのままチケットのタイトルになり、本文は登録済みのテンプレート(概要・背景・受入基準)に沿って整形されます。
複数の紐付けがあるチャンネルでは、起票は手掛かりが無いため対象を自動判別できません。[別名] を付けて、どのプロジェクトに作るか指定してください。
セクション単位で紐付けている場合は、そのセクションに入った状態で作成されます。
@ba-bot [chick] トップページの表示を改善するチケットを作って@ba-bot トップページの表示を改善するチケットを作って→ 別名が無い場合は作成せず聞き返します
紐付いた全ての範囲のチケットを、範囲ごとに区切って表示します。
@ba-bot [別名] チケット一覧別名を付けなければ、このチャンネルに紐付いた全てのプロジェクト/セクションを横断して表示します。
「未完了」「完了済み」といった語を含めると、その状態だけに絞り込めます。
@ba-bot チケット一覧→ 紐付いた全範囲をプロジェクト/セクション別に表示
@ba-bot [chick] チケット一覧→ chick のセクションだけに絞る
@ba-bot 未完了のチケット一覧→ 未完了のみ
指定したチケットのタイトル・本文・状態を表示します。
@ba-bot #<タスク番号> の詳細タスク番号(gid)だけで特定できるため、別名の指定は不要です。
@ba-bot #1218055953831941 の詳細完了・未完了の切り替え、タイトル・本文の変更ができます。
@ba-bot #<タスク番号> を完了にして / のタイトルを「〜」にタイトルや本文を変更する場合は、新しい内容を「かぎかっこ」で囲んでください。
細かい編集は Asana の画面で行うほうが確実です。
@ba-bot #1218055953831941 を完了にして@ba-bot #1218055953831941 を未完了に戻して@ba-bot #1218055953831941 のタイトルを「READMEの拡充」に@ba-bot #1218055953831941 の本文を「セットアップ手順を追記する」に1件ずつ、または条件を指定してまとめて削除します。
@ba-bot #<タスク番号> を削除して / [別名] 未完了のチケットを一括削除1件だけの削除は、タスク番号を指定すればすぐ実行されます。
まとめて削除する場合は、いきなり消さずに対象一覧を提示して確認します。本当に削除するときだけ「確定」を付けて送り直してください。
一括削除は範囲を横断しません。セクション単位で紐付けている場合、削除されるのはそのセクション内のチケットだけです。対象が確定しない場合は実行せず候補を提示します。
Asana の削除はゴミ箱への移動なので、一定期間は復元できます。
@ba-bot #1218055953831941 を削除して→ 1件だけ削除(即実行)
@ba-bot [chick] 未完了のチケットを一括削除→ この時点ではまだ削除されていません
@ba-bot [chick] 未完了のチケットを一括削除 確定→ ここで実際に削除されます
Asanaタスクの内容を読み、コードを実装して Pull Request を作成します。
@ba-bot [別名] #<タスク番号> を実装して対象リポジトリを取得し、Claude が実際にファイルを編集して、新しいブランチに Pull Request を作成します。
対象リポジトリは、タスクが属するAsanaのセクション(またはプロジェクト)から自動で判別されます。通常は別名の指定は不要です。
変更が1つも生成されなかった場合は、PRを作らずにその旨を返します。タスクの説明が具体的なほど結果が良くなります。
main ブランチへ直接 push することはありません。PR のマージは人が行います。
@ba-bot #1218055953831941 を実装して→ 別名なしでも、タスクの所属セクションから対象リポジトリが決まります
@ba-bot [suite] #1218055953831941 を実装して→ 対象を明示する場合
バグ報告のタスクを読み、原因を特定して修正の Pull Request を作成します。
@ba-bot [別名] #<タスク番号> を修正して流れは「実装」と同じですが、原因の特定と最小限の変更を優先し、可能であれば再発防止のテストも追加します。
@ba-bot #1218055953831941 のバグを直してPull Request の差分をレビューし、PRにコメントを投稿します。
@ba-bot レビューして <PRのURL>バグ・設計・可読性・テストの観点で指摘し、それぞれに重大度(高/中/低)を付けます。
結果は GitHub の PR にコメントとして投稿され、同じ内容が Slack にも返ります。
PRのURLを貼れば対象リポジトリが確定するため、別名の指定は不要です。
@ba-bot レビューして https://github.com/retbit/chick-leclub-web/pull/15レビューで出た指摘を、同じ Pull Request に反映します。
@ba-bot PR#<番号> のレビュー指摘を修正して対象PRのブランチに直接コミットを積むため、新しいPRは作られず、そのPRが更新されます。レビュー → 修正 → 再レビューが1つのPRの中で完結します。
PRに付いているコメント(レビュー本文・ファイル単位のインラインコメント)を読み取り、その内容に基づいて修正します。
依頼文で対象を絞ることもできます(例:「パスワード例の指摘だけ修正して」)。
@ba-bot PR#15 のレビュー指摘を修正して@ba-bot PR#15 のパスワード例の指摘だけ修正して→ 反映する指摘を絞り込む場合
上記のどれにも当てはまらない依頼は、質問・調査として扱われます。
@ba-bot [別名] <質問>対象リポジトリを取得したうえで実際のコードを読み、紐付いたAsanaのタスク一覧も踏まえて回答します。推測ではなく実データに基づいて答えます。
PRのURLを含めれば、そのPRの説明や差分も踏まえて回答します。
「〜できますか?」のような質問で、勝手に実行されることはありません。
@ba-bot [chick] このプロジェクトの構成を教えて@ba-bot [chick] 未完了のタスクを見て、着手しやすい順に並べて理由を教えて@ba-bot このチャンネルではどのリポジトリを扱えますか?[別名] を付けてください。1つのチャンネルに複数のリポジトリを紐付けられます。ボットは次の優先順で「どのリポジトリ宛てか」を判断します。
| 優先 | 手掛かり | 説明 | 例 |
|---|---|---|---|
| 1 | PRのURL | メッセージにPRのURLがあれば、そのリポジトリが対象になります。 | @ba-bot レビューして https://github.com/retbit/chick-web/pull/8 |
| 2 | 別名の指定 | [chick] のように角かっこで対象を明示します。 | @ba-bot [chick] #1218055953831941 を実装して |
| 3 | Asanaタスクの所属 | タスク番号があれば、そのタスクが属するセクション(無ければプロジェクト)から対象リポジトリを逆引きします。*普段はこれで自動的に決まります。 | @ba-bot #1218055953831941 を実装して |
| 4 | 紐付けが1件だけ | そのチャンネルに紐付けが1件しか無ければ、それが対象になります。 | — |
| 5 | 既定の紐付け | 上記で決まらない場合の最後の手段。*「調査・質問」でのみ使われます。 | @ba-bot このプロジェクトを説明して |
ふだんは意識しなくて構いません。 タスク番号を書けば、そのタスクがどのセクションにあるかから対象リポジトリが自動で決まります。 決められない場合だけ、ボットが候補を出して聞き返します。
「対象を特定できませんでした」と候補一覧が返ってきます
複数の紐付けがあるチャンネルで、対象を判断する手掛かりが無い場合です。[別名] を先頭に付けて送り直してください(例: @ba-bot [chick] …)。タスク番号を含む依頼であれば、通常は自動で判別されます。
タスク番号はどこで確認できますか
Asanaのタスク画面のURL末尾にある長い数字(gid)です。@ba-bot チケット一覧 の結果に表示される (#…) からもコピーできます。短い連番での指定には対応していません。
「対象リポジトリが未登録です」と返ります
そのチャンネルに紐付けがありません。/ba-link で登録してください。登録済みかどうかは /ba-status で確認できます。
コマンドが「not a valid command」になります
Slackアプリ側にコマンドが登録されていない可能性があります。管理者に登録・再インストールを依頼してください。
PRが作られません/エラーになります
対象リポジトリに ba-bot の GitHub App が入っているかを確認してください。また、タスクの説明が曖昧だと「変更が生成されませんでした」と返ることがあります。
ボットが応答しません
そのチャンネルにボットが招待されているか(/invite @ba-bot)、およびチャンネルが許可リストに入っているかを管理者に確認してください。
間違えて削除してしまいました
Asanaの削除はゴミ箱への移動なので、一定期間は Asana の画面から復元できます。
1218055953831941。タスクのURL末尾にあります。[chick]。省略時はリポジトリ名が使われます。