Skip to content

feat: 順位 163 の無人実装 (nightly-todo) - #381

Merged
aloekun merged 1 commit into
masterfrom
claude/nightly-163
Aug 10, 2026
Merged

feat: 順位 163 の無人実装 (nightly-todo)#381
aloekun merged 1 commit into
masterfrom
claude/nightly-163

Conversation

@nightly-todo-aloekun

@nightly-todo-aloekun nightly-todo-aloekun Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

台帳 (docs/claude-code-web-tasks.md) の無人可タスク 順位 163
夜間ループ (nightly-todo workflow) が無人で実装した PR です。

  • 内容: cross_ref validator に percent-encode / GFM heading slug / relative path normalize の edge case fixture test 追加
  • 事前フィルタ: 夜間 workflow が ubuntu 上で cargo test --workspace +
    cargo clippy --workspace --all-targets -- -D warnings を回して green を確認済み
    (agent の自己申告ではなく workflow が回し直した結果)。これはコストフィルタで
    品質の保証ではありません — 単一 OS で --ignored も hooks smoke も含みません
  • 品質の保証: 本 PR に紐づく ci.yml (windows-latest + ubuntu-latest) のチェックを見てください
  • ゲート: cli-autonomy-gate --operation autonomous-pr (kill-switch + 背圧) を通過

マージ判断は人間が行います (ADR-052 の commitment 点)。CI が緑で内容が台帳の
意図に沿っていればマージしてください。ずれている場合はクローズを —
採用率は WP-18 の受け入れ基準の測定対象です。

run: https://github.com/aloekun/claude-code-hook-test/actions/runs/31373957196

Summary by CodeRabbit

  • テスト
    • 相対リンクの検証ケースを拡充しました。
    • 多段階の親ディレクトリ参照、./ 付きリンク、壊れたリンクを確認できるようになりました。
    • パーセントエンコードされた文字やアンカーを含むリンクの扱いを明確化しました。

@aloekun

aloekun commented Aug 10, 2026

Copy link
Copy Markdown
Owner

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Aug 10, 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 Plus

Run ID: 4d4158eb-ddc8-4989-a52f-c819f4af8715

📥 Commits

Reviewing files that changed from the base of the PR and between e1c35e7 and 89c7bc5.

📒 Files selected for processing (1)
  • src/cli-docs-lint/src/cross_ref.rs

📝 Walkthrough

Walkthrough

相対リンク解決の境界条件を固定するテストを追加しました。percent-encoding、アンカー、親ディレクトリ、./ 接頭辞付きリンクを検証します。

Changes

相対リンク検証

Layer / File(s) Summary
相対リンク解決の境界条件
src/cli-docs-lint/src/cross_ref.rs
percent-encoded ファイル名をデコードせずに解決します。エンコード済み # をアンカー区切りとして扱いません。アンカー先の見出しは検証しません。親ディレクトリ、壊れたリンク、./ 接頭辞付きリンクを検証します。

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

🚥 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 タイトルは自動実装タスクという実際の変更背景を示しますが、主な変更であるcross_refの境界条件テストを直接説明していません。
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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/nightly-163

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: rust (ubuntu-latest) pending / rust (windows-latest) pending / request pass / CodeRabbit pending (レビュー処理中)
  • レビュー状況: CodeRabbit — オーナーの @coderabbitai review コマンドを受けて再レビュー中 (Action performed の acknowledgment のみ、findings 未着)。人間レビューなし。
  • Verdict: approved (現時点で applicable な findings 0件のため)

Applicable Findings (Critical / High / Major)

該当なし

Applicable Findings (Medium 以下)

該当なし

Filtered (not applicable)

該当なし

次のアクション

  • CodeRabbit のレビューが完了 (findings 投稿 or 完了コメント) してから再度分析すること。現時点では「処理中」の acknowledgment のみで実質的な指摘は無い。
  • diff は src/cli-docs-lint/src/cross_ref.rs の単一ファイル、+94/-0 行で全てテスト追加。cross-reference リンクチェッカーの既存の未対応挙動 (percent-decode 非実施、GFM heading anchor 未検証、multi-level 相対パス解決、./ prefix 解決) を固定する fixture テスト 7 件のみで、プロダクションロジックの変更はなし。
  • rust (ubuntu-latest) / rust (windows-latest) の CI 完走を待ち、成功を確認した上でマージ判断すること (現状 mergeStateStatus: BLOCKED)。

aloekun added a commit that referenced this pull request Aug 10, 2026
2026-08-10 の実測で、夜間 PR にレビューが付かない原因が判明した。ADR-072 決定 15 は
「draft をやめれば auto_review に乗る」を前提にしていたが、これは誤りで、実際の
ブロック要因は PR の author が bot であることだった。draft 廃止後も #379 は
draft=false のまま 10 時間 26 分 無反応だった。

## ADR-019: CodeRabbit の挙動の真実源を置く

「CodeRabbit がいつレビューするか」の真実源を ADR-019 に集約した。CodeRabbit は
bot 作成 PR を自動スキップする組み込み挙動を持ち (公式 "Auto Review Skipped —
Bot user detected")、設定では制御できない。6 経路すべての実測表を残した:

- bot 作成 PR の auto_review → skip
- bot が @coderabbitai review を投稿 → 無視
- 人間が投稿 → 動く (4〜5 秒)
- CodeRabbit を reviewer に要求 → HTTP 422 (App は collaborator でない)
- PR を reopen → 無効
- 設定で bot を許可 → スキーマに該当キーが無い (全数確認)

ignore_usernames は除外専用で allowlist 方向は無く、本リポジトリでは未設定なので
原因ではない。skip 通知の有無は判断材料にならない (本リポジトリでは通知すら出ず、
プラン差か実装差かは未解明) ことも明記した。

## ADR-072: 決定 15 の前提訂正と決定 16 の新設

決定 15 は維持する。レビューが付かない理由の説明は誤っていたが、commitment 点を
マージ 1 点へ集約する判断は ADR-052 原則 2 の改訂として独立に成立している。
教訓として、症状と目に付いた差分 (draft) を因果で結んだこと、drafts: false という
もっともらしい説明が実在したことが誤診を後押ししたこと、対処後に同じ症状が続くかを
確かめる前に「解決した」と記録したことを残した。

決定 16 (新設): レビュー要求だけを人間 identity で出す。PR の作成者は bot のまま
維持し、変えるのは「誰がレビューを頼むか」だけ。PAT は Pull requests: write のみで
push もマージもできないため、決定 8 が却下した「push に使う PAT」には当たらない。

nightly-todo.yml の中に置かない理由を信頼境界として記録した。あの job は未信頼 agent が
実装を書き cargo test がそれを実行する job で、スモーク未解決の「cargo サブプロセスへの
トークン露出」の対象でもある。そこに人間資格情報を置かない。決定 8 § 帰結の
「資格情報を足すと、その step で何が実行されうるかを洗い直す」の 2 例目にあたる。

pull_request_target の攻撃面 (fork PR から secrets へ到達) と封じ方、kill-switch を
2 面とも見る実装、投稿しただけで成功としない検証も記録した。決定 11 の失敗の本質は
助言層を fail-open にしたことではなく、効果の観測を用意しなかったことである。

実走検証 (2026-08-10): PR 作成から CodeRabbit 反応まで 15 秒、完全自動。検証 step は
実際に働いた (1 回目は反応なし、2 回目で検出)。

## スモーク未確定 (a)(b) の位置づけが変わった

Phase B 本体の到達と coderabbitai[bot] allowlist の要否は、いずれも「CodeRabbit が
夜間 PR にコメントすること」を起動契機とするため、レビューが付かない間は観測機会
そのものが無かった。決定 16 でレビューが毎回付くようになり、未確定の理由が
「機構が無い」から「事象待ち」へ変わった。

## 採用率測定の開始起点が確定

2026-08-10。1 件目は #381。中間確認 2026-08-24、判定期限 2026-11-06。

CODERABBIT_TRIGGER_PAT の実体 (権限・対象・期限・失効時の倒れ方) を ADR-072 §
外部設定の実体へ記録した (ADR-051 決定 1)。秘密値そのものは記録しない。
@aloekun
aloekun merged commit 02bb385 into master Aug 10, 2026
4 checks passed
@aloekun
aloekun deleted the claude/nightly-163 branch August 10, 2026 11:29
aloekun added a commit that referenced this pull request Aug 10, 2026
あわせて post-merge feedback (#376/#377/#380/#381/#382) の採用分 10 件を順位 402-411 へ
登録した。2026-08-10 に採用候補を系統別へ分類し、ユーザーが採否を決定したもの。

採用: 系統 A (観測の完全性) 3 件 / 系統 B (重複実装の予防) 3 件 /
      系統 C (shell・config パースの安全性) 3 件
却下: 系統 D (workflow セキュリティ標準化) / 系統 E (PAT 失効監視) — 様子見
形を変えて採用: 系統 F — 「CLAUDE.md に rustfmt 非適用の方針を書く」ではなく
      「cargo fmt を PreToolUse でブロックする」(順位 411)

系統 F の変更理由 (ユーザー判断): 規約は CLAUDE.md に書いた時点で毎セッション読まれ
コンテキストを圧迫するが、PreToolUse hook は発火するまでコストがゼロで、ブロックと
同時に正しいコマンドをフィードバックできる。読み手は規約を覚えていなくても正しい経路へ
到達する。ADR-042 の mechanizable 判定を満たすため機構側が正しい。

**この非対称は現行 ADR-042 に無い**。同 ADR の判断基準は「機械判定できるか」「投資対効果」
が中心で、「規約は常時コンテキストを消費し hook は発火時のみ」という観点が明示されて
いない。ルール追加を検討するたびに効く一般則なので、順位 411 の作業範囲に ADR-042 への
追記を含めた。
aloekun added a commit that referenced this pull request Aug 10, 2026
あわせて post-merge feedback (#376/#377/#380/#381/#382) の採用分 10 件を順位 402-411 へ
登録した。2026-08-10 に採用候補を系統別へ分類し、ユーザーが採否を決定したもの。

採用: 系統 A (観測の完全性) 3 件 / 系統 B (重複実装の予防) 3 件 /
      系統 C (shell・config パースの安全性) 3 件
却下: 系統 D (workflow セキュリティ標準化) / 系統 E (PAT 失効監視) — 様子見
形を変えて採用: 系統 F — 「CLAUDE.md に rustfmt 非適用の方針を書く」ではなく
      「cargo fmt を PreToolUse でブロックする」(順位 411)

系統 F の変更理由 (ユーザー判断): 規約は CLAUDE.md に書いた時点で毎セッション読まれ
コンテキストを圧迫するが、PreToolUse hook は発火するまでコストがゼロで、ブロックと
同時に正しいコマンドをフィードバックできる。読み手は規約を覚えていなくても正しい経路へ
到達する。ADR-042 の mechanizable 判定を満たすため機構側が正しい。

**この非対称は現行 ADR-042 に無い**。同 ADR の判断基準は「機械判定できるか」「投資対効果」
が中心で、「規約は常時コンテキストを消費し hook は発火時のみ」という観点が明示されて
いない。ルール追加を検討するたびに効く一般則なので、順位 411 の作業範囲に ADR-042 への
追記を含めた。

## 計画書 (harness-improvement-plan.md) の WP-18 節を再編成

**WP-18 で生んだ問題と、WP-18 の運用で日常的に踏む問題を WP-18 の外へ押し出さない**
(2026-08-10 ユーザー方針) ため、残作業を 3 区分へ分けて完了条件を明示した。

従来は観測と派生タスクが 1 表に混在し、WP-18 の完了に何が要るのかが読み取れなかった。

- (1) 観測待ち — 機構は整備済みで事象か期限を待つもの
- (2) 運用問題の対処 — WP-18 が生んだ (基準 1) / WP-18 の運用で踏む潜在バグ (基準 2)。
      順位 397 / 398-400 / 401 / 410。**完了条件に含める**
- (3) WP-18 外の派生 — 順位 396 / 411 / 402-409 等。完了条件に含めない

(3) を完了条件から外すのは、§ 7 の退役条件が「全 WP が完了または見送り」である以上、
リポジトリ全体の一般則を WP-18 に紐づけると計画書が永久に退役できなくなるため。
ただし**優先度が低いという意味ではない** — 順位 396 (flaky テスト) と 411 (cargo fmt
ブロック) はいずれも高優先度で、WP-18 とは独立に早期着手する旨を明記した。

あわせて古い記述を実測に合わせた:

- 見出しの「実装・スモークは 2026-08-08 までにほぼ完了」→ 決定 16 という新規実装が
  2026-08-10 に入ったため「観測中 + 運用問題の対処中」へ
- 「前 2 者は順位 394 後の run で判定できる」→ 順位 394 は完了済みで実際の前提は決定 16。
  同一ファイル内の自己矛盾だった
- WP-17 残課題節にも同じ「順位 394 後の run」が残っていたため同期。あわせて
  「代替解は draft 廃止」が誤りだったことも記録した

## todo 側

- 順位 396 を Tier 2 → **Tier 1** へ格上げ (ユーザー判断)。単発の Severity では Tier 2
  相当だが、flaky テストは「また flake だろう」という読み替えを生み実バグの見落とし
  経路になるため。両 OS matrix (ADR-065) の信号品質を守る意味で早期に潰す
- 順位 411 に早期着手の根拠を追記 (cargo fmt は反射的に実行されやすい)
- **却下を negative result として記録**: 系統 D / E は様子見。trunk 保護の drift 対処
  2 件は却下 (予防側は順位 405 で押さえた / 共有 lib 化は network isolation 設計と
  抵触しうる)。**再採用条件は「同型の drift が今後も再発する場合」**と明記した
aloekun added a commit that referenced this pull request Aug 10, 2026
あわせて post-merge feedback (#376/#377/#380/#381/#382) の採用分 10 件を順位 402-411 へ
登録した。2026-08-10 に採用候補を系統別へ分類し、ユーザーが採否を決定したもの。

採用: 系統 A (観測の完全性) 3 件 / 系統 B (重複実装の予防) 3 件 /
      系統 C (shell・config パースの安全性) 3 件
却下: 系統 D (workflow セキュリティ標準化) / 系統 E (PAT 失効監視) — 様子見
形を変えて採用: 系統 F — 「CLAUDE.md に rustfmt 非適用の方針を書く」ではなく
      「cargo fmt を PreToolUse でブロックする」(順位 411)

系統 F の変更理由 (ユーザー判断): 規約は CLAUDE.md に書いた時点で毎セッション読まれ
コンテキストを圧迫するが、PreToolUse hook は発火するまでコストがゼロで、ブロックと
同時に正しいコマンドをフィードバックできる。読み手は規約を覚えていなくても正しい経路へ
到達する。ADR-042 の mechanizable 判定を満たすため機構側が正しい。

**この非対称は現行 ADR-042 に無い**。同 ADR の判断基準は「機械判定できるか」「投資対効果」
が中心で、「規約は常時コンテキストを消費し hook は発火時のみ」という観点が明示されて
いない。ルール追加を検討するたびに効く一般則なので、順位 411 の作業範囲に ADR-042 への
追記を含めた。

## 計画書 (harness-improvement-plan.md) の WP-18 節を再編成

**WP-18 で生んだ問題と、WP-18 の運用で日常的に踏む問題を WP-18 の外へ押し出さない**
(2026-08-10 ユーザー方針) ため、残作業を 3 区分へ分けて完了条件を明示した。

従来は観測と派生タスクが 1 表に混在し、WP-18 の完了に何が要るのかが読み取れなかった。

- (1) 観測待ち — 機構は整備済みで事象か期限を待つもの
- (2) 運用問題の対処 — WP-18 が生んだ (基準 1) / WP-18 の運用で踏む潜在バグ (基準 2)。
      順位 397 / 398-400 / 401 / 410。**完了条件に含める**
- (3) WP-18 外の派生 — 順位 396 / 411 / 402-409 等。完了条件に含めない

(3) を完了条件から外すのは、§ 7 の退役条件が「全 WP が完了または見送り」である以上、
リポジトリ全体の一般則を WP-18 に紐づけると計画書が永久に退役できなくなるため。
ただし**優先度が低いという意味ではない** — 順位 396 (flaky テスト) と 411 (cargo fmt
ブロック) はいずれも高優先度で、WP-18 とは独立に早期着手する旨を明記した。

あわせて古い記述を実測に合わせた:

- 見出しの「実装・スモークは 2026-08-08 までにほぼ完了」→ 決定 16 という新規実装が
  2026-08-10 に入ったため「観測中 + 運用問題の対処中」へ
- 「前 2 者は順位 394 後の run で判定できる」→ 順位 394 は完了済みで実際の前提は決定 16。
  同一ファイル内の自己矛盾だった
- WP-17 残課題節にも同じ「順位 394 後の run」が残っていたため同期。あわせて
  「代替解は draft 廃止」が誤りだったことも記録した

## todo 側

- 順位 396 を Tier 2 → **Tier 1** へ格上げ (ユーザー判断)。単発の Severity では Tier 2
  相当だが、flaky テストは「また flake だろう」という読み替えを生み実バグの見落とし
  経路になるため。両 OS matrix (ADR-065) の信号品質を守る意味で早期に潰す
- 順位 411 に早期着手の根拠を追記 (cargo fmt は反射的に実行されやすい)
- **却下を negative result として記録**: 系統 D / E は様子見。trunk 保護の drift 対処
  2 件は却下 (予防側は順位 405 で押さえた / 共有 lib 化は network isolation 設計と
  抵触しうる)。**再採用条件は「同型の drift が今後も再発する場合」**と明記した

--- CodeRabbit レビュー対応 (#384、5 件すべて修正) ---

1. WP-18 完了条件でスモーク未確定の扱いが不明確 (Major)
   (c) だけを非必須と書き (a)(b) の扱いが無かった。(a)(b) は事象待ちで**自力で発生させ
   られない**ため、条件に含めると WP を閉じられない。3 件すべてを非ブロッカーとし、
   理由と移管先・期限を表で明記した。(a)(b) は 2026-11-06 時点で未観測なら
   「機会が来なかった」として見送り ADR-067 の bounded lifetime へ委ねる。

2. 順位 411 の要約が詳細計画と不一致 (Minor)
   summary は「正しいコマンドを提示」だが、cargo fmt に**代替コマンドは存在しない**
   (手で直すのが正)。「正しい対処を提示」へ変更し、詳細側にもその旨を明記した。

3. 順位 398 の完了判定を対象 PR に束縛すべき (Major)
   「report 生成を完了根拠にする」案が不十分だった。copy_feedback_report は
   find_latest_run_dir で最新 run を選ぶだけで **pr_number と照合していない**ため、
   別 PR の report を現在の PR の {pr_number}.md へコピーし得る。また takt の終了は
   timeout や失敗でも起こるので終了した事実は report 完成を証明しない。実装を読んで
   裏付けたうえで、完了判定には「成功終了」と「対象 PR のものであること」の両方が
   要る旨を追記した。本セッションで実際に context.json が別 PR を指していた事象とも
   同型である。

4. 旧語彙 lint の extensions から yaml が漏れている (Minor)
   拡張子は eq_ignore_ascii_case の文字列一致で **yml と yaml は別物**。本リポジトリは
   .github/workflows/*.yml と .coderabbit.yaml の両方を持つため、yaml を落とすと
   後者が未検査になる。両方を対象に加え、理由も併記した。

5. cargo fmt の検出対象が未定義 (Major)
   完全一致だけでは cargo fmt --all / cargo +stable fmt / rustup run stable cargo fmt /
   cargo-fmt が素通りする。作業計画の先頭に「検出範囲を先に決める」を追加し、完了基準に
   「完全一致に限定する場合は素通りする形態を明記する」ことを求める形にした。

いずれも実物 (takt.rs の実装 / linter の拡張子判定 / リポジトリ内の .yml と .yaml の
共存) を確認したうえで妥当と判断している。
aloekun added a commit that referenced this pull request Aug 10, 2026
あわせて post-merge feedback (#376/#377/#380/#381/#382) の採用分 10 件を順位 402-411 へ
登録した。2026-08-10 に採用候補を系統別へ分類し、ユーザーが採否を決定したもの。

採用: 系統 A (観測の完全性) 3 件 / 系統 B (重複実装の予防) 3 件 /
      系統 C (shell・config パースの安全性) 3 件
却下: 系統 D (workflow セキュリティ標準化) / 系統 E (PAT 失効監視) — 様子見
形を変えて採用: 系統 F — 「CLAUDE.md に rustfmt 非適用の方針を書く」ではなく
      「cargo fmt を PreToolUse でブロックする」(順位 411)

系統 F の変更理由 (ユーザー判断): 規約は CLAUDE.md に書いた時点で毎セッション読まれ
コンテキストを圧迫するが、PreToolUse hook は発火するまでコストがゼロで、ブロックと
同時に正しいコマンドをフィードバックできる。読み手は規約を覚えていなくても正しい経路へ
到達する。ADR-042 の mechanizable 判定を満たすため機構側が正しい。

**この非対称は現行 ADR-042 に無い**。同 ADR の判断基準は「機械判定できるか」「投資対効果」
が中心で、「規約は常時コンテキストを消費し hook は発火時のみ」という観点が明示されて
いない。ルール追加を検討するたびに効く一般則なので、順位 411 の作業範囲に ADR-042 への
追記を含めた。

## 計画書 (harness-improvement-plan.md) の WP-18 節を再編成

**WP-18 で生んだ問題と、WP-18 の運用で日常的に踏む問題を WP-18 の外へ押し出さない**
(2026-08-10 ユーザー方針) ため、残作業を 3 区分へ分けて完了条件を明示した。

従来は観測と派生タスクが 1 表に混在し、WP-18 の完了に何が要るのかが読み取れなかった。

- (1) 観測待ち — 機構は整備済みで事象か期限を待つもの
- (2) 運用問題の対処 — WP-18 が生んだ (基準 1) / WP-18 の運用で踏む潜在バグ (基準 2)。
      順位 397 / 398-400 / 401 / 410。**完了条件に含める**
- (3) WP-18 外の派生 — 順位 396 / 411 / 402-409 等。完了条件に含めない

(3) を完了条件から外すのは、§ 7 の退役条件が「全 WP が完了または見送り」である以上、
リポジトリ全体の一般則を WP-18 に紐づけると計画書が永久に退役できなくなるため。
ただし**優先度が低いという意味ではない** — 順位 396 (flaky テスト) と 411 (cargo fmt
ブロック) はいずれも高優先度で、WP-18 とは独立に早期着手する旨を明記した。

あわせて古い記述を実測に合わせた:

- 見出しの「実装・スモークは 2026-08-08 までにほぼ完了」→ 決定 16 という新規実装が
  2026-08-10 に入ったため「観測中 + 運用問題の対処中」へ
- 「前 2 者は順位 394 後の run で判定できる」→ 順位 394 は完了済みで実際の前提は決定 16。
  同一ファイル内の自己矛盾だった
- WP-17 残課題節にも同じ「順位 394 後の run」が残っていたため同期。あわせて
  「代替解は draft 廃止」が誤りだったことも記録した

## todo 側

- 順位 396 を Tier 2 → **Tier 1** へ格上げ (ユーザー判断)。単発の Severity では Tier 2
  相当だが、flaky テストは「また flake だろう」という読み替えを生み実バグの見落とし
  経路になるため。両 OS matrix (ADR-065) の信号品質を守る意味で早期に潰す
- 順位 411 に早期着手の根拠を追記 (cargo fmt は反射的に実行されやすい)
- **却下を negative result として記録**: 系統 D / E は様子見。trunk 保護の drift 対処
  2 件は却下 (予防側は順位 405 で押さえた / 共有 lib 化は network isolation 設計と
  抵触しうる)。**再採用条件は「同型の drift が今後も再発する場合」**と明記した

--- CodeRabbit レビュー対応 (#384、5 件すべて修正) ---

1. WP-18 完了条件でスモーク未確定の扱いが不明確 (Major)
   (c) だけを非必須と書き (a)(b) の扱いが無かった。(a)(b) は事象待ちで**自力で発生させ
   られない**ため、条件に含めると WP を閉じられない。3 件すべてを非ブロッカーとし、
   理由と移管先・期限を表で明記した。(a)(b) は 2026-11-06 時点で未観測なら
   「機会が来なかった」として見送り ADR-067 の bounded lifetime へ委ねる。

2. 順位 411 の要約が詳細計画と不一致 (Minor)
   summary は「正しいコマンドを提示」だが、cargo fmt に**代替コマンドは存在しない**
   (手で直すのが正)。「正しい対処を提示」へ変更し、詳細側にもその旨を明記した。

3. 順位 398 の完了判定を対象 PR に束縛すべき (Major)
   「report 生成を完了根拠にする」案が不十分だった。copy_feedback_report は
   find_latest_run_dir で最新 run を選ぶだけで **pr_number と照合していない**ため、
   別 PR の report を現在の PR の {pr_number}.md へコピーし得る。また takt の終了は
   timeout や失敗でも起こるので終了した事実は report 完成を証明しない。実装を読んで
   裏付けたうえで、完了判定には「成功終了」と「対象 PR のものであること」の両方が
   要る旨を追記した。本セッションで実際に context.json が別 PR を指していた事象とも
   同型である。

4. 旧語彙 lint の extensions から yaml が漏れている (Minor)
   拡張子は eq_ignore_ascii_case の文字列一致で **yml と yaml は別物**。本リポジトリは
   .github/workflows/*.yml と .coderabbit.yaml の両方を持つため、yaml を落とすと
   後者が未検査になる。両方を対象に加え、理由も併記した。

5. cargo fmt の検出対象が未定義 (Major)
   完全一致だけでは cargo fmt --all / cargo +stable fmt / rustup run stable cargo fmt /
   cargo-fmt が素通りする。作業計画の先頭に「検出範囲を先に決める」を追加し、完了基準に
   「完全一致に限定する場合は素通りする形態を明記する」ことを求める形にした。

いずれも実物 (takt.rs の実装 / linter の拡張子判定 / リポジトリ内の .yml と .yaml の
共存) を確認したうえで妥当と判断している。
aloekun added a commit that referenced this pull request Aug 10, 2026
bot が作った PR を人間がマージする経路 (ADR-072 夜間ループ) では PR の head が
remote 専用 bookmark しか持たず、ローカル bookmark だけを見ていた PR 検出が空振り
していた (#381 のマージで実測)。gh pr merge は ADR-013 の guard でブロックされる
ため、ブロックされる経路と動かない経路しかない状態になっていた。

- PR 検出をローカル -> リモート追跡 bookmark の 2 段にする (順位 397 対処案 a)
- 失敗時に --pr / bookmark 確認 / jj edit の実行可能な手順を出す (対処案 b)
- bookmark 非依存の --pr <番号> を追加する (対処案 c)
- lib-jj-helpers を bookmarks.rs / workspace.rs へ分割 (800 行ガイドライン)

ローカルを全 revset 走査してからリモートへ移る二段構成にしてあり、ローカル
bookmark が見つかる状況では従来と結果が一致するため、共有ヘルパーを使う
push-runner / pr-monitor への回帰は起きない。

順位 397 / ADR-013 / ADR-024
aloekun added a commit that referenced this pull request Aug 10, 2026
bot が作った PR を人間がマージする経路 (ADR-072 夜間ループ) では PR の head が
remote 専用 bookmark しか持たず、ローカル bookmark だけを見ていた PR 検出が空振り
していた (#381 のマージで実測)。gh pr merge は ADR-013 の guard でブロックされる
ため、ブロックされる経路と動かない経路しかない状態になっていた。

- PR 検出をローカル -> リモート追跡 bookmark の 2 段にする (順位 397 対処案 a)
- 失敗時に --pr / bookmark 確認 / jj edit の実行可能な手順を出す (対処案 b)
- bookmark 非依存の --pr <番号> を追加する (対処案 c)
- lib-jj-helpers を bookmarks.rs / workspace.rs へ分割 (800 行ガイドライン)

ローカルを全 revset 走査してからリモートへ移る二段構成にしてあり、ローカル
bookmark が見つかる状況では従来と結果が一致するため、共有ヘルパーを使う
push-runner / pr-monitor への回帰は起きない。

順位 397 / ADR-013 / ADR-024
aloekun added a commit that referenced this pull request Aug 10, 2026
bot が作った PR を人間がマージする経路 (ADR-072 夜間ループ) では PR の head が
remote 専用 bookmark しか持たず、ローカル bookmark だけを見ていた PR 検出が空振り
していた (#381 のマージで実測)。gh pr merge は ADR-013 の guard でブロックされる
ため、ブロックされる経路と動かない経路しかない状態になっていた。

- PR 検出をローカル -> リモート追跡 bookmark の 2 段にする (順位 397 対処案 a)
- 失敗時に --pr / bookmark 確認 / jj edit の実行可能な手順を出す (対処案 b)
- bookmark 非依存の --pr <番号> を追加する (対処案 c)
- lib-jj-helpers を bookmarks.rs / workspace.rs へ分割 (800 行ガイドライン)

ローカルを全 revset 走査してからリモートへ移る二段構成にしてあり、ローカル
bookmark が見つかる状況では従来と結果が一致するため、共有ヘルパーを使う
push-runner / pr-monitor への回帰は起きない。

順位 397 / ADR-013 / ADR-024
aloekun added a commit that referenced this pull request Aug 10, 2026
bot が作った PR を人間がマージする経路 (ADR-072 夜間ループ) では PR の head が
remote 専用 bookmark しか持たず、ローカル bookmark だけを見ていた PR 検出が空振り
していた (#381 のマージで実測)。gh pr merge は ADR-013 の guard でブロックされる
ため、ブロックされる経路と動かない経路しかない状態になっていた。

- PR 検出をローカル -> リモート追跡 bookmark の 2 段にする (順位 397 対処案 a)
- 失敗時に --pr / bookmark 確認 / jj edit の実行可能な手順を出す (対処案 b)
- bookmark 非依存の --pr <番号> を追加する (対処案 c)
- lib-jj-helpers を bookmarks.rs / workspace.rs へ分割 (800 行ガイドライン)

ローカルを全 revset 走査してからリモートへ移る二段構成にしてあり、ローカル
bookmark が見つかる状況では従来と結果が一致するため、共有ヘルパーを使う
push-runner / pr-monitor への回帰は起きない。

順位 397 / ADR-013 / ADR-024
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