メインコンテンツまでスキップ
バージョン: 最新 (develop)

Sentry 自動修正の定期実行(Claude Code web routine / /schedule

/bs-sentry-fix(オーケストレータ skill)と bs-sentry-fixer(サブエージェント)を、**Claude Code web の routine(定期エージェント)**から自動起動するための手順とテンプレート。リポジトリ側にはこの手順書だけを置き、routine 本体は Claude Code web(クラウド)側に作成する(GitHub Actions は使わない構成)。

何をするか: 未対応の Sentry エラーを 1 件選び、再現→共通ハンドラ経由の修正→回帰試験→bs-code-reviewer レビュー→develop ベース動作確認→develop 向け PR 作成まで自動化する。自動マージはしない(人手レビューゲート)。


前提条件

  1. Sentry MCP が Claude Code web に接続済み(org: purpom-media-lab、project: blackswan-backend / blackswan-web / blackswan-admin が見える状態)。
  2. GitHub リポジトリ purpom-media-lab/blackswan に接続済みで、ブランチ push と PR 作成の権限がある。
  3. リポジトリに本セット(.claude/skills/bs-sentry-fix/.claude/agents/bs-sentry-fixer.md.claude/agents/bs-code-reviewer.md)が develop にマージ済み
  4. ベースブランチは develop。PR は develop 宛て。

注意(動作確認の範囲): クラウド実行では PostgreSQL や Playwright 実行基盤が無いことがある。その場合 bs-sentry-fixerlint / 型(build) / 純ロジック単体まで実施し、DB 要の e2e は spec を用意したうえで「環境側で要実行」と明記する(Pass を詐称しない設計)。完全な動作確認が要る issue は、生成された PR をローカル/CI で確認する運用にする。


まず手動で 1 回検証する(推奨)

routine 化の前に、Claude Code web で 1 回手動起動して期待どおり PR ができるか確認する。

/bs-sentry-fix --auto

特定 issue や project を絞る場合:

/bs-sentry-fix BLACKSWAN-BACKEND-1A --auto
/bs-sentry-fix is:unresolved is:unassigned --project blackswan-web --auto

PR が develop 宛てで作られ、本文に Fixes <短ID> が入っていれば OK(Sentry への自動コメント/自動 resolve は GitHub 連携経由で行う。Sentry 書き込み MCP は使わない)。


routine(定期実行)の作成

Claude Code(web / CLI)で /schedule を使い、cron と起動プロンプトを登録する。

起動プロンプト(routine に登録する内容)

/bs-sentry-fix --auto
  • --auto で非対話(確認ゲートなし・安全側既定)。
  • 1 実行 = 1 issue = 1 PR。冪等チェックで重複 PR は作らない。
  • project を固定したいときは --project blackswan-backend(または -web / -admin)を付ける。

推奨 cadence

目的cron(JST 想定)備考
平日の朝に1件ずつ消化0 9 * * 1-5レビュー前提で無理のないペース
backend だけ毎朝0 9 * * 1-5 + --project blackswan-backend主戦場に集中
軽めに週2回0 9 * * 2,4PR が溜まりすぎない

大量の未対応 issue を一気に PR 化しない。1 回 1 件を守り、人手レビューが追いつくペースに合わせる。複数 project を回したい場合は、project ごとに別 routine を作る(各 --project 指定)。

/schedule の操作(概略)

  1. Claude Code で /schedule(routine 管理)を開く。
  2. 新規 routine を作成し、**スケジュール(cron)プロンプト(上記)**を設定。
  3. 実行コンテキスト(リポジトリ=purpom-media-lab/blackswan、ベース=develop、Sentry MCP 接続)を確認。
  4. 保存し、初回は手動トリガで 1 回流して PR 生成を確認。

routine の作成・一覧・更新・即時実行は /schedule から行う。詳細な操作 UI はバージョンにより異なるため、/schedule のガイドに従う。


運用ルール(安全則の再掲)

  • 既定は自動マージしない。routine は PR 作成まで。完全自動(自動マージ)にしたい場合は次節「完全自動(自動マージ)モード」を参照(強いゲート付き・要ブランチ保護)。
  • 秘密情報を残さない(DSN・トークン・スタックトレース生文字列・DB エラー本文)。
  • 正直な動作確認。クラウドで回せない層は「未実施」と PR に明記される。
  • 解決不能・スコープ過大・要設計判断の issue は、PR を作らず Sentry/Linear にメモしてエスカレーション。
  • 生成 PR に claude-review ラベルを付けると CI(.github/workflows/claude-code-review.yml)の自動レビューも走る。

完全自動(自動マージ)モード

未対応 Sentry を 確認 → 修正 → PR →(全ゲート通過なら)develop へ自動マージ まで人手を介さず回すモード。リスクが高いので 強いゲートと前提の上で使う。

routine プロンプト

/bs-sentry-fix --auto --auto-merge

自動マージの前提(これが無いと安全に回らない)

  1. develop にブランチ保護+必須ステータスチェックbackend-ci / frontend-ci / lockfile-check / 必要なら e2e)を設定。赤い PR が紛れてもマージされないようにする。
  2. 完全な動作確認ができる実行環境(PostgreSQL・Playwright)。クラウドで e2e を回せないと、ゲート②「動作確認が完全」で必ず PR のみに降格する(=実質マージされない)。完全自動を機能させたいなら DB/Playwright を使えるランナー(セルフホスト等)で回す。
  3. レビュー(bs-code-reviewer)で Critical/Major が出ない品質の issue に限る。

マージされるのは全ハードゲート通過時だけ(skill の Phase 5.5)

  • レビュー clean(Critical 0/未解消 Major 0)
  • lint・型・単体・該当 e2e を実際に実行してグリーン(未検証はマージしない)
  • PR の CI 必須チェックが全て成功
  • コンフリクトなし/マージ可能
  • スコープ許容内:schema.prisma・マイグレーション・認証/認可/RLS・大規模差分(> 15 ファイル / > 400 行)は自動マージせず人手 PR に降格

1 つでも欠ければ マージせず PR を残し、未達理由を報告する。

強い注意

  • マージ後は次回 stg リリースで反映され、本番に向かう変更になる。最初は --project blackswan-backend に限定し、cadence を絞って様子を見る。
  • 想定外が出たら /schedule で routine を即停止できる。
  • データモデル・セキュリティ周りは設計判断が要るため自動マージ対象外(人手 PR に降格)。段階的に対象を広げる。

関連