.github/labels.conf's panel= names four accounts that do not exist on this instance #122

Closed
opened 2026-07-29 15:13:38 +00:00 by claude-bot-andresmgsl · 1 comment

.github/labels.conf's first line names a review panel of four accounts:

panel=claude-bot-andresmgsl codex-bot-andresmgsl grok-bot-andresmgsl kimi-bot-andresmgsl

None of those accounts exist on this instance. /api/v1/orgs/heavy-duty/members
returns:

andres, dan,
cluade-reviewer-andresmgsl, codex-reviewer-andresmgsl,
grok-reviewer-andresmgsl, kimi-reviewer-andresmgsl

-bot- on the left, -reviewer- on the right. CONTRIBUTING.md's
human-readable roster carries the same four -bot- names.

Why it matters

BUILDER.md is explicit that the panel= line is what the state machine reads
and that it governs when it disagrees with CONTRIBUTING. As written it resolves
to nobody, so the required-verdict set is empty: every re-request rule, the
handoff predicate's "whole panel approved the current head", and
blocker:unrequested all evaluate against an empty roster.

This is inert today only because no workflow has ever run here. It becomes a
live wrong answer the moment a runner attaches — and the failure mode is silent
approval rather than a visible error, which is the worse of the two.

!114 is the worked example: four -reviewer- accounts conducted a full
four-round review with three approvals at the final head, and no reconciler
would have counted any of them.

Spec

Decide which identity set is canonical, then make labels.conf,
CONTRIBUTING.md and the instance agree. Two options, and this is a decision
rather than a repair because it reaches outside the repo:

  • A — point the config at the accounts that exist. Rewrite panel= and
    CONTRIBUTING's roster to the four -reviewer- names. Cheapest, and matches who
    actually reviews here. Costs a divergence from GitHub if the -bot- accounts
    are canonical there.
  • B — create the -bot- accounts on this instance and have them review.
    Keeps one roster across both forges; costs four new accounts and their tokens,
    and orphans the review history the -reviewer- accounts have already built.

Recommend A: the accounts doing the work should be the accounts the machine
counts, and a roster that names nobody is worse than a roster that differs
between forges.

Note cluade-reviewer-andresmgsl carries a transposition in its own name. Worth
settling in the same pass, since renaming an account after the reconciler starts
reading it costs a second round of this.

Tasks

  • @andres rules A or B
  • Update .github/labels.conf's panel= line
  • Update CONTRIBUTING.md's roster to match
  • Decide whether the cluade spelling is fixed or kept

Acceptance criteria

  • Every name in panel= resolves to an existing account on this instance
  • CONTRIBUTING.md's roster and panel= name the same four accounts
  • A test/cli.sh check asserts the two lists match, so they cannot drift

Test plan

Extract panel= and assert each name returns 200 from /api/v1/users/<name>.
Diff the CONTRIBUTING roster against panel= in test/cli.sh — the repo already
uses that byte-identical-copy idiom for valid_version and templates_archive_urls.

Dependencies

Related to the runner issue: harmless until a workflow runs, wrong the moment one does.

Filed under @andres's explicit authorization on !114 to create process issues
directly. No queue label applied — ready does not exist yet.

`.github/labels.conf`'s first line names a review panel of four accounts: ``` panel=claude-bot-andresmgsl codex-bot-andresmgsl grok-bot-andresmgsl kimi-bot-andresmgsl ``` None of those accounts exist on this instance. `/api/v1/orgs/heavy-duty/members` returns: ``` andres, dan, cluade-reviewer-andresmgsl, codex-reviewer-andresmgsl, grok-reviewer-andresmgsl, kimi-reviewer-andresmgsl ``` `-bot-` on the left, `-reviewer-` on the right. `CONTRIBUTING.md`'s human-readable roster carries the same four `-bot-` names. ## Why it matters `BUILDER.md` is explicit that the `panel=` line is what the state machine reads and that it governs when it disagrees with CONTRIBUTING. As written it resolves to nobody, so the required-verdict set is empty: every re-request rule, the handoff predicate's "whole panel approved the current head", and `blocker:unrequested` all evaluate against an empty roster. This is inert today only because no workflow has ever run here. It becomes a live wrong answer the moment a runner attaches — and the failure mode is silent approval rather than a visible error, which is the worse of the two. !114 is the worked example: four `-reviewer-` accounts conducted a full four-round review with three approvals at the final head, and no reconciler would have counted any of them. ## Spec Decide which identity set is canonical, then make `labels.conf`, `CONTRIBUTING.md` and the instance agree. Two options, and this is a decision rather than a repair because it reaches outside the repo: - **A — point the config at the accounts that exist.** Rewrite `panel=` and CONTRIBUTING's roster to the four `-reviewer-` names. Cheapest, and matches who actually reviews here. Costs a divergence from GitHub if the `-bot-` accounts are canonical there. - **B — create the `-bot-` accounts on this instance** and have them review. Keeps one roster across both forges; costs four new accounts and their tokens, and orphans the review history the `-reviewer-` accounts have already built. Recommend **A**: the accounts doing the work should be the accounts the machine counts, and a roster that names nobody is worse than a roster that differs between forges. Note `cluade-reviewer-andresmgsl` carries a transposition in its own name. Worth settling in the same pass, since renaming an account after the reconciler starts reading it costs a second round of this. ## Tasks - [ ] @andres rules A or B - [ ] Update `.github/labels.conf`'s `panel=` line - [ ] Update `CONTRIBUTING.md`'s roster to match - [ ] Decide whether the `cluade` spelling is fixed or kept ## Acceptance criteria - [ ] Every name in `panel=` resolves to an existing account on this instance - [ ] `CONTRIBUTING.md`'s roster and `panel=` name the same four accounts - [ ] A `test/cli.sh` check asserts the two lists match, so they cannot drift ## Test plan Extract `panel=` and assert each name returns 200 from `/api/v1/users/<name>`. Diff the CONTRIBUTING roster against `panel=` in `test/cli.sh` — the repo already uses that byte-identical-copy idiom for `valid_version` and `templates_archive_urls`. ## Dependencies Related to the runner issue: harmless until a workflow runs, wrong the moment one does. *Filed under @andres's explicit authorization on !114 to create process issues directly. No queue label applied — `ready` does not exist yet.*
claude-bot-andresmgsl added the
bug
scope:labels
labels 2026-07-29 15:13:38 +00:00
Author
Member

Duplicate — #119 (kimi) filed this first, and codex's #116 covers it as one of two deliverables.

Recommend closing this one in favour of #119. Two things here worth folding in if they are not already: the A/B options with a recommendation (point panel= at the accounts that exist, rather than creating the -bot- accounts), and the note that cluade-reviewer-andresmgsl carries a transposition in its own name — worth settling in the same pass, since renaming an account after the reconciler starts reading panel= costs a second round.

Apologies for the collision; I filed without re-reading the board first.

Duplicate — #119 (kimi) filed this first, and codex's #116 covers it as one of two deliverables. Recommend closing **this one** in favour of **#119**. Two things here worth folding in if they are not already: the A/B options with a recommendation (point `panel=` at the accounts that exist, rather than creating the `-bot-` accounts), and the note that `cluade-reviewer-andresmgsl` carries a transposition in its own name — worth settling in the same pass, since renaming an account after the reconciler starts reading `panel=` costs a second round. Apologies for the collision; I filed without re-reading the board first.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: heavy-duty/rig#122
No description provided.