Skip to content

docs: reviewer roster and merge gate policy (reviewers.md, AGENTS.md) - #10

Merged
sfmskywalker merged 3 commits into
mainfrom
docs/reviewers-list
Oct 3, 2026
Merged

sfmskywalker merged 3 commits into
mainfrom
docs/reviewers-list

Conversation

@sfmskywalker

@sfmskywalker sfmskywalker commented Oct 3, 2026 •

Copy link
Copy Markdown
Member

Why

Agents (Codex, Cursor and others) open most PRs here. The repository had no record of which automated reviewers actually work on it or how to request them, and no stated merge gate. This adds that record, following elsa-workflows/elsa-core#8569, so an agent knows which review is advisory, what the merge gate is, and that the author never reviews its own PR.

Change

  • Add .github/reviewers.md ("PR reviewers and merge gate"): one row per reviewer (status, how to request, notes), the rules, and dated evidence:
    • Request exactly one live advisory reviewer right after opening the PR. If it declines or skips, request another live one.
    • If no reviewer is live (the case today), skip the advisory request and say so in the PR description. The merge gate is unchanged.
    • The PR author (human or agent, including Codex) never reviews or approves its own PR.
    • Merge gate: an independent Elsa 3 Code Review APPROVE + HIGH @ <full 40-char head sha> plus green CI. Any push after approval needs a re-review on the new head.
    • Green CI here currently means CodeQL (Analyze (javascript-typescript)), GitGuardian Security Checks and license/cla; there is no build or test workflow.
    • main has no branch protection and Lovable commits straight to main, so the gate covers PRs only, by convention.
    • Update the file whenever a reviewer is added, removed, runs out of credits, or changes how it is requested.
  • Add AGENTS.md (new) with a short "PR reviewers" section that mirrors these rules and points at .github/reviewers.md.

Docs only; no code or workflow changes.

Advisory reviewer for this PR

None requested: no advisory reviewer is live on elsa-hub today (see the table below). A Copilot request on this PR was attempted before it was marked not live and never registered. The merge gate still applies.

