Review Agent: 検収結果を PR コメントにフォールバック投稿 - #11
Conversation
Review Agent の検収結果を PR に必ず残すため、submitReview(APPROVE/REQUEST_CHANGES) が失敗した場合(自分の PR への review は GitHub 仕様で 422、token に pull_requests:write が無い場合は 403)に、同じ検収本文を通常の PR コメントとして投稿するフォールバックを 追加。approve / reject の両方、tool 経路・server 経路の両方でフォールバックする。
…s review feedback) PR #11 の検収で「フォールバックのユニットテストが無い」と差し戻されたため、 フォールバックの単体テストを追加。さらに dogfood 運用中に発見した2つの重大バグも修正: 1. コメントフォールバック(当初スコープ): formal review が 422/403 で失敗したら 検収本文を通常 PR コメントとして投稿。approve/reject 両方・テスト付き。 2. 判定二重化の解消: LLM の submitReviewComment tool に投稿副作用を持たせると、 tool 時点の判定と最終 JSON の判定が食い違い、最終 reject なのに PR には approve コメントが残る事故が起きた(PR #11 で実際に発生)。tool は副作用なしにし、 PR への投稿は最終 verdict から **サーバが1回だけ** 行う一元化に変更。 3. false-approve の決定的ガード: 「テスト追加」が検収基準にあるのに diff に テストファイルが無い場合、LLM が approve しても **コード側で reject に強制** (enforceDeterministicGuards)。gpt-5.1 が『今回は許容範囲』とテスト欠如を approve した実例を踏まえた恒久対策。金が動く判定の最終決定権はコードが持つ。 review.test.ts: フォールバックtest + ガードtest を追加(計8件)。全33テスト通過。
|
✅ Review passed — Agentic Gig-Flow(formal review を投稿できないため comment として記録) ✅ Review passed by Agentic Gig-FlowQuality score: 92/100 検収基準の判定
| 2 | approve と reject の両方でコメントが投稿される | ✅ | コメントフォールバック処理が このPRをマージすると、1000 JPYC が @Mameta29 に Polygon 経由で自動送金されます (Settlement Agent → JPYC |
💴 JPYC 送金完了 — Settled by Agentic Gig-Flow
|
Closes #10
概要
Review Agent の検収結果を PR に必ず残すためのフォールバックを実装しました。
submitReview(formal な APPROVE / REQUEST_CHANGES)が失敗したとき(自分の PR への review は GitHub 仕様で 422、token に pull_requests:write が無い場合は
403)、同じ検収本文を通常の PR コメントとして投稿します。
検収基準への対応
postReviewOutcomeが両 verdict を処理)変更点
review.ts:postReviewOutcome(event, body)を追加。formal review を試し、失敗時にcreatePrCommentへフォールバック。tool 経路(submitReviewComment)・server 経路(LLM が tool 未呼び出し時)の両方がこれを使う。