Ceremony on Forgejo — align actors and bootstrap the issue-flow taxonomy #116

Closed
opened 2026-07-29 15:09:04 +00:00 by codex-bot-andresmgsl · 1 comment

Context

Ceremony automation cannot currently describe this Forgejo accurately:

  • .github/labels.conf names GitHub-era panel identities (*-bot-andresmgsl) and triage-actors=dan-claude-bot, while reviews here are submitted by *-reviewer-andresmgsl.
  • The Forgejo repository is missing core issue-flow labels including needs-triage, ready, claimed, epic, needs-ruling, attention, and offsite.
  • The labels workflow has never run on this instance because no runner is attached, so issue #111 has no queue state and PR !114's state had to be managed by hand.

Created under @andres's explicit exception in !114 comment 3664 to file the missing Ceremony-support work directly.

Spec

Make the pinned Ceremony labels workflow authoritative on Forgejo: configure the actual reviewer/triage identities, bootstrap the complete taxonomy idempotently, and prove issue/PR reconciliation with disposable test items or existing non-destructive events.

Do not hand-invent label semantics or fork the vendored .ceremony/ doctrine. Identity changes belong in rig's .github/labels.conf; taxonomy comes from the pinned Ceremony workflow.

Tasks

  • Confirm the intended Forgejo panel and triage actor usernames with @andres.
  • Update panel= and triage-actors= in .github/labels.conf to those exact accounts.
  • Run the pinned labels bootstrap after the repository runner issue is complete.
  • Verify every core label from .ceremony/LABELS.md exists with the expected description/color.
  • Exercise issue queue reconciliation and PR state/blocker reconciliation.
  • Document how Forgejo dispatches the bootstrap/sweep and any platform-specific difference from GitHub.

Acceptance criteria

  • panel= resolves to the accounts that actually review Forgejo PRs; author exclusion produces the correct required set.
  • triage-actors= resolves to the account(s) authorized to normalize issues.
  • Core labels include needs-triage, ready, claimed, blocked, epic, needs-ruling, attention, offsite, every state:*, and every blocker:* named by the pinned doctrine.
  • A new direct issue receives/retains a valid issue-flow state and malformed queue combinations are reported or repaired per Ceremony.
  • A draft PR, an active review round, an addressing round, and a fully approved current head reconcile to the documented state labels.
  • Re-running bootstrap is idempotent and preserves hand-set intent/scope labels.

Test plan

  • Run the pinned labels bootstrap and work-queue sweep twice.
  • Compare the Forgejo labels API to .ceremony/LABELS.md and .github/labels.conf.
  • Drive representative issue/PR events and inspect label timelines plus workflow logs.
  • Confirm !114's configured panel would be Claude/Kimi/Codex minus its Grok author at its current head.

Dependencies

Blocked by #115.

## Context Ceremony automation cannot currently describe this Forgejo accurately: - `.github/labels.conf` names GitHub-era panel identities (`*-bot-andresmgsl`) and `triage-actors=dan-claude-bot`, while reviews here are submitted by `*-reviewer-andresmgsl`. - The Forgejo repository is missing core issue-flow labels including `needs-triage`, `ready`, `claimed`, `epic`, `needs-ruling`, `attention`, and `offsite`. - The labels workflow has never run on this instance because no runner is attached, so issue #111 has no queue state and PR !114's state had to be managed by hand. Created under @andres's explicit exception in !114 comment 3664 to file the missing Ceremony-support work directly. ## Spec Make the pinned Ceremony labels workflow authoritative on Forgejo: configure the actual reviewer/triage identities, bootstrap the complete taxonomy idempotently, and prove issue/PR reconciliation with disposable test items or existing non-destructive events. Do not hand-invent label semantics or fork the vendored `.ceremony/` doctrine. Identity changes belong in rig's `.github/labels.conf`; taxonomy comes from the pinned Ceremony workflow. ## Tasks - [ ] Confirm the intended Forgejo panel and triage actor usernames with @andres. - [ ] Update `panel=` and `triage-actors=` in `.github/labels.conf` to those exact accounts. - [ ] Run the pinned labels bootstrap after the repository runner issue is complete. - [ ] Verify every core label from `.ceremony/LABELS.md` exists with the expected description/color. - [ ] Exercise issue queue reconciliation and PR state/blocker reconciliation. - [ ] Document how Forgejo dispatches the bootstrap/sweep and any platform-specific difference from GitHub. ## Acceptance criteria - [ ] `panel=` resolves to the accounts that actually review Forgejo PRs; author exclusion produces the correct required set. - [ ] `triage-actors=` resolves to the account(s) authorized to normalize issues. - [ ] Core labels include `needs-triage`, `ready`, `claimed`, `blocked`, `epic`, `needs-ruling`, `attention`, `offsite`, every `state:*`, and every `blocker:*` named by the pinned doctrine. - [ ] A new direct issue receives/retains a valid issue-flow state and malformed queue combinations are reported or repaired per Ceremony. - [ ] A draft PR, an active review round, an addressing round, and a fully approved current head reconcile to the documented state labels. - [ ] Re-running bootstrap is idempotent and preserves hand-set intent/scope labels. ## Test plan - Run the pinned labels bootstrap and work-queue sweep twice. - Compare the Forgejo labels API to `.ceremony/LABELS.md` and `.github/labels.conf`. - Drive representative issue/PR events and inspect label timelines plus workflow logs. - Confirm !114's configured panel would be Claude/Kimi/Codex minus its Grok author at its current head. ## Dependencies Blocked by #115.
codex-bot-andresmgsl added the
blocked
bug
scope:labels
labels 2026-07-29 15:09:21 +00:00
Author
Member

Pre-run configuration is implemented in draft !128:

#128

The PR updates panel=, triage-actors=, the matching CONTRIBUTING.md roster, and exact regression tests. It uses Refs #116, not Closes #116, because the runner-backed acceptance criteria remain outstanding.

Parked: !128 is blocked on #115. After the runner is active, #116 still owns the taxonomy bootstrap and live issue/PR reconciliation. @andres is tagged on the PR to confirm the sole triage actor before merge.

Pre-run configuration is implemented in draft !128: https://forgejo.heavyduty.builders/heavy-duty/rig/pulls/128 The PR updates `panel=`, `triage-actors=`, the matching `CONTRIBUTING.md` roster, and exact regression tests. It uses `Refs #116`, not `Closes #116`, because the runner-backed acceptance criteria remain outstanding. Parked: !128 is blocked on #115. After the runner is active, #116 still owns the taxonomy bootstrap and live issue/PR reconciliation. @andres is tagged on the PR to confirm the sole triage actor before merge.
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#116
No description provided.