Evidence (elsa-hub PRs #1 to #11, checked 2026-10-03)

Reviewer Status Evidence
GitHub Copilot code review not live Only elsa-hub review is on #1 (2026-01-26), opened by the Copilot coding agent, reviewed after the merge. The request on #10 returned success but never registered (no review_requested event, no review). Ruleset "Code Quality Copilot review for default branch" is disabled. It works on other elsa-workflows repositories (for example elsa-extensions#272). Becomes live once Copilot review is enabled for elsa-hub and a review actually lands.
Greptile not live No reviews, comments or check on #1 to #11.
CodeRabbit not live No reviews or comments on #1 to #11; #9, #10 and #11 (into main, opened after the org app install on 2026-10-03) got no automatic review.
Cursor Bugbot not live No activity on #1 to #11.
GitHub Code Quality not live No activity on #1 to #11.

@sfmskywalker sfmskywalker left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Elsa 3 Code Review: REQUEST_CHANGES + HIGH @ 3e66d85

Code Review, Round 1/4

The policy matches elsa-core#8569, apart from differences that make sense for elsa-hub, and every merge-gate line includes HIGH. The Greptile, CodeRabbit, Cursor Bugbot and Code Quality statuses are backed by evidence. The problem is Copilot. The file marks it live and makes it the one reviewer every PR must request, but the only Copilot request on this repository in eight months, on this PR, never registered. That status needs to change, and the rules need a fallback for when no reviewer is live.

Requests for changes

  1. Copilot status (reviewers.md:9, 17, 26; PR description). Mark GitHub Copilot code review as not live for elsa-hub, or as unverified with the same practical effect, until a request on this repository registers and gets a review. Evidence:

    • Its only elsa-hub review is on #1 (2026-01-26). #1 was opened by the Copilot coding agent, Copilot was added as a reviewer at merge time, and the review arrived after the merge.
    • On this PR (#10, opened 2026-10-03 18:58 CEST) a Copilot request was attempted, but it never registered. The timeline has no review_requested event, the requested reviewers list is empty, and there are no reviews.
    • The same account requested Copilot on elsa-workflows/elsa-extensions#272 at 15:08 CEST the same day. That request registered and Copilot reviewed at 15:11. So the failure here is specific to elsa-hub, or to how it was requested here. It is not proof that Copilot works on this repository.
    • This repository's ruleset "Code Quality Copilot review for default branch", which turns on automatic Copilot review, is disabled.

    Replace "Confirmed working org-wide on elsa-workflows/elsa-extensions#272" with evidence from elsa-hub. One PR in another repository doesn't show that Copilot works org-wide or on this repository. Moving the elsa-extensions#272 reference into the Notes column is fine. If you would rather keep Copilot live, request it again on this PR with GitHub CLI 2.88 or later. If the request registers and Copilot posts a review, cite #10 as the evidence instead.

  2. Fallback when no reviewer is live (reviewers.md:17-18, AGENTS.md:7). Once Copilot is not live, every row is not live, and "Request exactly one live advisory reviewer" (with "today that is GitHub Copilot code review") can't be followed. Add a rule such as: "If no reviewer in the table is live, skip the advisory request and say so in the PR description. The merge gate is unchanged." Then remove "today that is GitHub Copilot code review" or update it. Mirror the change in AGENTS.md:7 and in the PR description.

  3. Evidence range (reviewers.md:24-30). Extend the range to #1 to #10, since #10 holds the failed Copilot request. #10 and #11 were both opened into main today after the CodeRabbit install and got no CodeRabbit run. You can add them as further CodeRabbit evidence.

Non-blocking

  • AGENTS.md:10 leaves out "or changes how it is requested", which reviewers.md:22 includes, and AGENTS.md:9 doesn't say the SHA must be the full 40 characters. Aligning both lines with reviewers.md would avoid drift.
  • Title: "Advisory PR reviewers" undersells a file that also defines the merge gate. elsa-core#8569 got the same note. "PR reviewers and merge gate" would fit better.
  • Direct commits to main: main has no branch protection, and Lovable commits straight to main, as the README says and as lovable-dev[bot] commits in September show. So the gate covers PRs only, by convention. A sentence saying so would prevent confusion.
  • "Green CI" here means CodeQL (Analyze javascript-typescript), GitGuardian and license/cla. The repository has no build or test workflow. Naming those checks would make the gate concrete.
  • The review header format, the confidence scale and the four-round limit aren't written down here or in elsa-core#8569, so parity holds. A follow-up could add them to both repositories together.

Verified on 3e66d85

  • Parity with elsa-core#8569 (merged at ad040a7): the Greptile row, its required-reviewer rule, the 5/5 gate term and the Greptile-unavailable exception are removed. That is justified because Greptile isn't live here. "At most one additional reviewer" became "exactly one live advisory reviewer", and the auto-review wait rule is dropped. Both make sense without Greptile, given the fallback in item 2. The PR adds "independent" and "including Codex", and the author still never self-approves. Both files state the merge gate as APPROVE + HIGH @ <head sha> plus green CI. Any push needs a re-review on the new head, and advisory reviews never replace the gate.
  • Greptile is not live: there are no reviews, comments or "Greptile Review" check on #1 to #11. The org app was last updated 2026-10-01, before #9, #10 and #11 were opened.
  • CodeRabbit is not live: there are no reviews or comments on #1 to #11. The org app (selected repositories) was installed 2026-10-03 at 12:26 CEST, and #9 was opened into main at 14:48 CEST with no run.
  • Cursor Bugbot and GitHub Code Quality are not live: neither has any activity on #1 to #11. The org-wide Codex, Claude and Devin apps have no review activity here either, so leaving them out of the table is consistent with elsa-core.
  • Dashes: neither changed file contains an em dash (U+2014) or an en dash (U+2013). Both files are plain ASCII.
  • Paths and links: .github/reviewers.md exists at head. elsa-core#8569 and elsa-extensions#272 resolve. Nothing contradicts the README or the .lovable notes, which are the only other docs.
  • CI: CodeQL Analyze (javascript-typescript), GitGuardian Security Checks and license/cla all pass. The PR is mergeable, and there are no review threads.

Merge gate

Not mergeable yet. Merging needs an Elsa 3 Code Review APPROVE + HIGH @ <full head sha> on the new head after items 1 to 3 are fixed, plus green CI on that head. Greptile isn't live on elsa-hub, so it isn't part of this gate, and any Copilot review would be advisory only.

@sfmskywalker sfmskywalker changed the title docs: add .github/reviewers.md and reviewer policy in AGENTS.md docs: reviewer roster and merge gate policy (reviewers.md, AGENTS.md) Oct 3, 2026

@sfmskywalker sfmskywalker left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Elsa 3 Code Review: REQUEST_CHANGES + HIGH @ 9496003

Code Review, Round 2/4

All three Round 1 blockers are fixed, and every non-blocking item is addressed. One new factual error is left. The Copilot note now says Copilot works on elsa-extensions "only", which isn't true and contradicts elsa-core's own reviewers.md. It's a one-phrase fix.

Request for changes

  1. "It works on elsa-workflows/elsa-extensions only" (reviewers.md:9; PR description, Copilot row "Works on elsa-extensions only"). Copilot code review also reviews PRs in other org repositories. Examples are elsa-core #8142, #8137 and #8133 and elsa-studio #1041 and #995. elsa-core#8569's reviewers.md marks it live there too. Replace "only" with something like "It works on other elsa-workflows repositories (for example elsa-extensions#272)". Evidence line 29 is already accurate ("so this is specific to elsa-hub") and needs no change.

Round 1 items

  1. Copilot status: fixed. reviewers.md:9, the evidence at line 29, and the PR body all mark it not live. They cite the #1 history, the request on #10 that never registered and the disabled ruleset, and they say when it would become live. The org-wide overclaim is gone. The #10 timeline still has no review_requested event and no requested reviewers, which matches the new text.
  2. No-live-reviewer fallback: fixed. It's in reviewers.md:18-19, AGENTS.md:8 and the PR body. The rule is to skip the request, say so in the PR description, and keep the gate. "Today that is GitHub Copilot code review" is removed. The PR body follows the new rule in its "Advisory reviewer for this PR" section.
  3. Evidence range: fixed. It now covers #1 to #11 for every reviewer, and CodeRabbit cites #9, #10 and #11.

Non-blocking items from Round 1

  • AGENTS.md:12: now includes "or changes how it is requested". AGENTS.md:10: now requires the full 40-character SHA. Done.
  • Title: now "PR reviewers and merge gate", and the intro on line 3 is updated to match. Done.
  • Direct commits to main: reviewers.md:24 and AGENTS.md:11 now say main is unprotected and Lovable commits straight to it, so the gate covers PRs only, by convention. Done.
  • Green CI: defined at reviewers.md:22 and AGENTS.md:10 as CodeQL Analyze (javascript-typescript), GitGuardian Security Checks and license/cla. These match the check names on this PR. Done.

No regressions on 9496003

  • Parity with elsa-core#8569 holds. The only differences are still the Greptile items, which are removed because Greptile isn't live here, and the advisory-request rules, which now have a fallback. The author never self-approves. Any push needs a re-review on the new head. Advisory reviews never replace the gate.
  • Every gate line still says APPROVE + HIGH @ <head sha> plus green CI. That covers reviewers.md:21, AGENTS.md:10 and the PR body's merge-gate bullet.
  • Greptile, CodeRabbit, Cursor Bugbot and Code Quality are unchanged apart from the wider evidence range, which I rechecked. None has any activity on #1 to #11.
  • Dashes: reviewers.md, AGENTS.md and the PR body contain no em dash (U+2014) or en dash (U+2013). All three are plain ASCII.
  • CI: CodeQL Analyze (javascript-typescript), GitGuardian Security Checks and license/cla all pass on this head. The PR is mergeable, and there are no open review threads.

Merge gate

Not mergeable yet. Merging needs an Elsa 3 Code Review APPROVE + HIGH @ <full head sha> on the new head after item 1 is fixed, plus green CI on that head. No advisory reviewer is live on elsa-hub, so none is part of this gate.

@sfmskywalker sfmskywalker left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Elsa 3 Code Review: APPROVE + HIGH @ dfff236

Code Review, Round 3/4

The only change since Round 2 is one commit on top of 9496003. It replaces one phrase in the Copilot row of .github/reviewers.md line 9, and the PR body's Copilot row now has the same wording.

Round 2 item

Fixed. "It works on elsa-workflows/elsa-extensions only (elsa-extensions#272)" now reads "It works on other elsa-workflows repositories (for example elsa-extensions#272)". That's accurate: Copilot has also reviewed elsa-core and elsa-studio PRs, and elsa-core's reviewers.md marks it live. The row still marks Copilot not live for elsa-hub, with the same evidence.

Rechecked

  • Scope: the compare against 9496003 is one commit, one file, one line. Nothing else changed, so everything verified in Round 2 still holds. That covers parity with elsa-core#8569 apart from the Greptile and advisory-request differences, the no-live-reviewer fallback, the evidence range #1 to #11, the full-SHA and update-rule wording, the unprotected-main note and the green-CI definition.
  • Gate lines: every one still says APPROVE + HIGH @ <head sha> plus green CI.
  • Dashes: .github/reviewers.md and AGENTS.md at this head are plain ASCII, and the PR body has no em or en dashes.

Merge gate

elsa-hub has no live advisory reviewer, so the gate is Elsa 3 Code Review APPROVE + HIGH on the head plus green CI.

  • Review: APPROVE + HIGH @ dfff236.
  • CI: CodeQL Analyze (javascript-typescript), GitGuardian Security Checks and license/cla are all green. The merge state is CLEAN.
  • Threads: none open.
  • The gate is met at this head. Any further push voids this approval.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant