Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .agents/skills/drive-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -249,5 +249,6 @@ instance's outcome is context for the new one, never a standing answer to reuse

- A genuine design trade-off, a recurring finding pattern, or an architectural redesign proposal
each escalate per pr-review-conduct's own list, restated there, not duplicated here.
- A review shape the digest notes under `shapes=NOTED` is read by hand per pr-review-conduct's
Merge Gate item 4, never guessed at from what the new wording probably meant.
- A part of the review the digest prints under `UNPLACED ON THE HEAD` holds the gate until its
outcomes are acknowledged per pr-review-conduct's Merge Gate item 4. Never guess what the new
wording probably meant. Only an item that cannot be told to be a finding goes to the maintainer.
29 changes: 22 additions & 7 deletions .agents/skills/pr-review-conduct/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@ visible comments, routinely still carries a finding nobody has answered. Treatin
- Every review thread on the promotion is resolved, and every check passes.
- `coverage=none` is the only reason `pr_review.py` does not report the promotion ready, read
from the digest's lines. A `VERDICT WITH NO COUNTED FINDING` headline, exit `50`, is a second
reason until it is answered under item 3, and not after.
reason until it is answered under item 3, and not after. A `shapes=HELD` hold is another
until its acknowledgment posts under item 4.

The merge then runs with `--match-head-commit` set to the head those were checked on. The
evidence names each constituent pull request and how its coverage was stated. An
Expand Down Expand Up @@ -170,12 +171,24 @@ visible comments, routinely still carries a finding nobody has answered. Treatin
the review round, and the list's length where it states the block's `(N)` count. A line under
a heading that outcome 4 of that section names is not on that list. It is already its
finding's outcome, and owes only the pointer that outcome names.
4. Every part of the review the tooling could not read was read by hand (an unrecognized
heading, a moved section, an unfamiliar label). The digest marks one `shapes=NOTED` and names
each under `REVIEWER OUTPUT NOTED`, and decides no exit code on it, so this item is read from
the digest rather than the exit. Read the body for what that part says, give any finding in it
item 3's outcome, and file an issue on the hub naming the spelling to add to its
`scripts/reviewers/` vocabulary, rather than guessing what the new wording probably meant.
4. Every part of a round covering the head that the tooling could not place is answered. The
digest prints an excerpt of each under `UNPLACED ON THE HEAD` with a fingerprint for the set.
It reads `shapes=HELD`, and `status` and `wait` exit `50`.
- Read each part whole in the review body, since the excerpt only locates it. Give every item
in it item 3's outcome: fixed with its SHA, declined with evidence, or listed as pre-existing
in the pull request body.
- Post the outcomes with `pr_review.py comment <number> --repo <owner>/<repo> --fingerprint
<fp> --body <outcomes>`. One from an owner, member, or collaborator clears the hold,
`shapes=ACKNOWLEDGED`. New unplaced text on a new head owes a new acknowledgment.
- The spelling is a data edit to the matching `scripts/reviewers/*.json` in the hub plus one
fixture. Whoever acknowledged the part makes it in a pull request of its own, never an issue.
- An item that reads as neither a finding nor not one goes to the maintainer with its raw text
quoted, per "Escalate to the maintainer when" below.

A part on an earlier round prints under `REVIEWER OUTPUT NOTED` and decides no exit code. So
does a label nested in a list, a quote, or a placed part. Read that block rather than the
`shapes=` field, which names a head hold first. Read each such part by hand, and give any
finding in it item 3's outcome.
5. The maintainer has given **explicit** permission to merge.

The agent never merges on its own. A green or CLEAN PR with one open finding is not mergeable,
Expand Down Expand Up @@ -399,6 +412,8 @@ from a hub checkout. Do not use a provider connector or reconstruct the GitHub m
change), don't keep silently re-declining it.
- A finding is judged real but should not be fixed. That decision is never the agent's alone.
- An architectural redesign is proposed rather than a bug fix.
- An item in a part the digest prints under `UNPLACED ON THE HEAD` cannot be told to be a finding
or not. Quote its raw text in the escalation.

An agent that cannot reach the maintainer directly, a dispatched subagent being the ordinary case,
escalates to whoever dispatched it and stops that unit of work there. It never substitutes its own
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/fleet-skills/.source-digests/drive-pr
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20fbf0764feb2653
3609c8c27e9db5e7
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5d653240a1d00f2a
75b92a3bbf15ab34
5 changes: 3 additions & 2 deletions .claude-plugin/fleet-skills/skills/drive-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -249,5 +249,6 @@ instance's outcome is context for the new one, never a standing answer to reuse

