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 作成まで自動化する。自動マージはしない(人手レビューゲート)。
前提条件
- Sentry MCP が Claude Code web に接続済み(org:
purpom-media-lab、project:blackswan-backend/blackswan-web/blackswan-adminが見える状態)。 - GitHub リポジトリ
purpom-media-lab/blackswanに接続済みで、ブランチ push と PR 作成の権限がある。 - リポジトリに本セット(
.claude/skills/bs-sentry-fix/、.claude/agents/bs-sentry-fixer.md、.claude/agents/bs-code-reviewer.md)が develop にマージ済み。 - ベースブランチは
develop。PR は develop 宛て。
注意(動作確認の範囲): クラウド実行では PostgreSQL や Playwright 実行基盤が無いことがある。その場合
bs-sentry-fixerは lint / 型(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,4 | PR が溜まりすぎない |
大量の未対応 issue を一気に PR 化しない。1 回 1 件を守り、人手レビューが追いつくペースに合わせる。複数 project を回したい場合は、project ごとに別 routine を作る(各
--project指定)。
/schedule の操作(概略)
- Claude Code で
/schedule(routine 管理)を開く。 - 新規 routine を作成し、**スケジュール(cron)とプロンプト(上記)**を設定。
- 実行コンテキスト(リポジトリ=
purpom-media-lab/blackswan、ベース=develop、Sentry MCP 接続)を確認。 - 保存し、初回は手動トリガで 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
自動マージの前提(これが無いと安全に回らない)
- develop にブランチ保護+必須ステータスチェック(
backend-ci/frontend-ci/lockfile-check/ 必要ならe2e)を設定。赤い PR が紛れてもマージされないようにする。 - 完全な動作確認ができる実行環境(PostgreSQL・Playwright)。クラウドで e2e を回せないと、ゲート②「動作確認が完全」で必ず PR のみに降格する(=実質マージされない)。完全自動を機能させたいなら DB/Playwright を使えるランナー(セルフホスト等)で回す。
- レビュー(
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 に降格)。段階的に対象を広げる。
関連
- 修正ペルソナ:
.claude/agents/bs-sentry-fixer.md - オーケストレータ:
.claude/skills/bs-sentry-fix/SKILL.md - レビュー観点:
.claude/agents/bs-code-reviewer.md - CI 自動レビュー:
.github/workflows/claude-code-review.yml