docs(adr): ADR-052 自律実行境界の 2 クラス分類(WP-10、ADR-028 の 2 段化) - #259
Conversation
WP-10: ADR-052 起票。自律 actor 限定で操作を 2 クラス(自動実行可 / ゲート必須)に 事前分類し、分類不能は fail-closed でゲート必須へ(ADR-043)。ADR-028 のゲートを除去 せず commitment 点(ready 化 / マージ)へ移設する 2 段化が本質。Rust 分類関数は呼び手 (自律実行経路)不在のため今回見送り、consumer 着手時に gate.rs の docs-only 判定を lib 切り出しで再利用実装する方針を明記。ADR-039 パターンで試験運用。 - CLAUDE.md の ADR 一覧に ADR-052 追加。 - harness-improvement-plan.md: WP-10 を実装済、WP-09 を観測中(GitHub Actions バック ストップが PR #258 でマージ・本稼働、secrets 登録済・スモークテスト成功を反映)に更新。
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughADR-052を追加し、自律 actor の実行境界を2クラスに分類する方針を定義しました。あわせて、ADR索引とハーネス改善計画のWP-09/WP-10の進捗・運用内容を更新しています。 Changes自律実行境界ポリシー
Estimated code review effort: 3 (Moderate) | ~20 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 |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/adr/adr-052-autonomy-execution-boundary-classes.md`:
- Around line 107-114: 「bounded
lifetime」の記述を、ステータス日2026-07-11から算出した具体的な期限(少なくとも2026-10-11)に置き換え、期限到来時の判定手順を追加してください。判定結果として採用・改訂・却下を明記し、延長する場合の承認条件と新たな期限、継続しない場合のretirement手順も定義してください。
- Around line 78-84:
「実装スコープ」の方針は維持したまま、原則5にkill-switchの起動経路、停止コマンドまたは設定値、影響範囲、未設定時の既定動作、停止手順を表形式で追記してください。ADR-039準拠に基づき、opt-inの既定OFFとし、背圧またはkill-switchが未接続・不明な場合はfail-closedで全自律動作を停止する契約を明記してください。
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 05fc7d94-8a92-4f01-911b-17f3a9ef8c06
📒 Files selected for processing (3)
CLAUDE.mddocs/adr/adr-052-autonomy-execution-boundary-classes.mddocs/harness-improvement-plan.md
| ### 原則 5: 背圧・kill-switch との連動 | ||
|
|
||
| 自動実行可クラス(特に draft PR 作成)を背圧なしで運用すると、未マージ draft PR の山を積む。本クラスは**常時性ガード**(未マージ draft が閾値を超えたら自律動作を停止する背圧制御、および全自律動作を止める全体 kill-switch)と**セットで**有効化する。本 ADR は「**何を**自律実行してよいか」を定め、背圧・kill-switch は「**いつ**自主減速・停止するか」を定める。両者は相補で、片方だけでは安全な常時稼働にならない。 | ||
|
|
||
| ## 実装スコープ(2026-07-11 時点) | ||
|
|
||
| 本 ADR は**ポリシー(decision rule)の確定に閉じ、Rust 分類関数の実装は今回見送る**。 |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift
kill-switch の起動・停止契約を明文化してください。
ADR-039準拠を宣言していますが、kill-switchの起動経路、停止コマンドまたは設定値、影響範囲、未設定時の既定動作がありません。Rust側の呼び手が未実装でも、将来の実装者がこのポリシーだけを根拠に安全装置なしで有効化できます。opt-inのデフォルトOFF、背圧・kill-switch未接続時のfail-closed動作、停止手順を表形式で追記してください。
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/adr/adr-052-autonomy-execution-boundary-classes.md` around lines 78 -
84,
「実装スコープ」の方針は維持したまま、原則5にkill-switchの起動経路、停止コマンドまたは設定値、影響範囲、未設定時の既定動作、停止手順を表形式で追記してください。ADR-039準拠に基づき、opt-inの既定OFFとし、背圧またはkill-switchが未接続・不明な場合はfail-closedで全自律動作を停止する契約を明記してください。
| ## 試験運用判断基準(ADR-039) | ||
|
|
||
| 本 ADR は試験運用とする。呼び手(自律実行経路)が実装された後、以下を観測して本採用/改訂を判断する: | ||
|
|
||
| - 自動実行可クラスの操作が意図せず commitment 点(ready 化 / マージ)へ到達しないこと。 | ||
| - 分類不能ケースが確実にゲート必須へ倒れること(fail-closed 契約)。 | ||
| - config opt-in + 全体 kill-switch で全自律動作を停止できること。 | ||
| - **bounded lifetime**: 呼び手が未実装のまま陳腐化リスクを避けるため、自律実行経路の着手が無いまま一定期間(目安 3 か月)が経過したら、本 ADR の前提(2 クラスの粒度・境界)が依然妥当か再評価する。先行設計が実装時の現実と乖離していれば改訂する。 |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
bounded lifetime を具体的な期限と判定手順にしてください。
「目安3か月」では試験期限が拘束されず、試験運用が無期限化します。ステータス日が2026-07-11なので、少なくとも2026-10-11などの明確な期限と、採用・改訂・却下、延長する場合の条件およびretirement手順を定義してください。
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/adr/adr-052-autonomy-execution-boundary-classes.md` around lines 107 -
114, 「bounded
lifetime」の記述を、ステータス日2026-07-11から算出した具体的な期限(少なくとも2026-10-11)に置き換え、期限到来時の判定手順を追加してください。判定結果として採用・改訂・却下を明記し、延長する場合の承認条件と新たな期限、継続しない場合のretirement手順も定義してください。
…259 CodeRabbit Major 2件) - 原則5: 自動実行可クラス有効化の前提となる kill-switch / 背圧の契約を表で明文化 (opt-in 既定 OFF / 単一フラグ即時停止 / 未接続時 fail-closed / 停止手順)。 - 試験運用判断基準: bounded lifetime を「目安3か月」から 2026-10-11 の再評価期限 + 採用/改訂/延長/却下の判定手順 + retirement 手順に具体化。 ADR-022 原則5 に従い PR 包含 commit を amend せず child commit として分離。
…wed_bots) (#260) * fix(pr-monitor): CodeRabbit 発イベントで backstop が actor 拒否される不具合を修正 (allowed_bots) WP-09 の GitHub Actions バックストップの本命トリガー (CodeRabbit のレビュー完了 = pull_request_review / walkthrough = issue_comment、actor が coderabbitai[bot]) が、 claude-code-action の非人間 actor 拒否 ("Workflow initiated by non-human actor: coderabbitai") で常に失敗していた (PR #259 の pull_request_review run で実観測)。 #258 のスモークテストが通ったのは actor が人間 (pull_request opened) だったため、 本命トリガーの障害を見逃していた。 - action step に allowed_bots: "coderabbitai[bot]" を追加し当該 bot のみ許可 ("*" 不使用)。 - allowlist した bot は GitHub 権限チェックをバイパスする (公式 docs/security.md) ため、 本 job の安全性は読み取り専用多層防御が唯一の担保になる点をコメントで明記 (ADR-022 原則6)。 - 副次効果: github-actions[bot] は allowlist 外のため自己トリガーが二重に防止される。 * fix(pr-monitor): 監視を CI から分離し PR チェック汚染を解消 (pull_request 削除 + workflow_dispatch) pr-monitor の run が PR の Status Check として現れ、concurrency cancel や bot-actor 失敗が CI 失敗 (赤× / UNSTABLE) に見える問題を解消する (PR #260 の analyze run cancelled で実観測)。原因: check_run はイベントごとに異なる対象 SHA へ発行され、pull_request 起点の run のみ PR head SHA に紐づき PR チェック化する。CodeRabbit が数分でレビューを返すため opened run が review イベントで concurrency cancel され、cancelled が赤× として残る (ほぼ毎 PR で必然)。監視 ≠ CI として役割ベースでトリガーを分離: pull_request(opened/ready) 削除、pull_request_review/issue_comment 維持、workflow_dispatch(input pr_number) 追加、allowed_bots 維持、PR番号解決を 3 箇所で inputs.pr_number 対応。ADR-022 原則6 のトリガー記述を更新。
概要
WP-10(ハーネス改善計画 1-C)。常時稼働化する自律 actor と ADR-028 の実行ゲートの原理的衝突を、事前定義された 2 クラス分類で解消する ADR-052 を起票する。あわせて WP-09(GitHub Actions バックストップ、PR #258 マージ済)の計画書ステータスを「観測中」に更新する。
ADR-052 の骨子
claude/prefix push /claude/ブランチからの draft PR 作成スコープ判断: Rust 分類関数は今回見送り
コード調査の結果、PR 作成 / マージの事前許可は 100% harness(
permissions.ask)側で強制され、Rust に自律実行経路(呼び手)が存在しない。分類関数を今実装しても dead code(YAGNI)になるため見送り。呼び手(イベント駆動バックボーン Phase B / 夜間ループ)着手時に、cli-pr-monitorのgate.rsのis_docs_only_summary/is_docs_only_path(ADR-035 path 基準・fail-closed)を lib 切り出しで再利用実装する方針を ADR に明記した。変更
docs/adr/adr-052-autonomy-execution-boundary-classes.md(新規)CLAUDE.md— ADR 一覧に ADR-052 追加docs/harness-improvement-plan.md— WP-10 を実装済、WP-09 を観測中に更新(GitHub Actions バックストップの本稼働・secrets 登録済・スモークテスト成功を反映)補足
docs/**/*.md、除外パスなし、コードロジック変更なし)。Summary by CodeRabbit