- A genuine design trade-off, a recurring finding pattern, or an architectural redesign proposal
each escalate per pr-review-conduct's own list, restated there, not duplicated here.
- A review shape the digest notes under `shapes=NOTED` is read by hand per pr-review-conduct's
Merge Gate item 4, never guessed at from what the new wording probably meant.
- A part of the review the digest prints under `UNPLACED ON THE HEAD` holds the gate until its
outcomes are acknowledged per pr-review-conduct's Merge Gate item 4. Never guess what the new
wording probably meant. Only an item that cannot be told to be a finding goes to the maintainer.
29 changes: 22 additions & 7 deletions .claude-plugin/fleet-skills/skills/pr-review-conduct/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@ visible comments, routinely still carries a finding nobody has answered. Treatin
- Every review thread on the promotion is resolved, and every check passes.
- `coverage=none` is the only reason `pr_review.py` does not report the promotion ready, read
from the digest's lines. A `VERDICT WITH NO COUNTED FINDING` headline, exit `50`, is a second
reason until it is answered under item 3, and not after.
reason until it is answered under item 3, and not after. A `shapes=HELD` hold is another
until its acknowledgment posts under item 4.

The merge then runs with `--match-head-commit` set to the head those were checked on. The
evidence names each constituent pull request and how its coverage was stated. An
Expand Down Expand Up @@ -170,12 +171,24 @@ visible comments, routinely still carries a finding nobody has answered. Treatin
the review round, and the list's length where it states the block's `(N)` count. A line under
a heading that outcome 4 of that section names is not on that list. It is already its
finding's outcome, and owes only the pointer that outcome names.
4. Every part of the review the tooling could not read was read by hand (an unrecognized
heading, a moved section, an unfamiliar label). The digest marks one `shapes=NOTED` and names
each under `REVIEWER OUTPUT NOTED`, and decides no exit code on it, so this item is read from
the digest rather than the exit. Read the body for what that part says, give any finding in it
item 3's outcome, and file an issue on the hub naming the spelling to add to its
`scripts/reviewers/` vocabulary, rather than guessing what the new wording probably meant.
4. Every part of a round covering the head that the tooling could not place is answered. The
digest prints an excerpt of each under `UNPLACED ON THE HEAD` with a fingerprint for the set.
It reads `shapes=HELD`, and `status` and `wait` exit `50`.
- Read each part whole in the review body, since the excerpt only locates it. Give every item
in it item 3's outcome: fixed with its SHA, declined with evidence, or listed as pre-existing
in the pull request body.
- Post the outcomes with `pr_review.py comment <number> --repo <owner>/<repo> --fingerprint
<fp> --body <outcomes>`. One from an owner, member, or collaborator clears the hold,
`shapes=ACKNOWLEDGED`. New unplaced text on a new head owes a new acknowledgment.
- The spelling is a data edit to the matching `scripts/reviewers/*.json` in the hub plus one
fixture. Whoever acknowledged the part makes it in a pull request of its own, never an issue.
- An item that reads as neither a finding nor not one goes to the maintainer with its raw text
quoted, per "Escalate to the maintainer when" below.

A part on an earlier round prints under `REVIEWER OUTPUT NOTED` and decides no exit code. So
does a label nested in a list, a quote, or a placed part. Read that block rather than the
`shapes=` field, which names a head hold first. Read each such part by hand, and give any
finding in it item 3's outcome.
5. The maintainer has given **explicit** permission to merge.

The agent never merges on its own. A green or CLEAN PR with one open finding is not mergeable,
Expand Down Expand Up @@ -399,6 +412,8 @@ from a hub checkout. Do not use a provider connector or reconstruct the GitHub m
change), don't keep silently re-declining it.
- A finding is judged real but should not be fixed. That decision is never the agent's alone.
- An architectural redesign is proposed rather than a bug fix.
- An item in a part the digest prints under `UNPLACED ON THE HEAD` cannot be told to be a finding
or not. Quote its raw text in the escalation.

An agent that cannot reach the maintainer directly, a dispatched subagent being the ordinary case,
escalates to whoever dispatched it and stops that unit of work there. It never substitutes its own
Expand Down
5 changes: 3 additions & 2 deletions .github/skills/drive-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -249,5 +249,6 @@ instance's outcome is context for the new one, never a standing answer to reuse

