diff --git a/.github/agents/expert-reviewer.md b/.github/agents/expert-reviewer.md index 0a018c38f1a..f376039444e 100644 --- a/.github/agents/expert-reviewer.md +++ b/.github/agents/expert-reviewer.md @@ -662,7 +662,8 @@ Use this to prioritize dimensions based on changed files. - [ ] Concurrency — shared state race ``` - `[x]` = LGTM or NITs only. `[ ]` = MAJOR or BLOCKING. - All `[x]` → event: **APPROVE**. Any BLOCKING → event: **REQUEST_CHANGES**. Otherwise → event: **COMMENT**. + `[x]` = LGTM or NITs only. `[ ]` = BLOCKING. + Any BLOCKING → event: **REQUEST_CHANGES**. Otherwise (including all-clear) → event: **COMMENT**. + **Never use APPROVE** — the agent must not count as a PR approval. All inline comments from step 5 are automatically bundled into this review submission. diff --git a/.github/workflows/shared/review-shared.md b/.github/workflows/shared/review-shared.md index 9fad0950b74..acb36e0f800 100644 --- a/.github/workflows/shared/review-shared.md +++ b/.github/workflows/shared/review-shared.md @@ -35,8 +35,9 @@ Review pull request #${{ github.event.pull_request.number || github.event.issue. 1. Fetch the full diff for the pull request. 2. Call the `expert-reviewer` agent. Make sure to call it as subagent (`task` tool, `agent_type: "general-purpose"`, `model: "claude-opus-4.6"`). And make sure to follow the guidance on subagent calls from within the `expert-reviewer` agent. We expect 2+ levels of agents to be called. -3. Do **not** post comments yourself. The subagent will post its own comments using the available safe-output tools: +3. Do **not** post comments or reviews yourself, except for the fallback in step 4 if the subagent posts nothing. The subagent will post its own comments using the available safe-output tools: - **Inline review comments** on specific diff lines via `create_pull_request_review_comment` - **Design-level concerns** (not tied to a line) via `add_comment` - - **Final review verdict** (APPROVE / COMMENT / REQUEST_CHANGES) via `submit_pull_request_review` -4. If the subagent does not post anything (e.g. no issues found), post a brief approval comment. + - **Final review verdict** (COMMENT or REQUEST_CHANGES) via `submit_pull_request_review` + - **Never use APPROVE** — the agent must not count as a PR approval. Use COMMENT for clean reviews. +4. If the subagent does not post anything (e.g. no issues found), this is the only exception to step 3: post a brief fallback review using `submit_pull_request_review` with event `COMMENT` (not `APPROVE`). Do not use `add_comment` for this fallback.