docs(todo): PR #275 post-merge feedback採用9件 (順位309-317) - #276
Conversation
PR #275 (feat(lib-telemetry) WP-12 step1) の post-merge feedback (ADR-030) から採用候補9件を採用し順位309-317に登録。Tier1: telemetry の block 記録を実 quality 違反に限定 (CodeRabbit Major、ADR-055 amendment 併記) / custom-regex の生 regex が telemetry id に流れる privacy 是正 (非ブロッキング follow-up 統合) / 逐語的関数複製の pre-push DRY lint rule。Tier2: telemetry retention/cleanup / is_truthy 三重複製の ADR-049 fixture 化 / bookmark 未作成 push のエラーメッセージ改善。Tier3: ADR-055 warm-up 期限の config コメント明記 / ADR-044 2nd-consumer 原則の明確化 / utility 追加前チェックリスト。様子見4件は report のみ。根拠は .claude/feedback-reports/275.md。
|
Warning Review limit reached
Next review available in: 8 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
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)該当なし(レビュー指摘自体が0件のため) Applicable Findings (Medium 以下)該当なし Filtered (not applicable)該当なし 変更概要 (軽量サマリー)本PRは ADR-035 の path 基準・diff 内容基準を満たす docs-only PR(
次のアクション
|
… パイプライン改善 T11) (#288) * docs(todo): CodeRabbit 監視まわりの不具合 5 件を backlog 化 (PR #287 調査、順位 318-322) PR #287 で CodeRabbit の挙動が通常と異なったため調査し、実測で裏付けた不具合を 順位 318-322 として記録する。いずれも「壊れていないように見えるが実は機能していない」 = silent failure / false-green の系統。 順位 318 (Tier 1): CR rate-limit 第3 format 未対応 + silent 化。 marker `rate limited by coderabbit.ai` は一致するが、wait-time 文言が `Next review available in: N minutes` に変わっており old/new どちらの regex にも 不一致。parse_rate_limit は extract_wait_time(body)? で None を返して静かに終了し、 「rate-limit 無し」と区別が付かない。ADR-034 の「HTML マーカーは UI 文言より stable」 という予測自体は当たっていた (marker 安定 / 文言変化) が、regex 側の脆弱性が 残っていた。旧→新→第3 で同一クラス 3 世代目。ADR-034 の troubleshooting は 「marker が常時 false」を症状として想定しており本件を発見できない。 順位 319 (Tier 1): pr-monitor.yml バックストップの重複ガードが構造的トートロジー。 skip 条件が「前回分析以降に新しいコメントが無い」だが、起動トリガー自体が coderabbitai[bot] の issue_comment のため、発火時点で必ず新コメントが存在し skip 条件は永久に成立しない。実測 5 件投稿 (うち 2 件は CR の ack のみに反応、 1 件はマージ後)。13:18 の投稿は本文で「レビュー実体の追加は無し」と自認しつつ 投稿しており、ガードが「新情報の価値」でなく「コメントの有無」を見ている証拠。 ガードが LLM prompt (助言層) にあることが原因で、決定論層 (`if:`) へ移すべき。 順位 320 (Tier 2): CR status check は実レビュー有無に関わらず pass。 skip も rate-limit も完了も一律 pass で、緑は「レビュー済み」を意味しない。 加えて CR はコメント本文を in-place 更新するため check の summary 文字列が stale になる (本件では `Review skipped: ...` 表示のまま実態は `Review limit reached`)。診断の決定打は本文の `Configuration used` (Organization UI = レビュー未開始の症状 / Path: .coderabbit.yaml = 実行された証拠)。 順位 321 (Tier 2): WP-03 クォータ設計の前提 stale + レビュー欠落穴。 .coderabbit.yaml 冒頭は「無料枠 3〜4 レビュー/時」前提だが実際は Pro + adaptive per-developer limit。ADR-040 の GPU 前提が stale だった件と同型。 WP-03 は PR あたりの削減はできても developer 単位の rolling window 枯渇に 効かない (#276-#287 の 12 PR / 約 24h が引き金と示唆)。また auto_incremental_review: false と「初回レビュー処理中の push」の組合せで 新 head が未レビューのまま残る穴があり、手動トリガーが規約依存になっている。 順位 322 (Tier 1): post-merge-feedback が repo root に scratch script を残す。 PR #287 マージ直後に analyze_transcript.py が生成され、jj auto-snapshot で 本コミットに混入する寸前だった (commit 前の jj status で発見)。 scratch_file_warning の patterns = ["__*", "_tmp_*"] に一致せず素通りする。 PR #85 と同一クラスだが、対策が deny-list (pattern 列挙) のため AI が付ける 新しい命名を先回りできないという構造的限界が露呈した。実物は削除せず scratchpad に退避 (回帰テストの fixture 候補)。 Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(push-runner): docs-only 判定で rust gate を skip する決定論 routing (push パイプライン改善 T11) PR 範囲 (`<base>..@`) が docs-only (ADR-035 path 基準) のとき、diff で結果が 変わり得ない quality_gate の rust-lint-test group (実測 ~50s = gate 律速) を quality_gate 前に決定論的に skip する。 - takt (AI レビュー) と JS 系 (pnpm lint:docs) は skip しない: path から 「Rust テスト結果不変」は演繹できるが「レビュー不要」は演繹できない (docs の cross-ref / trust boundary / 事実は誤り得る。ADR-035 §適用 criteria) - ADR-035 path 基準を新 crate lib-docs-policy に集約し、cli-pr-monitor の 重複実装 (関数 + テスト 7 本) を撤去して単一実装化 - ADR-039 3 点セット: [docs_only_routing] default OFF / env DOCS_ONLY_ROUTING_DISABLE=1 kill-switch / 本 repo enabled=true で dogfood - fail-closed (ADR-043): jj 失敗 / 除外パス混入 / 判定不能はフル実行に倒す - 新規 ADR-057 (試験運用、判定期限 2026-08-15) 回帰テスト: lib-docs-policy 8 + docs_only_routing stage 9 + quality_gate skip 3 (対照付き) + config 4。配布 exe で docs-only=skip / code=full / kill-switch / disabled の 4 scenario を実 jj repo で before/after 確認。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
概要
PR #275(
feat(lib-telemetry)WP-12 step1)の post-merge feedback(ADR-030)から採用候補9件を採用し、docs/todo13.md(詳細エントリ)+docs/todo-summary.md(順位309-317)に登録します。docs-only。採否はユーザー承認済み。「様子見」4件は report のみ(todo 未登録)。根拠は
.claude/feedback-reports/275.md。採用項目(順位309-317)
Tier 1(Hooks/Linter)
emit_block/record_*_firingが infra エラー(stdin/parse 失敗)でも発火を記録している点を実 violation パス限定に絞る。ADR-055 の「emit 総数」定義は amendment 併記。3 hook 横断で分割 PR 推奨。blocked_patternsの生 regex が telemetryidに流れる privacy footgun の是正(=セッション中の非ブロッキング follow-up を統合)。fallback を合成 id に正規化 + ADR-055 に config privacy 注記。現行 config は named preset のみで非発火。is_truthy三重複製事案、ADR-007 regex 層)。Tier 2(テスト/自動化)
.claude/telemetry/の per-pid×日次 partition ファイルの retention/cleanup(WP-12 step 2 と同時期、28日後)。is_truthy三重複製を ADR-049 incident fixture 化(順位311と抱き合わせ)。Tier 3(ドキュメント/ルール)
is_truthyの非対称性を case study 化)。備考