Skip to content

chore(push-runner-config): refute facet の dogfood を開始 (push T4) - #281

Merged
aloekun merged 1 commit into
masterfrom
chore/refute-facet-dogfood
Jul 16, 2026
Merged

chore(push-runner-config): refute facet の dogfood を開始 (push T4)#281
aloekun merged 1 commit into
masterfrom
chore/refute-facet-dogfood

Conversation

@aloekun

@aloekun aloekun commented Jul 16, 2026

Copy link
Copy Markdown
Owner

Summary

  • push-runner-config.toml[pre_push_review] refute_enabledfalse → true にし、
    ADR-047 の反証 (refute) facet の dogfood を開始する (計画どおり実質 1 行の変更)
  • dogfood 開始日 2026-07-17 → 判定期限 2026-07-31 を ADR-047 と config コメントに固定
  • ADR-047 の dogfood 計測手順の誤りを修正 (.takt/runs/*-pre-push-review-refute/
    0 件マッチ。meta.jsonpiece フィールド基準に変更)
  • templates/push-runner-config.tomlfalse 据え置き = 派生プロジェクトは現行フロー継続

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 push pre-push review: verdict=APPROVE (simplicity + security 両方)。
    workflow が pre-push-review-refute に切替わったことを起動ログと takt の
    ワークフロー 'pre-push-review-refute' を起動 → 完走で確認
  • quality_gate 全 4 グループ PASS (lint / test / build / rust-lint-test)
  • cargo test -p cli-push-runner config::: 33 passed (切替ロジック resolve_takt_workflow
    の 4 本を含む)
  • pnpm lint:docs: OK
  • 初回 dogfood push 実測: 合計 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 に入らなかった。実動観測は次に
    findings が出る run に持ち越す (計画 §5 T4 に限界込みで記録済み)

References

Summary by CodeRabbit

  • 新機能
    • pre-pushレビューの反証チェック機能を有効化しました。
    • 初回の試験運用を開始し、2026年7月31日まで評価します。
  • ドキュメント
    • 試験運用の開始日・判定期限・運用方針を更新しました。
    • 実行結果や修正回数の確認手順を見直し、計測方法を明確化しました。
    • 初回の試験実行が正常に完了したことを記録しました。

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>
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 5e4ef42b-8e60-427f-93fc-25a0053ae13e

📥 Commits

Reviewing files that changed from the base of the PR and between 229f2bf and bbe10fe.

📒 Files selected for processing (3)
  • docs/adr/adr-047-prepush-refute-facet.md
  • docs/push-pipeline-fix-plan.md
  • push-runner-config.toml

📝 Walkthrough

Walkthrough

refute facet の dogfood 方針と計測手順を更新し、refute_enabled を有効化した。開始日、判定期限、初回実行結果、判定記録が ADR と計画書に追記された。

Changes

refute facet dogfood

Layer / File(s) Summary
dogfood 方針と計測手順
docs/adr/adr-047-prepush-refute-facet.md
dogfood の開始日・判定期限、設定条件、refute run の meta.jsontrace.md による特定方法、および UTC timestamp の注意事項を更新した。
設定有効化と実施記録
push-runner-config.toml, docs/push-pipeline-fix-plan.md
pre_push_review.refute_enabledtrue に変更し、初回 dogfood push の完走結果、計測手順の修正、T4 の判定記録を追記した。

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed refute facet の dogfood 開始と push T4 を示しており、変更内容の主軸と一致しています。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/refute-facet-dogfood

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 PR Monitor 分析 (GitHub Actions バックストップ)

  • トリガー: issue_comment (created) / 実行 run
  • CI: CodeRabbit チェックのみ存在し pending (Review in progress)。他の CI check は無し。mergeStateStatus: UNSTABLE(pending check 起因と推定、mergeable: MERGEABLE
  • レビュー状況: CodeRabbit はレビュー進行中コメント("Currently processing new changes...")のみで、実体のあるレビュー・findings は未投稿(pulls/281/reviews = []、inline comments = [])。人間レビュアーの参加も無し。
  • Verdict: approved(現時点で applicable な指摘が 0 件のため。ただし CodeRabbit のレビュー自体が未完了であり暫定判定)

Applicable Findings (Critical / High / Major)

該当なし(レビュー未着のため)

Applicable Findings (Medium 以下)

該当なし

Filtered (not applicable)

該当なし

diff 概要

  • docs/adr/adr-047-prepush-refute-facet.md (+13/-5): dogfood 開始日 (2026-07-17) と判定期限 (2026-07-31) をステータス行/Config opt-in/Bounded lifetime の3箇所に明記。計測手順を .takt/runs/*-pre-push-review-refute/trace.md 方式から meta.jsonpiece フィールド方式に修正(前者は runSlug がタスク名由来のため0件マッチする不具合の是正)。
  • docs/push-pipeline-fix-plan.md (+71/-0): T4 (refute facet dogfood 開始) の実施結果・実測値・計測手順修正の経緯を追記。既存の完了タスク記録に対する追記のみ。
  • push-runner-config.toml (+8/-7): [pre_push_review].refute_enabledfalse → true に変更し、コメントを dogfood 開始済みの記述に更新。実質的な設定変更はこの1行のみで、diff 全体の記述内容と整合している。

いずれも ADR-047 (試験運用) / ADR-039 (Experimental feature 標準パターン) に沿った、計画済み dogfood 開始の実装であり、intentional design からの逸脱は見当たらない。docs-only ではない(push-runner-config.toml の実設定変更を含む)が、変更は最小かつ diff 内の記述と一致している。

次のアクション

  • CodeRabbit のレビューはまだ処理中のため、実際の指摘内容が付いた段階で本 workflow が再度起動し分析する(現時点では待機不要、次回イベントで拾われる想定)。
  • 人間レビュアーは、diff 内で言及されている「初回 dogfood push の実測」(quality_gate 49.7s / takt 97.8s 等)が実際のこの PR 自身の push ログと一致するかを一次情報(CI ログ等、本 workflow の範囲外)で確認すると良い。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant