Uh oh!
There was an error while loading. Please reload this page.
Fix: 自分の Pull Request でレビューを投稿できない不具合を直す(v8.5.2) - #133
Conversation
GitHub は自分の Pull Request への APPROVE と REQUEST_CHANGES をどちらも HTTP 422 で拒む。cross-refactoring のレビュープロンプトは判定を 2 値に限り、 その値をそのまま投稿の event に使っていたため、対象が自分の Pull Request の ときはレビュー担当が必ず投稿に失敗していた。 init が gh api user と Pull Request の作成者を照合し、一致するときは投稿の event だけを COMMENT へ倒す指示をレビュープロンプトへ渡す。判定は本文の 先頭行と結果ファイルへ APPROVE / REQUEST_CHANGES のまま残るため、収束判定は 変わらない。cross-review の intent と posted_as の分離と同じ形になる。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | codex | REQUEST_CHANGES
未完了 state からの再開パスで、今回追加した投稿 event の downgrade 指示を state に補完する必要があります。
Uh oh!
There was an error while loading. Please reload this page.
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | gemini | APPROVE
自身の PR では投稿の event を COMMENT へ倒すことで 422 エラーを回避し、収束判定の要件も満たせています。
init は状態ファイルが残っていて未完了なら、その状態をそのまま使って戻る。 投稿の event を倒す 3 項目は初期化の分岐でしか書いていなかったため、この指示が 入る前の版で作った状態ファイルから再開すると項目が無いまま進む。起動側は `.review_post_note // ""` で読むので指示は空になり、自分の Pull Request で `HTTP 422` を踏み続ける。 3 項目の組み立てを `_apply_post_event` へ集め、初期化と再開の両方から呼ぶ。 値は GitHub 側の照合結果だけで決まるので、再開のたびに入れ直しても判定は 変わらない。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UjJqoXkDs3LhhK4aFhh84p
takemi-ohama
commented
Aug 22, 2026
🔧 レビュー対応 (round 1)コミット: 9d8289a
再判定の根拠
修正の内容3 項目( 再開の経路を踏む回帰テストを 1 件追加しました。 検証
deferred / rejected はありません。 |
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | codex | APPROVE
修正必須の指摘はありません。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | gemini | REQUEST_CHANGES
GitHub Actions 等の bot トークン(GITHUB_TOKEN)を利用した実行環境では gh api user が 403 エラーになります。例外を許容してフォールバックするよう、check=False を指定してください。
※ 修正後は bash scripts/build-runtime-plugins.sh を実行して各ランタイム向けの生成物を更新してください。
Uh oh!
There was an error while loading. Please reload this page.
`init` は自分の Pull Request かどうかを判定するために `gh api user` で ログイン名を読む。この呼び出しが `check=True` だったため、bot トークン (Actions の `GITHUB_TOKEN` など)のように `/user` を読めず `HTTP 403` を 返す環境では、判定より前に init 全体が中断していた。 この値は投稿の event を倒すかどうかにしか使わず、判定側は元から `bool(viewer)` で空を許容している。取得に失敗したら他者の Pull Request と して扱えばよいので `check=False` を指定し、失敗しても進むようにした。 読めない環境を踏む回帰テストを追加した。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UjJqoXkDs3LhhK4aFhh84p
takemi-ohama
commented
Aug 22, 2026
🔧 レビュー対応 (round 2)コミット: e4d89d1
codex は round 2 で APPROVE、指摘はありませんでした。 再判定の根拠
修正の内容
回帰テストを 1 件追加しました。修正前の版でこのテストが 検証
deferred / rejected はありません。 |
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | codex | APPROVE
修正必須の新規指摘はありません。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | gemini | APPROVE
自分のPull Requestに対するレビュー投稿時の HTTP 422 回避策として適切に実装されており、エッジケースの考慮やテストも十分に備わっています。指摘事項はありません。
何のために
/ndf:cross-refactoringのレビュー担当が、対象が自分の Pull Request のときに投稿へ必ず失敗する。5 回目の実機試行(Pull Request #131)で観測した。
レビュープロンプトは判定を
APPROVE/REQUEST_CHANGESの 2 値に限り、その値をそのまま投稿の event に使う。GitHub は自分の Pull Request への両方を拒むため、レビューが成立しない。
cross-reviewは作成者を照合してCOMMENTへ倒す仕組みを持つが、cross-refactoringには無かった。
過去 2 回の試行で「codex がレビュー結果を残さない」と記録していた事象は、これが原因である。
何を
scripts/refactor.pyinitがgh api userと Pull Request の作成者を照合し、is_own_pr/event_downgrade/review_post_noteを状態ファイルへ書くscripts/launch-cli.shRF_POST_EVENT_NOTEとしてレビュープロンプトへ渡すprompts/review.mddocs/03-review-viewpoints.md判定は本文の先頭行と結果ファイルへ
APPROVE/REQUEST_CHANGESのまま残る。収束判定は結果ファイルの判定を見るため、投稿を倒しても評価は変わらない。
cross-reviewのintentと
posted_asの分離と同じ形になる。投稿指示の文面は検証側(
refactor.py)で組み立てて状態ファイル経由で渡す。語彙の受け渡しと同じ形にして、文面の分岐が起動シェルへ散らないようにしている。
Test plan
plugins/ndf-shared/skills/cross-refactoring/tests/test_init.pyに 2 件追加COMMENTへ倒すuv run --with pytest python -m pytest plugins/ndf-shared/skills/cross-refactoring/tests plugins/ndf-shared/skills/cross-review/tests -qが 468 passed(追加前 466)claude plugin validateが marketplace / ndf-claude / playwright-kit-claude とも通るpython3 scripts/check-skill-frontmatter.pyがエラー 0 件 / 警告 0 件残っている課題
5 回目の試行で見つけた残り 2 件はこの Pull Request の対象外。