fix(pr-monitor): CR 投稿ごとの重複分析コメントを決定論ガードで抑止 (順位 319) - #310
Conversation
pr-monitor.yml バックストップが CodeRabbit の投稿 (ack / rate-limit 通知含む) ごとに 「🤖 PR Monitor 分析」コメントを再投稿していた問題を修正 (PR #287 で 5 件、#304 で 3 件、 #307 で 5 件実観測)。原因は重複ガードが LLM prompt 内 (助言層) にしかなく、トリガー事象 (新規コメントの存在) 自身が prompt の skip 条件を無効化するトートロジーだったこと。 - jobs.analyze.if: に決定論ガードを追加 (ADR-042: 助言層 -> 決定論層): - issue_comment は CR walkthrough/summary マーカーを含み、かつ rate-limit placeholder でないもののみ起動する positive allowlist。ack / rate-limit 通知 / command invocation を一括除外 (denylist より確実)。マーカーは live PR #304/#307 の生 body で実検証。 - CLOSED/MERGED PR では起動しない (issue.state / pull_request.state == 'open')。 - prompt 手順 2 を「新規コメントの有無」から「分析価値のある新情報の有無」へ書換え、 ack/rate-limit/自身の分析コメントは新情報に数えない旨を明示。決定論層の二層目に降格。 - 先頭設計メモに経緯を記録。 検証: YAML parse + paren balance を node で確認、pnpm lint:docs OK。 残 (post-merge): workflow_dispatch スモーク + 実 PR dogfood 確認 (todo17.md 順位 319)。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughPR Monitorのissue_comment起動条件を厳格化し、open状態とsummarizeマーカーを必須化した。Claudeプロンプトでは、定型応答や過去の分析コメントを新情報から除外する重複判定基準を明確化した。 ChangesPR Monitor重複投稿ガード
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 Checkov (3.3.8).github/workflows/pr-monitor.ymlTraceback (most recent call last): Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🤖 PR Monitor 分析 (GitHub Actions バックストップ)
Applicable Findings (Critical / High / Major)(該当なし — レビュー未着のため) Applicable Findings (Medium 以下)(該当なし) Filtered (not applicable)(該当なし) 軽量サマリー (レビュー指摘 0 件のため)
次のアクション
|
* docs(todo): PR #310 post-merge feedback の採用候補 7 件を登録 (順位 345-351) deploy 互換性診断 / pre-merge deferred-test checklist / 空 fix commit skip / CodeRabbit marker 統合契約 doc / pr-monitor.yml インラインコメント / config directive CHANGELOG / local LLM unverifiable-locally 運用。 詳細は todo14.md、順位 table は todo-summary2.md (cli-docs-lint OK)。 ユーザー承認済 (却下推奨 3 / 様子見 3 は非登録)。当初 336-342 で登録したが 並行セッションの #314 が 336-344 を先に使用したため 345-351 に再採番、 ADR-033 準拠で本文の順位参照は descriptive に修正。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(review): apply CodeRabbit fixes for #315 CodeRabbit #315 review の 2 findings に対応: - entry 346 (pre-merge checklist): 配置先を docs/dev-conventions.md に一本化 (pre-merge-checklist.md 新設・CLAUDE.md 追記を排除)、defer 検証を必須項目として明示 - entry 347 (空 fix commit skip): 完了基準を「findings 空」に加え「全 findings が non-actionable」も含めるよう拡張、両ケースをテストスコープに追加 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
pr-monitor.ymlの重複コメント投稿を、LLM prompt 内の助言ガードから workflowif:の決定論ガードへ移設 (順位 319)state == 'open'ガードを追加docs/todo17.md順位 319 の作業計画・現在地を更新 (dogfood 確認は post-merge に保持)Context
if:) へ移すことに限定。CodeRabbit マーカー文字列はライブ PR build: EXE_SUFFIX 抽象化で .exe ハードコードを解消 (WP-13) #304/feat: Linux バイナリビルド + クラウド setup script (WP-15) #307 の生 body で実在確認済み。Validation
verdict=APPROVE(全 facet 承認、1 iteration、2026-07-20)pnpm lint:docs: OK (preamble + cross-ref + priority-inversion)if:式の括弧バランス + 条件存在を node で検証--check-modified-filesEXIT 0 (違反なし)References
Summary by CodeRabbit
バグ修正
ドキュメント