Skip to content

perf(pre-push-review): loop_monitor judge を haiku 化 (push パイプライン改善 R2) - #293

Merged
aloekun merged 2 commits into
masterfrom
perf/loop-monitor-judge-haiku
Jul 18, 2026
Merged

perf(pre-push-review): loop_monitor judge を haiku 化 (push パイプライン改善 R2)#293
aloekun merged 2 commits into
masterfrom
perf/loop-monitor-judge-haiku

Conversation

@aloekun

@aloekun aloekun commented Jul 18, 2026

Copy link
Copy Markdown
Owner

概要

push パイプライン改善 R2: loop_monitor の stall-detection judge を sonnethaiku に変更。あわせて R1 (#292 マージ済み) の進捗ドキュメント backfill を同梱する。

2 コミット構成:

  1. perf(pre-push-review) — R2 本体 (.takt/workflows の yaml 2 本 + plan2.md §3 R2 完了記録)
  2. docs(push-pipeline) — R1 (fix(push-runner): quality_gate 失敗 step の出力を全量表示 (push パイプライン改善 R1) #292) の §1 表 backfill + ステータス更新 (plan2.md のみ)

R2: loop_monitor judge の haiku 化

  • 変更: pre-push-review.yaml (L30) と pre-push-review-refute.yaml (L39) の loop_monitors[0].judge.modelsonnethaiku
  • 根拠: judge は cycle が threshold 回反復した時に Healthy / Unproductive の 2 択 routing を返すのみで、コード読解や修正判断を伴わない。より複雑な 3 分類 (approved/needs_fix/user_decision) を既に haiku で捌く post-pr-review.yaml の analyze step に前例がある。
  • 両ファイル変更の理由: refute_enabled = true (push-runner-config.toml) のため実走は refute 側だが、kill-switch で非 refute 側へ戻せる設計 (ADR-047)。片方だけ変えると戻した瞬間に効果が消え気付けない (原則 6 / T10 で実際に起きた罠)。両 judge に「もう片方と揃えよ」inline コメントを追加した。
  • 検証: takt prompt で両 workflow が正常パース。yaml 設定のみで Rust 変更なし (exe 再ビルド不要)。

R1 backfill (ライドアロン)

R1 (#292) マージ完了に伴い plan2.md を更新:

レビュースコープの注意

push-runner の diff stage は jj diff -r @ (tip コミットのみ) を対象とするため、pre-push AI レビューは tip = R1 backfill (docs-only) のみをレビューした (simplicity/security 両 APPROVE)。R2 の yaml 変更は @- にあり pre-push AI レビュー未通過だが、CodeRabbit は PR 全体差分 (両コミット) をレビューするため post-PR 段でカバーされる。config-only の低リスク変更で takt prompt 検証済み。

関連

  • push-pipeline-fix-plan2.md §3 R2 (完了記録)
  • ADR-047 (refute facet / kill-switch)

Summary by CodeRabbit

  • 改善

    • プッシュ時のレビュー監視に使用する判定モデルを見直し、Healthy/Unproductiveの判定ルーティングを効率化しました。
    • 関連するレビュー処理間で判定方式を統一しました。
  • ドキュメント

    • 品質ゲート失敗時の出力改善に関する進捗と成果を更新しました。
    • レビュー監視の変更内容、同期方針、未検証事項を記録しました。

aloekun and others added 2 commits July 18, 2026 17:12
loop_monitor の stall-detection judge を sonnet → haiku に変更。judge は cycle が
threshold 回反復した時に Healthy/Unproductive の 2 択 routing を返すだけで、コード
読解や修正判断を伴わない。より複雑な 3 分類 (approved/needs_fix/user_decision) を
既に haiku で捌く post-pr-review.yaml の analyze step に前例がある。

対象は pre-push-review.yaml (L30) と pre-push-review-refute.yaml (L39) の両方。
refute_enabled = true のため実走は refute 側だが、kill-switch (refute_enabled =
false) で非 refute 側へ即戻せる設計 (ADR-047) のため、片方だけ変えると戻した瞬間に
効果が消え気付けない (原則 6 / T10 で実際に起きた罠)。両 judge に「もう片方と揃えよ」
inline コメントを追加して同期義務を明記した。

yaml 設定変更のみで Rust 変更なし (exe 再ビルド不要)。takt prompt で両 workflow が
正常にパースされることを確認済み。完了記録は docs/push-pipeline-fix-plan2.md §3 R2 に追記。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
R1 (quality_gate 失敗 step 全量表示) が #292 としてマージされたため
push-pipeline-fix-plan2.md を更新:
- §1「これまでに実装した内容」表に R1 行 (#292) を追加
- §3 R1 のステータスを「実装済み・未 push」→「マージ済み #292」に更新
- §3 R1 の「§1 backfill は push/マージ時に実施」ノートを実施済みに更新

R1 当該ノートが「§1 表への行追加は push/マージ時に実施」としていたライドアロン
doc 更新。R2 (親コミット) と同一 PR に含める。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 18, 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: 9f4f0847-6f56-4616-bc92-e05a9e011b5c

📥 Commits

Reviewing files that changed from the base of the PR and between c77211e and 8fc9376.

📒 Files selected for processing (3)
  • .takt/workflows/pre-push-review-refute.yaml
  • .takt/workflows/pre-push-review.yaml
  • docs/push-pipeline-fix-plan2.md

📝 Walkthrough

Walkthrough

Changes

loop_monitor judge モデル更新

Layer / File(s) Summary
judge モデル設定の同期
.takt/workflows/pre-push-review.yaml, .takt/workflows/pre-push-review-refute.yaml
両ワークフローの loop_monitor judge を sonnet から haiku に変更し、Healthy/Unproductive の2択ルーティング用途と設定同期に関するコメントを追加しました。
修正計画の進捗更新
docs/push-pipeline-fix-plan2.md
R1 をマージ済みとして記録し、R2 の対象設定、同期方針、未検証事項を更新しました。

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 変更内容の主眼である loop_monitor judge の haiku 化と push パイプライン改善 R2 を簡潔に表しており、適切です。
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 perf/loop-monitor-judge-haiku

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 は未登録
  • レビュー状況: CodeRabbit は「レビュー未着」(処理中コメントのみ、findings 未生成)。人間レビューアーによる review/inline comment は 0 件
  • Verdict: user_decision (findings が存在しないため機械的な approved/needs_fix 判定はできない。CodeRabbit 完了後の再監視が必要)

Applicable Findings (Critical / High / Major)

該当なし (findings 未生成)

Applicable Findings (Medium 以下)

該当なし (findings 未生成)

Filtered (not applicable)

該当なし (findings 未生成)

差分概要

  • 変更ファイル: 3 件 (.takt/workflows/pre-push-review.yaml, .takt/workflows/pre-push-review-refute.yaml, docs/push-pipeline-fix-plan2.md)
  • 変更内容: loop_monitors[].judge.modelsonnethaiku に変更 (両 workflow yaml、原則 6 に沿って揃えて変更)。各ファイルに同期義務を明記した inline コメントを追加
  • docs/push-pipeline-fix-plan2.md は進捗記録の更新 (R1 のマージ完了 backfill、R2 の実施結果セクション追加) — 実行コードへの影響なし
  • 変更の性質: 設定値変更 + コメント追加が中心で、Rust ソースコード変更は無し (diff 上に判断ロジックの変更は見られない)

次のアクション

  • CodeRabbit のレビュー完了を待ってから再度この monitor (または次回起動) で findings を確認する
  • CI check が CodeRabbit のみで push-runner 等の quality gate 相当の check が見当たらないため、必要であれば人間が push-runner 実行状況 (Actions ログ) を確認する

@aloekun
aloekun merged commit 4806044 into master Jul 18, 2026
1 check passed
@aloekun
aloekun deleted the perf/loop-monitor-judge-haiku branch July 18, 2026 08:32
aloekun added a commit that referenced this pull request Jul 18, 2026
run 終了時に stage 別 elapsed / docs_only / post_takt_regate 判定 / total_secs / exit_code / os / bookmarks / takt_workflow を 1 行 JSONL で .claude/telemetry/push-runs-*.jsonl へ append する。T0 の stage ログは stderr のみで非永続だったため、ADR-057/058 の採否判定 (期限 2026-08-15) と after 計測がコンソール手動保存に依存していた問題を解消する (todo 順位 325)。

器は lib-telemetry (ADR-055) を再利用するが、firing 集計 (firings-*.jsonl glob) を汚さないよう別 record kind = 別ファイルに書く。lib-telemetry には汎用 writer (record_metric*) のみ追加し、push-run 固有スキーマ RunRecord は cli-push-runner が保持 (責務分離)。post_takt_regate は skip/run-pass/block を区別するため RegateDecision を surface。opt-in / kill-switch / fail-open は既存 telemetry 原則に相乗り。ADR-055 に amendment を追記。

あわせて R2 (#293 マージ済) の §1 表 backfill (行追加 + 見出しをマージ済みに更新) を plan2.md に反映 (R1 と同じ doc bookkeeping)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
aloekun added a commit that referenced this pull request Jul 18, 2026
run 終了時に stage 別 elapsed / docs_only / post_takt_regate 判定 / total_secs / exit_code / os / bookmarks / takt_workflow を 1 行 JSONL で .claude/telemetry/push-runs-*.jsonl へ append する。T0 の stage ログは stderr のみで非永続だったため、ADR-057/058 の採否判定 (期限 2026-08-15) と after 計測がコンソール手動保存に依存していた問題を解消する (todo 順位 325)。

器は lib-telemetry (ADR-055) を再利用するが、firing 集計 (firings-*.jsonl glob) を汚さないよう別 record kind = 別ファイルに書く。lib-telemetry には汎用 writer (record_metric*) のみ追加し、push-run 固有スキーマ RunRecord は cli-push-runner が保持 (責務分離)。post_takt_regate は skip/run-pass/block を区別するため RegateDecision を surface。opt-in / kill-switch / fail-open は既存 telemetry 原則に相乗り。ADR-055 に amendment を追記。

あわせて R2 (#293 マージ済) の §1 表 backfill (行追加 + 見出しをマージ済みに更新) を plan2.md に反映 (R1 と同じ doc bookkeeping)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
aloekun added a commit that referenced this pull request Jul 18, 2026
…294)

run 終了時に stage 別 elapsed / docs_only / post_takt_regate 判定 / total_secs / exit_code / os / bookmarks / takt_workflow を 1 行 JSONL で .claude/telemetry/push-runs-*.jsonl へ append する。T0 の stage ログは stderr のみで非永続だったため、ADR-057/058 の採否判定 (期限 2026-08-15) と after 計測がコンソール手動保存に依存していた問題を解消する (todo 順位 325)。

器は lib-telemetry (ADR-055) を再利用するが、firing 集計 (firings-*.jsonl glob) を汚さないよう別 record kind = 別ファイルに書く。lib-telemetry には汎用 writer (record_metric*) のみ追加し、push-run 固有スキーマ RunRecord は cli-push-runner が保持 (責務分離)。post_takt_regate は skip/run-pass/block を区別するため RegateDecision を surface。opt-in / kill-switch / fail-open は既存 telemetry 原則に相乗り。ADR-055 に amendment を追記。

あわせて R2 (#293 マージ済) の §1 表 backfill (行追加 + 見出しをマージ済みに更新) を plan2.md に反映 (R1 と同じ doc bookkeeping)。

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
aloekun added a commit that referenced this pull request Aug 12, 2026
…r 7 日差し戻し

棚卸し (35 ファイル全件調査) の採否確定分を一括反映する。

判定確定 (bounded lifetime):
- ADR-056 採用 (速度目標取り下げ、二重 miss 10 件/6 PR の実測を記録し却下条件を精緻化)
- ADR-057 採用 (51 docs-only run / 誤 skip 0 / -54.2s/run。templates へ default-ON 反映)
- ADR-058 採用 (changed_block 1 件は flaky 誤 block と確定、真の検出 0 件を正直に記録)
- ADR-059 採用 (CLI=描画 / VSCode=非描画で defense-in-depth が代替。第 2 弾展開は見送り)
- auto-push gate B1-loop NO-GO (観測手段欠落 + 経路消滅。ADR-043 amendment へ転記)
- 順位 247 継続 (延長 1 回目)、順位 319 dogfood 不合格 (29 PR 実測 69% 重複) を記帳

計画書の退役:
- file-length-enforcement-plan.md 削除 (全 6 PR 完了、分割制約は dev-conventions へ移設)
- weekly-review-notification-plan.md 削除 (削除条件決着を ADR-059 § 確定判定へ転記)
- todo2.md 退役 (ADR-032 ブロックは ADR-057 実現で廃止、残 2 タスクを todo22 へ移送)
- auto-push-gate-dogfood.md 削除 (NO-GO 判定、ADR-043 amendment へ転記)

台帳整理:
- ADR-030 Phase E (旧機構廃止) を撤回し順位 27 決着 (ADR-030 § 撤回記録)
- 順位 51/225/11/20/21/22/333 を削除、todo14 孤児 4 件を採番 (433-436)
- 新規起票 7 件 (437-443: rules 採否 / branch 回収 / gate telemetry / weekly-review 保存 /
  docs-lint 1:1 検査 / security facet 敵対的観点 / flaky 当たり面)
- グローバル文書対象 17 エントリに旧環境実査の Status update 注記
- push-pipeline-fix-plan/plan2 の stale 記載を #292/#293/#294 マージ済みに更新

運用変更:
- weekly reminder_threshold_days 30→7 差し戻し (ADR-070 の 30 日は routine 正常稼働が
  前提だが成果物デリバリ未確立のため。再引き上げは保存問題解消後に再評価)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
aloekun added a commit that referenced this pull request Aug 12, 2026
…r 7 日差し戻し (#392)

棚卸し (35 ファイル全件調査) の採否確定分を一括反映する。

判定確定 (bounded lifetime):
- ADR-056 採用 (速度目標取り下げ、二重 miss 10 件/6 PR の実測を記録し却下条件を精緻化)
- ADR-057 採用 (51 docs-only run / 誤 skip 0 / -54.2s/run。templates へ default-ON 反映)
- ADR-058 採用 (changed_block 1 件は flaky 誤 block と確定、真の検出 0 件を正直に記録)
- ADR-059 採用 (CLI=描画 / VSCode=非描画で defense-in-depth が代替。第 2 弾展開は見送り)
- auto-push gate B1-loop NO-GO (観測手段欠落 + 経路消滅。ADR-043 amendment へ転記)
- 順位 247 継続 (延長 1 回目)、順位 319 dogfood 不合格 (29 PR 実測 69% 重複) を記帳

計画書の退役:
- file-length-enforcement-plan.md 削除 (全 6 PR 完了、分割制約は dev-conventions へ移設)
- weekly-review-notification-plan.md 削除 (削除条件決着を ADR-059 § 確定判定へ転記)
- todo2.md 退役 (ADR-032 ブロックは ADR-057 実現で廃止、残 2 タスクを todo22 へ移送)
- auto-push-gate-dogfood.md 削除 (NO-GO 判定、ADR-043 amendment へ転記)

台帳整理:
- ADR-030 Phase E (旧機構廃止) を撤回し順位 27 決着 (ADR-030 § 撤回記録)
- 順位 51/225/11/20/21/22/333 を削除、todo14 孤児 4 件を採番 (433-436)
- 新規起票 7 件 (437-443: rules 採否 / branch 回収 / gate telemetry / weekly-review 保存 /
  docs-lint 1:1 検査 / security facet 敵対的観点 / flaky 当たり面)
- グローバル文書対象 17 エントリに旧環境実査の Status update 注記
- push-pipeline-fix-plan/plan2 の stale 記載を #292/#293/#294 マージ済みに更新

運用変更:
- weekly reminder_threshold_days 30→7 差し戻し (ADR-070 の 30 日は routine 正常稼働が
  前提だが成果物デリバリ未確立のため。再引き上げは保存問題解消後に再評価)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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