docs: require resolved PR review threads - #7310
Conversation
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated path requires human/CODEOWNERS review.
This is a documentation/process-only PR touching .agents/playbook.md (+52/-5) and CLAUDE.md (+9/-0), adding a PR-completion gate requiring every review thread be resolved. The reviewer found no Critical/High/Medium findings — the diff is mechanically clean.
However, .agents/playbook.md matches the gated-path glob .agents/** (gated_paths: true), and review_decision is REVIEW_REQUIRED, not APPROVED. Per decision rule row 2, this hard, path-based approval gate is not satisfied and the outcome MUST be escalate.
Escalation reasons:
.agents/playbook.md(modified) is under the.agents/**hard approval gate; human/CODEOWNERS review is required before merge (review_decision is REVIEW_REQUIRED, not APPROVED).
Once a human/CODEOWNERS approval lands, this clean diff can fall through to approval.
Why human review
- .agents/playbook.md (modified) is under the .agents/** hard approval gate; review_decision is REVIEW_REQUIRED, not APPROVED — human/CODEOWNERS review required.
- This PR touches a path under a hard, non-overridable approval gate (.agents/playbook.md (modified) matches
.agents/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
fa8aeaf to
7c61364
Compare
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated path requires human/CODEOWNERS approval.
The reviewer found no findings at Medium or above: the diff is a governance-class prose change (stricter PR Preparation Checklist in .agents/playbook.md and a new PR Completion Gate in CLAUDE.md), with a fail-closed bash validation script and correctly typed, paginated GraphQL queries. No wire/schema/dist/oneOf changes.
However, .agents/playbook.md (modified) matches .agents/**, a hard, non-overridable approval gate (gated_paths: true), and review_decision is REVIEW_REQUIRED, not APPROVED. Per decision-table row 2, the gate is not satisfied and the outcome must be escalate regardless of how clean the diff is. This is consistent with the prior escalate decision.
Escalation reasons
.agents/playbook.md(modified) is under the.agents/**hard approval gate; human/CODEOWNERS review required before merge. The gate lifts only whenreview_decisionbecomesAPPROVED.
Why human review
- .agents/playbook.md (modified) matches the .agents/** hard approval gate (gated_paths: true) and review_decision is REVIEW_REQUIRED, not APPROVED — human/CODEOWNERS approval required before this PR can merge.
- This PR touches a path under a hard, non-overridable approval gate (.agents/playbook.md (modified) matches
.agents/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
8d5743b to
15f3c6f
Compare
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — hard approval gate on .agents/** not satisfied.
This PR modifies .agents/playbook.md, which matches the deterministic hard approval gate (gated_paths: true), and the current GitHub review decision is REVIEW_REQUIRED, not APPROVED. Per decision rule row 2, the outcome must be escalate until a human/CODEOWNERS approval is recorded.
The reviewer found no critical/high/medium code findings — the diff is mechanically clean (a hardened 9-step PR Preparation Checklist plus a CLAUDE.md pointer stanza, no protocol/schema/changeset/dist surface). Absent any blocking finding, this is purely the path-based gate holding.
Escalation reasons
.agents/playbook.md(modified) is under a hard, non-overridable approval gate (.agents/**), andreview_decisionisREVIEW_REQUIRED, notAPPROVED. Human/CODEOWNERS approval is required before merge.
The gate will lift automatically once a human/CODEOWNERS approval is recorded; the diff otherwise carries no actionable findings.
Why human review
- .agents/playbook.md (modified) matches the .agents/** hard approval gate (gated_paths: true) and review_decision is REVIEW_REQUIRED, not APPROVED — human/CODEOWNERS approval required before merge.
- This PR touches a path under a hard, non-overridable approval gate (.agents/playbook.md (modified) matches
.agents/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
15f3c6f to
e0b7a82
Compare
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated path requires human/CODEOWNERS approval.
This PR modifies .agents/playbook.md (PR Preparation Checklist rewrite) and CLAUDE.md (PR Completion Gate pointer). The reviewer found no critical/high/medium findings — the delta is clean (cross-references, embedded fail-closed bash verification block, and GraphQL pagination prose all check out; no schema/docs/dist/changeset surface touched).
However, .agents/playbook.md matches the .agents/** hard approval gate (gated_paths: true) and the current review_decision is REVIEW_REQUIRED, not APPROVED. Per decision-table row 2, this PR cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
Escalation reasons
.agents/playbook.md(modified) is under the.agents/**hard approval gate andreview_decisionisREVIEW_REQUIRED— human/CODEOWNERS approval required before merge.
This holds the prior escalate. The gate lifts the moment review_decision becomes APPROVED, at which point a clean diff like this one would fall through to approve.
Why human review
- .agents/playbook.md (modified) matches the .agents/** hard approval gate (gated_paths: true) and review_decision is REVIEW_REQUIRED, not APPROVED — human/CODEOWNERS approval is required before this PR can merge.
- This PR touches a path under a hard, non-overridable approval gate (.agents/playbook.md (modified) matches
.agents/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
e0b7a82 to
d06eeaf
Compare
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — hard approval gate on .agents/** not yet satisfied.
This PR rewrites the PR Preparation Checklist in .agents/playbook.md and adds a matching PR Completion Gate pointer in CLAUDE.md. The reviewer traced the EXPECTED_PR_HEAD verification bash, pagination loops, and changeset scope and found no Critical/High/Medium code-correctness findings — a clean diff.
However, .agents/playbook.md (modified) matches the .agents/** hard, non-overridable approval gate (gated_paths: true), and review_decision is REVIEW_REQUIRED, not APPROVED. Per decision rule row 2, this must escalate until a human/CODEOWNERS approval is recorded. Prior decision was also escalate for the same gated-path reason.
Escalation reasons
.agents/playbook.md(modified) is under the.agents/**hard approval gate and the current GitHub review decision isREVIEW_REQUIRED, notAPPROVED. Human/CODEOWNERS approval is required before this PR can merge — the gate lifts only when the review decision becomesAPPROVED, regardless of how clean the diff is.
Why human review
- .agents/playbook.md (modified) matches the .agents/** hard approval gate (gated_paths: true) and review_decision is REVIEW_REQUIRED, not APPROVED — human/CODEOWNERS approval is required before this PR can merge.
- This PR touches a path under a hard, non-overridable approval gate (.agents/playbook.md (modified) matches
.agents/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
d06eeaf to
6655c69
Compare
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — hard approval gate on .agents/** not yet satisfied.
The reviewer reported a clean pass with no Critical/High/Medium findings — the delta is two process/prompt docs (.agents/playbook.md +140/−5 rewriting the PR-prep checklist with a defensive bash script, and CLAUDE.md +9 adding a pointer). No protocol surface (schema, docs/reference, dist, task defs) is touched, so no changeset, oneOf, immutability, or 3.1.x rules apply.
However, gated_paths: true because .agents/playbook.md (modified) matches the .agents/** hard approval gate, and review_decision is REVIEW_REQUIRED, not APPROVED. Per decision-table row 2, this PR cannot be auto-approved until a human/CODEOWNERS approval is recorded. This is the same hard gate that produced the prior escalate; nothing has changed to lift it.
Escalation reasons
.agents/playbook.md(modified) matches the.agents/**hard approval gate (gated_paths: true) andreview_decisionisREVIEW_REQUIRED, notAPPROVED— human/CODEOWNERS review is required before merge.
Why human review
- .agents/playbook.md (modified) matches the .agents/** hard approval gate (gated_paths: true) and review_decision is REVIEW_REQUIRED, not APPROVED — human/CODEOWNERS approval is required before this PR can merge.
- This PR touches a path under a hard, non-overridable approval gate (.agents/playbook.md (modified) matches
.agents/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — hard approval gate on .agents/** not yet satisfied.
This PR modifies two prose/policy files (.agents/playbook.md rewritten 9-step PR Preparation Checklist, and a CLAUDE.md pointer stub). The reviewer's delta pass found no Critical/High/Medium code-correctness findings: the step-3 bash validation is fail-closed, GraphQL pagination guidance is sound, and nothing touches the published protocol surface (no changeset/schema/docs/wire/oneOf/dist/3.1.x concern).
However, .agents/playbook.md (modified) matches the .agents/** hard approval gate — gated_paths: true — and review_decision is REVIEW_REQUIRED, not APPROVED. Per decision table row 2, this PR cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is. The prior decision was also escalate for the same gate reason.
Escalation reasons
.agents/playbook.md(modified) is under the.agents/**hard approval gate (gated_paths: true) andreview_decisionisREVIEW_REQUIRED, notAPPROVED— human/CODEOWNERS review required before merge.
Why human review
- .agents/playbook.md (modified) matches the .agents/** hard approval gate (gated_paths: true) and review_decision is REVIEW_REQUIRED, not APPROVED — human/CODEOWNERS approval is required before this PR can merge.
- This PR touches a path under a hard, non-overridable approval gate (.agents/playbook.md (modified) matches
.agents/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
631638c to
04ef3aa
Compare
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — hard approval gate on .agents/** not satisfied.
This PR modifies .agents/playbook.md, which is under a hard, non-overridable approval gate (gated_paths: true). The current GitHub review_decision is REVIEW_REQUIRED, not APPROVED, so the gate is not satisfied (decision table row 2).
The reviewer reported a clean pass with no Critical/High/Medium findings — the diff touches only two process/policy docs (.agents/playbook.md and CLAUDE.md), no published protocol surface, so no changeset is required and the bash/GraphQL logic verifies as correct. Absent the path gate this would approve, but the gate stands until a human/CODEOWNERS approval is recorded.
Escalation reasons
.agents/playbook.md(modified) matches the.agents/**hard approval gate (gated_paths: true) andreview_decisionisREVIEW_REQUIRED, notAPPROVED— human/CODEOWNERS approval is required before this PR can merge.
Why human review
- .agents/playbook.md (modified) matches the .agents/** hard approval gate (gated_paths: true) and review_decision is REVIEW_REQUIRED, not APPROVED — human/CODEOWNERS approval is required before this PR can merge.
- This PR touches a path under a hard, non-overridable approval gate (.agents/playbook.md (modified) matches
.agents/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
04ef3aa to
9d89b0e
Compare
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated path requires human/CODEOWNERS approval.
This PR modifies .agents/playbook.md, which matches the .agents/** hard approval gate (gated_paths: true). The current review_decision is REVIEW_REQUIRED, not APPROVED, so per decision-table row 2 the gate is not satisfied and the PR cannot be auto-approved regardless of how clean the diff is.
The reviewer pass was clean: the delta touches only .agents/playbook.md and CLAUDE.md (a prompt/policy change adding a PR-completion checklist and a fail-closed Bash verification snippet). No protocol surface — schemas, reference docs, changesets, or dist artifacts — is touched. No Critical/High/Medium findings.
The prior decision was also escalate for the same gated-path reason, which still holds. Once a human/CODEOWNERS approval is recorded, this PR can fall through to a normal approve.
Escalation reasons
.agents/playbook.md(modified) matches the.agents/**hard approval gate;review_decisionisREVIEW_REQUIRED, notAPPROVED— human/CODEOWNERS approval is required before merge.
Why human review
- .agents/playbook.md (modified) matches the .agents/** hard approval gate (gated_paths: true) and review_decision is REVIEW_REQUIRED, not APPROVED — human/CODEOWNERS approval is required before this PR can merge.
- This PR touches a path under a hard, non-overridable approval gate (.agents/playbook.md (modified) matches
.agents/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
Summary
CLAUDE.mdas a concise pointer that makes clearing all comments and feedback mandatory before completionExact evidence
origin/main=6b33b871ec3e906c2a40a21258ad72ff77e89cc0.9d89b0e4a33b371ed8f434dfa9b2b975c8484617(force-with-lease pushed toconductor/require-cleared-pr-comments).95a6c6662,c9b976725,f23d00041,252682aad, and9d89b0e4a.git merge-base origin/main HEAD=6b33b871ec3e906c2a40a21258ad72ff77e89cc0exactly.git diff --name-status origin/main..HEADandgit diff --name-status origin/main...HEADcontain only modified.agents/playbook.mdandCLAUDE.md.04ef3aa6a310d0b4e22fe9218d79b6dbe014135b:.agents/playbook.md=c343e59e269ebc1e9437c583ea97d9d6231a0701;CLAUDE.md=0a994cd1eab893548e97b51546c74fe302f28bba.git diff --check origin/main...HEADpassed.markedandremarksuccessfully parsed both changed Markdown files.set -udry cases—missing PR number, zero, non-numeric, mismatched intended head (all rejected), and matching intended PR (accepted).node scripts/check-pr-title.cjs "docs: require resolved PR review threads"andnode scripts/check-changeset-protocol-scope.cjs origin/mainpassed.hasNextPage=false(so no per-thread comment pages exist); REST returned 0 issue-conversation comments, 9 submitted reviews, and 0 inline review comments.Feedback disposition
CI disposition
Original Build and static checks job 101459688531 in run 34023284634 failed only during
npm ci: downloading the@contentauth/c2pa-nodeGitHub release asset returnedECONNRESET. The project build and tests never ran in that attempt; the Build step and every later downstream check were skipped.The rerun job 101460680570 in the same run completed
SUCCESS, including dependency installation, build, and all downstream checks. Both jobs target immutable head9d89b0e4a33b371ed8f434dfa9b2b975c8484617.Disposition: the original annotation is non-actionable transient CI infrastructure, specifically evidenced by the successful identical-head rerun; no source change is required for it.
Submitted review bodies
5123557799,5124229557,5124367531,5124405049,5124443650,5124626609,5124654025,5124724166, and5124809622are fromaao-secretariat[bot]. The first eight target superseded heads;5124809622targets the current head, reports no Critical/High/Medium finding, and escalates only for the required human/CODEOWNERS approval. These bodies are not resolvable threads and do not replace that approval.No GraphQL review threads, issue-conversation comments, or inline review comments exist to resolve. No feedback was blanket-resolved.
Outstanding gate
9d89b0e4a33b371ed8f434dfa9b2b975c8484617.Open workspace in Conductor