- A genuine design trade-off, a recurring finding pattern, or an architectural redesign proposal
each escalate per pr-review-conduct's own list, restated there, not duplicated here.
- A review shape the digest notes under `shapes=NOTED` is read by hand per pr-review-conduct's
Merge Gate item 4, never guessed at from what the new wording probably meant.
- A part of the review the digest prints under `UNPLACED ON THE HEAD` holds the gate until its
outcomes are acknowledged per pr-review-conduct's Merge Gate item 4. Never guess what the new
wording probably meant. Only an item that cannot be told to be a finding goes to the maintainer.
29 changes: 22 additions & 7 deletions .github/skills/pr-review-conduct/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@ visible comments, routinely still carries a finding nobody has answered. Treatin
- Every review thread on the promotion is resolved, and every check passes.
- `coverage=none` is the only reason `pr_review.py` does not report the promotion ready, read
from the digest's lines. A `VERDICT WITH NO COUNTED FINDING` headline, exit `50`, is a second
reason until it is answered under item 3, and not after.
reason until it is answered under item 3, and not after. A `shapes=HELD` hold is another
until its acknowledgment posts under item 4.

The merge then runs with `--match-head-commit` set to the head those were checked on. The
evidence names each constituent pull request and how its coverage was stated. An
Expand Down Expand Up @@ -170,12 +171,24 @@ visible comments, routinely still carries a finding nobody has answered. Treatin
the review round, and the list's length where it states the block's `(N)` count. A line under
a heading that outcome 4 of that section names is not on that list. It is already its
finding's outcome, and owes only the pointer that outcome names.
4. Every part of the review the tooling could not read was read by hand (an unrecognized
heading, a moved section, an unfamiliar label). The digest marks one `shapes=NOTED` and names
each under `REVIEWER OUTPUT NOTED`, and decides no exit code on it, so this item is read from
the digest rather than the exit. Read the body for what that part says, give any finding in it
item 3's outcome, and file an issue on the hub naming the spelling to add to its
`scripts/reviewers/` vocabulary, rather than guessing what the new wording probably meant.
4. Every part of a round covering the head that the tooling could not place is answered. The
digest prints an excerpt of each under `UNPLACED ON THE HEAD` with a fingerprint for the set.
It reads `shapes=HELD`, and `status` and `wait` exit `50`.
- Read each part whole in the review body, since the excerpt only locates it. Give every item
in it item 3's outcome: fixed with its SHA, declined with evidence, or listed as pre-existing
in the pull request body.
- Post the outcomes with `pr_review.py comment <number> --repo <owner>/<repo> --fingerprint
<fp> --body <outcomes>`. One from an owner, member, or collaborator clears the hold,
`shapes=ACKNOWLEDGED`. New unplaced text on a new head owes a new acknowledgment.
- The spelling is a data edit to the matching `scripts/reviewers/*.json` in the hub plus one
fixture. Whoever acknowledged the part makes it in a pull request of its own, never an issue.
- An item that reads as neither a finding nor not one goes to the maintainer with its raw text
quoted, per "Escalate to the maintainer when" below.

A part on an earlier round prints under `REVIEWER OUTPUT NOTED` and decides no exit code. So
does a label nested in a list, a quote, or a placed part. Read that block rather than the
`shapes=` field, which names a head hold first. Read each such part by hand, and give any
finding in it item 3's outcome.
5. The maintainer has given **explicit** permission to merge.

The agent never merges on its own. A green or CLEAN PR with one open finding is not mergeable,
Expand Down Expand Up @@ -399,6 +412,8 @@ from a hub checkout. Do not use a provider connector or reconstruct the GitHub m
change), don't keep silently re-declining it.
- A finding is judged real but should not be fixed. That decision is never the agent's alone.
- An architectural redesign is proposed rather than a bug fix.
- An item in a part the digest prints under `UNPLACED ON THE HEAD` cannot be told to be a finding
or not. Quote its raw text in the escalation.

An agent that cannot reach the maintainer directly, a dispatched subagent being the ordinary case,
escalates to whoever dispatched it and stops that unit of work there. It never substitutes its own
Expand Down
2 changes: 1 addition & 1 deletion docs/pr-reviewer-evaluation.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ The expansion should preserve one compact command while adding provider adapters

`status` should report every enabled reviewer on one line and then list unresolved findings grouped by provider. `wait` should finish only when each selected reviewer reaches a recognized terminal state.

The Copilot adapter is `scripts/pr_review_copilot.py`, with its spellings in `scripts/reviewers/copilot.json`, and a provider joins it as a vocabulary file read by the same code path. Provider support must not weaken its refusal, partial-coverage, or suppressed-finding readings, and a shape it cannot place stays a note in the digest rather than an exit.
The Copilot adapter is `scripts/pr_review_copilot.py`, with its spellings in `scripts/reviewers/copilot.json`, and a provider joins it as a vocabulary file read by the same code path. Provider support must not weaken its refusal, partial-coverage, or suppressed-finding readings. A part it cannot place on a round covering the head holds the merge gate until an owner, member, or collaborator acknowledges it with written outcomes.

## Next Evaluation Steps

Expand Down
Loading
Loading