feat: Bundle CR-RL — CR rate-limit detection を新フォーマット対応に拡張 (順位 167-169) + 174#185
Merged
Conversation
… checklist 拡張) 採用: PR #184 post-merge-feedback Tier 3 #2 (2026-05-29 ユーザー承認): - 順位 174 (T3-#2): ADR-039 experimental feature lifecycle checklist 拡張 - 新規 experimental feature 追加時の self-review checklist を ADR-039 に追加 - 4 点整合確認: config schema ↔ feature flag default OFF ↔ docs / config example ↔ test coverage - PR #184 M-2 (weekly_review_reminder 'enabled = true' 違反) の self-review 捕捉化が目的 - 本リポジトリ内 ADR 編集のみ、派生プロジェクトには波及しない (ADR-039 自体は global pattern として参照される構造のため、文書編集は本リポジトリで完結) 不採用 (2026-05-29 ユーザー判断記録): - T3-1 (Feedback adoption pattern ADR 新設): 不採用。analyzer の Severity/Frequency/Effort rubric は推奨でしかなく user 判断と完全一致しないため、整合性ある判定基準を rule 化するのは構造的に困難。memory feedback_no_unenforced_rules の延長線上にある原則 → T3-1 と T3-2 の対比 = discretionary judgment (T3-1) vs mechanical 4 点 checklist (T3-2) の境界判別の実例 → 採用判断自体が「rule 化可能な finding」と「discretionary 依存 finding」を区別する meta-judgment 却下推奨 (analyzer 既判定): T1-1 / T1-2 / T2-2 / T3-3 (NLP 必要 / 過剰一般化 / unenforced rule) 様子見: T2-1 (ADR-039 compliance Rust test、dogfood 2+ 観測後) メタ評価: 本セッション (#181 → #182 → #183 → #184) で計 17 件の採用候補が抽出され、Phase B 設計の self-reinforcing detection loop が full session 単位で機能した実例。本 commit は最終 PR #184 採用分の完結。
…ーマット対応に拡張 (順位 167 採用、T1-#1) PR #182 セッションで実体観測した CR rate-limit detection の silent regression を修正: 旧実装 (= silent regression の原因): - src/check-ci-coderabbit/src/main.rs:251 RATE_LIMIT_MARKER = 'Rate limit exceeded' 単一固定 - is_rate_limit_comment() が現行 CR の新フォーマットを検出できず常に false 返却 - extract_wait_time() が 'Please wait N minutes and M seconds' のみ対応 - 結果: cli-pr-monitor の RateLimitOutcome::Parked 経路 (ADR-018 設計) が完全無効化、 通常 review_recheck 経路で 5 分単位 polling に fallback (PR #182 で 30+ 分浪費を実観測) 修正: - RATE_LIMIT_MARKER (const &str) → RATE_LIMIT_MARKERS (const &[&str]) を multi-variant 配列化 - 旧 marker: 'Rate limit exceeded' (backward compat) - 新 marker: 'rate limited by coderabbit.ai' (HTML マーカー、PR #182/#184 で実観測) - is_rate_limit_comment() を multi-variant check に refactor - extract_wait_time() に新フォーマット regex を追加 - 新 format: 'More reviews will be available in N minutes and S seconds' - 旧 format も backward compat 維持 注: ADR-039 experimental feature pattern は本タスクには不適用 (rate-limit detection は ADR-018 で既に決定済の standard feature であり experimental ではない)。 Bundle CR-RL の機械強制層。test 層 (順位 168) と docs 層 (順位 169) は後続 commit。
順位 167 と pair の test 層。RATE_LIMIT_MARKERS 配列化 + extract_new_format_wait_time の backward compat 保証 + silent regression 防止用 regression gate を確立。 追加 fixture (旧 6 fixture は backward compat のため維持): - 新 format 標準形: HTML マーカー + Review limit reached + N minutes and S seconds - 新 format 短縮形: HTML マーカー + N minutes only - 旧 + 新混在: 同一 PR に 2 種類の rate-limit comment が時系列で混在するケース memory feedback_test_dry_antipattern 適用 (各 fixture 独立 setup、共通 helper 化しない)。
…ク更新手順を codify (順位 169 採用、T3-#1) Bundle CR-RL の docs/ADR 層。順位 167 (機械強制層) + 168 (test 層) と同 PR で land。 ADR-034 追加 section: 既知 CR rate-limit format 一覧 + 検出 logic 更新手順 - 既知 format (発見時期昇順): 旧 'Rate limit exceeded' + 新 'rate limited by coderabbit.ai' - format 変更時の更新手順 (6 step: 観測 → grep → marker 配列 append → regex 追加 → fixture 追加 → ADR-034 update) - HTML マーカー優先の理由 (heading 文言や本文より stable な可能性) ADR-018 lines 185-186 更新: - 旧 marker 単一前提の description を「順位 167 で multi-variant 対応済、詳細は ADR-034 参照」に書き換え - rate-limit 経路の設計根拠は ADR-018 維持、format detection 詳細は ADR-034 に集約 将来 CR が format 変更時に同じ silent regression を回避する永続 reference 層を確立。
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughPR は CodeRabbit の rate-limit コメント検出を複数フォーマット対応へ拡張し、待機時間抽出を旧・新フォーマットの専用関数に分割した改善と、新規 experimental feature 追加時の 4 点整合チェックリストを追加した。 ChangesRate-limit detection multi-format support
Experimental feature lifecycle checklist
Possibly related PRs
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
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 |
9 tasks
aloekun
added a commit
that referenced
this pull request
May 29, 2026
…+ todo10.md 新設 (#186) PR #185 post-merge-feedback 採用 (2026-05-29 ユーザー承認): - 順位 175 (T1-#1): cargo clippy を stop_quality ステップに追加 (Rust lint structural gap 補填) - 順位 176 (T2-#4): check-ci-coderabbit format extraction 関数への variant fixture 追加 user 追加要望 (2026-05-29): - 順位 177: PostToolUse hook — Edit/Write したファイルのサイズ閾値超過検出 + 分割促進 Phase D dogfood 採用 (2026-05-30 ユーザー承認、週次レビュー 2026-05-30 実行): - 順位 178 (週次レビュー S02): state.rs behavioral invariant test を ADR-041 pattern で追加 - 順位 179 (週次レビュー S03): rate-limit retry decision boundary test を rstest parameterized で追加 - 順位 180 (週次レビュー C01): lib-report-formatter に markdown pipe / newline escape を追加 (prompt injection 防御) - 順位 181 (Phase D dogfood D-A): aggregate-weekly facet の findings.json 出力を raw JSON にする (facet output bug fix) - 順位 182 (Phase D dogfood D-B): /weekly-review skill に重複検出 (簡易 grep + 3 択 AskUserQuestion) を Phase 4 で追加 Phase D dogfood 実行サマリー (handoff doc § 4 e2e 検証): - takt workflow weekly-review 起動 → 22m 52s 完走 → 12 findings 検出 (high 1 / medium 5 / low 6) - Phase C skill flow を実観測: - Phase 0 (pending file + failed marker 検出): clean state - Phase 1 (takt 起動): pre-state 書込 → background 実行 - Phase 2 (成果物 copy): .takt/runs/ → .claude/weekly-reviews/2026-05-30.md + pending JSON 構築 - Phase 3 (採否選択): user 承認経由で 5 件採用 (S02/S03/C01/D-A/D-B) - Phase 4 (todo 展開): 順位 178-182 として docs/todo10.md に追加 (順位 N system pattern 採用、ADR-031 「週次レビュー採用 (date)」section ではなく既存 priority table integration 重視) - Phase 5 (state file 更新): pending JSON consume + last-run timestamp 書込 - 観測した skill 改善点 (= 順位 181 / 182 として codify): - findings.json が フェンス wrap で出力 (facet 出力 bug、skill 内手動 strip workaround) - WR-2026-05-30-S05 が既存 順位 173 と完全重複 (重複検出 MVP 未実装の実証) 不採用 / 様子見 (analyzer 推奨を user 承認、2026-05-30): - 週次レビュー S01 / C02 / C03: 様子見 (large refactor / overflow practical mitigated / future-only risk) - 週次レビュー S04 / S05 / S06 / S07 / S08 / A01: 却下 (YAGNI / 重複 / 既存 comment で intent 明確 / serde idiomatic / docs trivial drift) todo10.md 状態: - 17KB → 34KB (5 entries 追加後)、50KB threshold まで余裕 - 既存 todo.md / todo2.md 〜 todo9.md は引き続き有効、相互独立 メタ評価: 本セッション (#181 → #182 → #183 → #184 → #185) 5 PR chain + Phase D dogfood で計 28 件の todo 採用 (post-merge-feedback 22 件 + user 主導 1 件 + 週次レビュー dogfood 5 件)、Phase B 設計の self-reinforcing detection loop が **full session 単位での dogfood cycle complete** を実証。本 commit は Phase D 完了 + Phase E (試験運用 1-2 週 dogfood + ADR-031 本採用化 + handoff retire) に carry-forward する状態。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bundle CR-RL =
RATE_LIMIT_MARKER旧フォーマット固定値が CR の新フォーマット (<!-- rate limited by coderabbit.ai -->HTML マーカー +## Review limit reachedheading +More reviews will be available in N minuteswait time) を検出できず、cli-pr-monitorのRateLimitOutcome::Parked経路 (ADR-018 設計) が silent regression で完全無効化されていた critical bug を 3 層で構造的に修正。実体観測根拠:
加えて PR #184 post-merge-feedback で採用された T3-2 (ADR-039 checklist 拡張) を todo 化する commit を同 PR に bundle (ユーザー判断 2026-05-29「既存変更同 PR 許容、commit のみ分離」)。
含まれる commits (4 件)
1.
docs(todo): 順位 174 (PR #184 T3-2 採用)PR #184 post-merge-feedback T3-#2 採用: ADR-039 experimental feature lifecycle checklist 拡張 task を todo 化。新規 feature 追加時の config schema ↔ feature flag default OFF ↔ docs / config example ↔ test coverage の 4 点整合 mechanical checklist。PR #184 M-2 (
weekly_review_reminderのenabled = true違反) は checklist があれば self-review で捕捉可能だった。T3-1 (Feedback adoption pattern ADR) は不採用 (analyzer rubric と user 判断の完全一致を formalize するのは構造的に困難、memory
feedback_no_unenforced_rules延長線上の原則)。2.
feat(rate-limit): 順位 167 (T1-#1) 機械強制層src/check-ci-coderabbit/src/main.rsの rate-limit detection を CR 新フォーマット対応に拡張:RATE_LIMIT_MARKER: &str(旧 marker 単一固定) →RATE_LIMIT_MARKERS: &[&str]multi-variant 配列化"Rate limit exceeded"(backward compat 維持)"rate limited by coderabbit.ai"(HTML コメントマーカー、PR feat(takt): 週次レビューパイプライン Phase B — workflow + 4 facets 追加 (ADR-031) #182/feat: 週次レビュー Phase C — /weekly-review skill + SessionStart hook reminder + facet P-1 fix (ADR-031) #184 で実観測)is_rate_limit_comment()を multi-variant check に refactorextract_wait_time()を 2 helper 関数 (extract_old_format_wait_time/extract_new_format_wait_time) に分離して新フォーマット regex を追加Please wait N minutes? and M seconds?(4 variants、3 既存 fixtures が backward compat 保証)More reviews will be available in N minutes? and M seconds?(2 variants、PR feat(takt): 週次レビューパイプライン Phase B — workflow + 4 facets 追加 (ADR-031) #182/feat: 週次レビュー Phase C — /weekly-review skill + SessionStart hook reminder + facet P-1 fix (ADR-031) #184 で実観測)parse_rate_limitdocstring を multi-variant 前提に update注: ADR-039 experimental feature pattern は本タスクには不適用 (rate-limit detection は ADR-018 で既に決定済の standard feature であり experimental ではない)。
3.
test(rate-limit): 順位 168 (T2-#1) test 層#[cfg(test)]mod に 3 新規 fixture を追加 (旧 6 fixture は backward compat 維持):rate_limit_detected_from_new_format_with_html_marker_and_full_wait_time— HTML マーカー + 標準 wait timerate_limit_detected_from_new_format_with_minutes_only— 短縮形 (seconds 省略)rate_limit_picks_latest_when_mixed_old_and_new_formats— 旧 + 新混在で時系列最新が選ばれるmemory
feedback_test_dry_antipattern適用 (各 fixture 独立 setup、共通 helper 化しない)。4.
docs(adr): 順位 169 (T3-#1) ADR 永続 reference 層検証結果
No blocking anomalies detected)メタ評価
本 PR は PR #182 セッションで dogfood 実体観測した structural finding (CR rate-limit marker drift) を 3 commit 分離で構造修正した実例。Phase B (PR #182) で確立した weekly-review pipeline が「rule では検出できない rate-limit detection の format drift」を実体観測経由で拾い、Bundle CR-RL として系統的に修正できた = self-reinforcing detection loop の中期成果。
format 更新手順の codify (ADR-034) により、本 PR land 後の 次回 CR format 変更時 は同型の 30+ 分 polling 浪費を回避可能になる構造化が確立。
Test plan
RateLimitOutcome::Parkedが機能することを実観測🤖 Generated with Claude Code
Summary by CodeRabbit
リリースノート
New Features
Documentation