@claude — 定期メンテナンス bot の自動タスク(効率化・高速化・省リソース化の安全な改善 PR)。エンドユーザーの問い合わせ起点ではありません。
🤖 bot 向けの詳細手順 — 人間は読まなくて OK(クリックで展開)
進め方(共通ルール)
- この Issue には Slack スレッド(slackmeta)はありません。CLAUDE.md のスレッド返信ヘルパー
post_slack は使わないでください(返信先スレッドが無いため)。
- リポジトリの
CLAUDE.md のルールに従い、新しいブランチで最小限の変更を行い、PR を作成してください(merge しない/デフォルトブランチへ直接 push しない/force-push しない)。
- リスクのある変更や挙動が変わる最適化は避けるか、PR 説明にトレードオフを明記。目ぼしい改善が無ければ所見をコメントしてクローズ。
- 作成する PR の説明本文に
Closes #<この Issue の番号> を含めてください(merge 時に自動クローズされます)。
- コミット(PR 作成)を行った場合は、最後に下記「Slack 通知」の手順でチャンネルへ新規投稿してください。
- Issue を open のまま残す場合(PR を作って merge 待ち/所見コメントだけ残して人手判断に委ねる、のいずれか)は、仕事を終える前に
gh issue edit <この Issue の番号> --title "<新しいタイトル>" で タイトルを「具体的に何を扱ったか」が分かる形に書き換えること。クローズする場合は不要(初期タイトルのままで OK)。
- 先頭の
[auto:perf] プレフィックスは必ず残す(ワークフローの重複チェックがこの前方一致で動くため)。末尾の (YYYY-MM-DD) も残しておくと履歴を追いやすい。
- 例:
[auto:perf] 効率化・省リソース化 (2026-06-24) → [auto:perf] /api/users の N+1 クエリ解消 (2026-06-24)
タスク: 効率化・高速化・省リソース化
コードベース全体を調べ、処理を 効率化・高速化・省メモリ/省リソース化 できる箇所がないか探してください。
- 例: 不要な計算・重複処理の削減、N+1 やループ内 I/O の解消、アルゴリズム/データ構造の改善、無駄なメモリ確保・コピーの削減、キャッシュ化・バッチ化、適切な非同期化など。
- 明確に有益で安全な改善があれば実装して PR を作成。可能なら簡単な計測やベンチで効果を示す。
- 挙動(出力結果)は変えないこと。変える必要がある場合は PR 説明に明記。
- 目ぼしい改善が無ければ、その旨をコメントしてクローズ。
重複の確認(PR を作る前に必ず・重要)
同じ提案を何度も作らないため、着手前に過去の bot 提案を確認する。
# 過去の同種メンテナンス Issue(オープン/クローズ両方)
gh issue list --state all --label "auto-perf" --limit 30 --json number,title,state,closedAt,url
# 直近の PR(オープン=レビュー待ち / クローズ=却下 or マージ済み)
gh pr list --state all --limit 50 --json number,title,state,url,headRefName
- 今回入れようとしている改善が、オープンな PR(レビュー待ち)や過去にクローズされた PR / Issue(=一度見送られた、あるいは既にマージ済みで対応済み)と実質同じなら、同じ PR を作り直さない。
- 過去にクローズされた提案は「見送られた」ものとして尊重し、新たな根拠が無い限り蒸し返さない。
- 確認の結果、新しく提案できる内容が無い(見つかった候補がすべて既出=オープン放置 or クローズ済みの焼き直し)場合は、PR を作らず、該当する既存 Issue / PR の番号を挙げて「既出のためスキップ」とこの Issue にコメントしてから、この Issue をクローズする。
Slack 通知(PR を作成した場合のみ・フォーマット厳守)
実際に PR を開いた場合のみ投稿します(変更が無く所見コメントのみのときは投稿不要)。
PR は必ず gh pr create で 本物の PR を作成すること。compare / ?quick_pull=1 の「作成用リンク」は PR ではないので 使わない。
- 通知先チャンネルID:
C0B7T6B8X9R
- 下記の
TEXT を そのまま厳守。可変は末尾 〇〇(内容の一言)だけで、絵文字・タグ・2つのリンク(リポジトリ/PR)は必ず含め、書式は変えないこと。
- リンクは Slack 記法
<URL|表示テキスト> を使う(リポジトリ名と PR 番号がクリック可能になる)。
# 1) 作成した PR の URL を取得(未作成なら作成。作成済みならそれを取得)
PR_URL="$(gh pr view --json url -q .url 2>/dev/null || gh pr create --fill)"
PR_NUM="${PR_URL##*/}"
# 2) フォーマット厳守で Slack へ新規投稿(thread_ts は付けない=チャンネル直下)
TEXT="🤖 [定期メンテナンス/perf] <https://github.com/${GITHUB_REPOSITORY}|${GITHUB_REPOSITORY}> を効率化する <${PR_URL}|PR #${PR_NUM}> を作成しました(内容: 〇〇)"
curl -s -X POST https://slack.com/api/chat.postMessage \
-H "Authorization: Bearer $SLACK_BOT_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
--data "$(jq -n --arg c "C0B7T6B8X9R" --arg x "$TEXT" '{channel:$c, text:$x}')"
@claude — 定期メンテナンス bot の自動タスク(効率化・高速化・省リソース化の安全な改善 PR)。エンドユーザーの問い合わせ起点ではありません。
🤖 bot 向けの詳細手順 — 人間は読まなくて OK(クリックで展開)
タスク: 効率化・高速化・省リソース化
コードベース全体を調べ、処理を 効率化・高速化・省メモリ/省リソース化 できる箇所がないか探してください。
重複の確認(PR を作る前に必ず・重要)
同じ提案を何度も作らないため、着手前に過去の bot 提案を確認する。
Slack 通知(PR を作成した場合のみ・フォーマット厳守)
実際に PR を開いた場合のみ投稿します(変更が無く所見コメントのみのときは投稿不要)。
PR は必ず
gh pr createで 本物の PR を作成すること。compare /?quick_pull=1の「作成用リンク」は PR ではないので 使わない。C0B7T6B8X9RTEXTを そのまま厳守。可変は末尾〇〇(内容の一言)だけで、絵文字・タグ・2つのリンク(リポジトリ/PR)は必ず含め、書式は変えないこと。<URL|表示テキスト>を使う(リポジトリ名と PR 番号がクリック可能になる)。