refactor(pre-push): ADR-047 却下で refute facet を撤去 + R4 判定記録 (ADR-056 延長) - #296
Conversation
…o 起案) 判定期限 2026-07-31 に先立ち、dogfood 実データで両 ADR の受け入れ基準を評価した判定ドラフトを追記。ADR-047 は却下推奨 (refute run 26 件中 verify 発火 2・finding 却下 0 件 = FP 除去の便益未実証、fix loop 減は verify 却下 0 のため refute 起因ではなく ADR-056/diff に帰属)。ADR-056 は延長推奨 (simplicity execute avg 203.4s で ≤150s 未達だが diff サイズ交絡、checklist 型 REJECT 0・二重 miss なしで品質目標は達成)。 却下理由の補強 (07-19): 一般的な反証機構の設計原則 (複数反証+多数決 / 反証者能力≥発見者 or 証拠優位 / 高 FP 率前提) との構成差 (単独 haiku・証拠優位なし) を明記し、却下 0% の主因を「ADR-056 の fact-check 義務 = inline 反証が同日導入で FP を上流で枯らした」ことに帰属。「反証という手法が無効」ではなく「この位置にこの構成で置く必要が消滅」と精緻化。timing 実測 (理想=fix 134-312s 節約 / 実態=発火 2 run で各 +99s 純追加・削減 0) も記録。外部 finding 向け反証層 (ADR-038/023) は却下の射程外。 代替案として並列設計レビュアー (recall 側の新実験、reviewers 並列で wall-clock 追加ゼロ見込み) を todo 順位 326 に起案。Phase 0 (feedback-reports / CodeRabbit threads / ADR 実害記録の 3 系列から見落とし実績を数える需要調査、ゼロなら見送り = ADR-042) を必須先行とし、Phase 1 は ADR-056 と同じ fact-check 規律 + 根拠ソース引用必須 + blocking は実害提示時のみの縛りで fix loop 率再上昇を抑止する設計。 (b) reject 誤りの CodeRabbit 回収は「却下 0 件 = ゼロ事象」として確定し、未計測の曖昧さを解消。status header の確定と revert PR は判定承認後。step 別所要の裏付けは別コミットの docs/takt-step-timings.md。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-19 のユーザー承認により ADR-047 (反証 refute facet) の却下を確定し、稼働中だった機能を撤去した。ADR の書き換えだけでは止まらず、実行スイッチは push-runner-config.toml の refute_enabled = true だった (確定時点でも実走は pre-push-review-refute)。 撤去内容: [pre_push_review] section (本体 + templates、tombstone 残置) / pre-push-review-refute.yaml / refute 専用 facet 2 本 (refute-finding instruction, refutation-report output-contract)。共有 facet の恒常デッドウェイト参照 (fix.md の refutation-report filter 節、supervise.md の ALL_REFUTED 節、review-anomaly.md の refutation 言及、pre-push-review.yaml judge の同期義務コメント) も除去 (ADR-056 T10 の lint_screen 参照削除と同型)。Rust 側 resolve_takt_workflow は汎用機構のため残置 (section 不在 = default 経路は既存 unit test が保護、exe 再ビルド不要)。 検証: takt prompt pre-push-review が 4 step を facet 参照エラーなしでレンダリング。配布 exe + 実 config の起動バナーが 'takt (pre-push-review)' を表示 = 切替を実証 (verify 却下 0 件のため挙動影響ゼロ)。ADR-056 の dogfood 計測は継続 (07-19 以降は piece = pre-push-review、日付区別の注記を ADR-056 に追加)。 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 (14)
💤 Files with no reviewable changes (5)
📝 WalkthroughWalkthroughrefute 用の指示・出力契約・ワークフロー・設定を撤去し、pre-push-review に一本化しました。ADR-047 の却下確定と ADR-056 の継続評価を記録し、並列設計レビュアーの実験計画を追加しています。 Changesrefute 機構の退役と後続計画
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ 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 バックストップ)
指摘事項現時点でレビュー指摘 (CodeRabbit / 人間 / 他 bot 含め) は 0 件のため、Applicable / Filtered の表は該当なし。CI 状態と diff 概要のみ記す。 Diff 概要
次のアクション
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
🤖 PR Monitor 分析 (GitHub Actions バックストップ)
Applicable Findings (Critical / High / Major)該当なし (findings 0 件) Applicable Findings (Medium 以下)該当なし (findings 0 件) Filtered (not applicable)該当なし (findings 0 件) 次のアクション
|
…llow-up todo (#295/#296 post-merge feedback) PR #295/#296 の post-merge feedback 採用候補を反映。(1) analyze-takt-timings.ps1 L47 の ConvertFrom-Json を try/catch で保護し、crashed/in-progress run の truncated meta.json 1 件で集計ループ全体が中断しないよう skip (L63 の phase 行 parse と同流儀。CodeRabbit の startTime null ガードが塞げなかった JSON 自体の破損を補完)。(2) takt-step-timings.md の「正規化前提」と述べつつ未正規化 avg を 150s と直接『未達』断定していた矛盾を、diff サイズ交絡を明記し最終判定を R4/ADR-056 に委ねる記述に修正。 あわせて todo 起案: 順位327 (多段コミットの ADR/observability 更新チェックリストを dev-conventions に、Tier3)、順位328 (post-merge feedback が成功後に context.json を残し次マージの feedback を誤 bail させる cleanup gap、#296 マージで実観測、Tier1)。 検証: 正常出力不変 (24 run 203.4s)、truncated meta.json を skip してクラッシュしないことを実機確認。docs-lint / markdownlint OK。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…llow-up todo (#295/#296 post-merge feedback) (#297) PR #295/#296 の post-merge feedback 採用候補を反映。(1) analyze-takt-timings.ps1 L47 の ConvertFrom-Json を try/catch で保護し、crashed/in-progress run の truncated meta.json 1 件で集計ループ全体が中断しないよう skip (L63 の phase 行 parse と同流儀。CodeRabbit の startTime null ガードが塞げなかった JSON 自体の破損を補完)。(2) takt-step-timings.md の「正規化前提」と述べつつ未正規化 avg を 150s と直接『未達』断定していた矛盾を、diff サイズ交絡を明記し最終判定を R4/ADR-056 に委ねる記述に修正。 あわせて todo 起案: 順位327 (多段コミットの ADR/observability 更新チェックリストを dev-conventions に、Tier3)、順位328 (post-merge feedback が成功後に context.json を残し次マージの feedback を誤 bail させる cleanup gap、#296 マージで実観測、Tier1)。 検証: 正常出力不変 (24 run 203.4s)、truncated meta.json を skip してクラッシュしないことを実機確認。docs-lint / markdownlint OK。 Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
pre-push-review-refute.yaml)・専用 facet 2 本 (refute-finding.md/refutation-report.md)・[pre_push_review]config section を撤去。共有 facet (fix.md/supervise.md/review-anomaly.md) とpre-push-review.yamlの恒常デッドウェイト参照も除去Context
Why: ADR-047 の bounded lifetime (判定期限 2026-07-31) の採否判定。dogfood 26 run の実データで評価した結果、verify(refute) の finding 却下は 0 件で、FP 除去という存在意義が観測データ上実現していなかった。fix loop 減 (8.3% vs baseline 20%) も verify 却下 0 のため refute 起因ではなく ADR-056/diff に帰属。
Trigger: R4 (docs/push-pipeline-fix-plan2.md) / ADR-047・ADR-056 の bounded lifetime。
Scope: ADR は「書き換えるだけ」では機能が止まらず、実行スイッチは
refute_enabled = true(確定時点でも実走は refute) のため、却下確定と同時に撤去を実施。Rust 側resolve_takt_workflowは汎用機構のため残置 (section 不在の default 経路は既存 unit test が保護、exe 再ビルド不要)。Validation
pnpm pushpre-push review: verdict=APPROVE (2026-07-19)。撤去後のpre-push-review(非 refute) で完走 = 撤去の end-to-end 実証。reviewers が「dangling reference なし /resolve_takt_workflowが section 不在でpre-push-reviewを返す / 除去は net で保守的 (全 finding が fix に到達)」を確認。pnpm lint:docs/ markdownlint OK。takt (pre-push-review)を表示 (refute 側でない)。verify 却下 0 件のため挙動影響ゼロ。References
Summary by CodeRabbit
変更
ドキュメント