chore(push-runner-config): refute facet の dogfood を開始 (push T4) - #281
Conversation
ADR-047 の反証 (refute) facet は実装済みだが `[pre_push_review]
refute_enabled = false` のまま未運用だった。導入 PR が OFF だったのは、
未検証の refute workflow でその導入 PR 自体を自己レビューする
ブートストラップを避けるためで、workflow は master で検証済みのため
dogfood に入る。
reviewer (sonnet) の false positive finding を fix 前に haiku で反証・却下し、
無駄な fix iteration (5〜8 分) を削る仕組み。誤 reject は post-PR の
CodeRabbit 層で回収される安全網構造が前提 (ADR-019)。
変更:
- push-runner-config.toml: refute_enabled = false → true (計画どおり 1 行)。
templates/push-runner-config.toml は false 据え置き = 派生プロジェクトは
現行 pre-push-review を継承し、dogfood は本リポジトリに閉じる
(ADR-047 の config opt-in 設計どおり)。
- ADR-047 + config コメント: dogfood 開始 2026-07-17 → 判定期限 2026-07-31 を
明記。ADR-039 の bounded lifetime は「有効化から 2 週間」を起点に持つため、
起点日が記録されないと期限が判定不能になる。有効化と同じ PR で固定する。
- ADR-047 の dogfood 計測手順を修正 (下記の実測で誤りが判明したため)。
初回 dogfood push (本コミット自身の push) の実測:
- 切替は成功。起動ログ `takt (pre-push-review-refute)` + takt の
`ワークフロー 'pre-push-review-refute' を起動` → 完走を確認。
- 合計 151s (pre_checks 1.3s / quality_gate 49.7s / diff 0.1s /
takt 97.8s / push 2.2s)。
- verify step は未発火。reviewers 2 本とも APPROVE で all("approved") →
COMPLETE に抜けたため any("needs_fix") → verify の経路に入らなかった。
verify 実動の観測は次に findings が出る run に持ち越す。
副産物 — 計測手順の誤りを dogfood 初回で発見:
ADR-047 は refute run を `.takt/runs/*-pre-push-review-refute/trace.md` で
辿ると書いていたが、この glob は 1 件もマッチしない。takt の run ディレクトリ名は
workflow 名ではなく task 名から作られるため (runSlug = <UTC timestamp>-pre-push-review)、
refute run でもディレクトリ名は 20260716-182505-pre-push-review になる。
timestamp も UTC のため JST 2026-07-17 の run が 20260716-* になる。
放置すると 2026-07-31 の採否判定で run が 0 件ヒットし「データなし」と
誤読する恐れがあったため、meta.json の piece フィールド基準に修正した:
grep -l '"piece": "pre-push-review-refute"' .takt/runs/*/meta.json
設計時に書いた計測手順が実運用開始まで検証されていなかった例であり、
dogfood 開始 PR で計測手順まで実地確認する価値がここに出た。
有効化前の静的確認 (dogfood のブートストラップ注意 = 計画 §2 原則 4):
- refute 側の資産が揃っている (pre-push-review-refute.yaml /
refute-finding.md / refutation-report.md)。
- 切替ロジックの unit test 4 本が通る
(cargo test -p cli-push-runner resolve_workflow)。切替は
resolve_takt_workflow に単一集約済み。
- Rust 変更ゼロで config は実行時に cwd から読まれるため exe 再ビルド不要。
- 同じ config を読む cli-pr-monitor の gate.rs は [quality_gate] のみ参照で
波及なし。
採否判定は本計画と独立に ADR-047 の bounded lifetime で進行する。
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 (3)
📝 WalkthroughWalkthroughrefute facet の dogfood 方針と計測手順を更新し、 Changesrefute facet dogfood
Estimated code review effort: 2 (Simple) | ~10 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 バックストップ)
Applicable Findings (Critical / High / Major)該当なし(レビュー未着のため) Applicable Findings (Medium 以下)該当なし Filtered (not applicable)該当なし diff 概要
いずれも ADR-047 (試験運用) / ADR-039 (Experimental feature 標準パターン) に沿った、計画済み dogfood 開始の実装であり、intentional design からの逸脱は見当たらない。docs-only ではない( 次のアクション
|
Summary
push-runner-config.tomlの[pre_push_review] refute_enabledをfalse → trueにし、ADR-047 の反証 (refute) facet の dogfood を開始する (計画どおり実質 1 行の変更)
.takt/runs/*-pre-push-review-refute/は0 件マッチ。
meta.jsonのpieceフィールド基準に変更)templates/push-runner-config.tomlはfalse据え置き = 派生プロジェクトは現行フロー継続Context
ADR-047 の refute facet は実装済みだが未運用だった。導入 PR が OFF だったのは、未検証の
refute workflow でその導入 PR 自体を自己レビューするブートストラップを避けるためで、
workflow は master で検証済みのため dogfood に入る (
docs/push-pipeline-fix-plan.mdの T4)。reviewer (sonnet) の false positive を fix 前に haiku で反証・却下し、無駄な fix iteration
(5〜8 分) を削る仕組み。誤 reject は post-PR の CodeRabbit 層で回収される (ADR-019)。
開始日を同 PR で固定した理由: ADR-039 の bounded lifetime は「有効化から 2 週間」を
起点に持つため、起点日が記録されないと期限そのものが判定不能になる。
計測手順の修正 (dogfood 初回 push の副産物): ADR-047 は refute run を
.takt/runs/*-pre-push-review-refute/trace.mdで辿ると書いていたが、この glob は 1 件もマッチしない。takt の run ディレクトリ名は workflow 名ではなく task 名から作られ
(
runSlug=<UTC timestamp>-pre-push-review)、timestamp も UTC のため JST の日付とずれ得る。放置すると 2026-07-31 の採否判定で run が 0 件ヒットし「データなし」と誤読する
恐れがあった。設計時の手順が実運用開始まで未検証だった例。
Scope: 採否判定自体は本 PR の範囲外で、ADR-047 の bounded lifetime に引き継ぐ。
Validation
pnpm pushpre-push review: verdict=APPROVE (simplicity + security 両方)。workflow が
pre-push-review-refuteに切替わったことを起動ログと takt のワークフロー 'pre-push-review-refute' を起動→ 完走で確認cargo test -p cli-push-runner config::: 33 passed (切替ロジックresolve_takt_workflowの 4 本を含む)
pnpm lint:docs: OKtakt 97.8s / push 2.2s)
all("approved") → COMPLETEに抜けたためany("needs_fix") → verifyに入らなかった。実動観測は次にfindings が出る run に持ち越す (計画 §5 T4 に限界込みで記録済み)
References
docs/push-pipeline-fix-plan.md§5 T4 / §8 判定記録 — 実施結果と実測@時の bookmark_check 誤誘導を修正 (push T8) #280 (T8) — 同計画の先行タスクSummary by CodeRabbit