feat(forgejo): rename role/* onto the Core Roster v2 seats #933

Merged
coilysiren merged 1 commit from aos/claude/label-taxonomy-role-rename into main 2026-08-25 18:44:53 +00:00
Member

Step 2 of coilyco-flight-deck/agent-compose#342, and the reviewable diff that step 1 existed to make possible. One file changed.

The rename

The role axis still named the eight-seat roster Core Roster v2 replaced, so no label existed for any of the seven seats that do exist. The converge performs these as edits in place, so every issue keeps the label it already carries and not one of them is touched:

  • role/engineer - role/platform - 414 issues carried
  • role/ops - role/sysadmin - 194
  • role/ai - role/eval - 76
  • role/director - role/tpm - 53
  • role/creator - role/devrel - 22
  • role/design - role/frontend - 11

770 issues rehomed, zero per-issue writes.

role/gamedev is created. It has no predecessor and starts empty.

role/human is unchanged. It was never a seat.

What is deliberately absent

role/exec and role/qa are retired, and they are not in this file. The converge never deletes, because a delete strips the label from every issue holding it, which is the only irreversible move in this operation. So the dry-run reports them as undeclared and leaves them alone, and that report is the standing reminder that role/exec's 4 issues and role/qa's 16 need rehoming first.

Those are #342 steps 3 and 4. Step 4's per-issue destinations are already settled on that issue: 8 need a label added, and the other 8 already carry a second role label so the delete handles them.

Expect --check to exit 1 after this applies, until those two labels are gone. That is the intended state rather than a regression.

Verification

just forgejo-label-taxonomy-dry-run, identical on all three orgs:

=== coilyco-gaming
  would rename role/ai -> role/eval
  would rename role/creator -> role/devrel
  would rename role/design -> role/frontend
  would rename role/director -> role/tpm
  would rename role/engineer -> role/platform
  would rename role/ops -> role/sysadmin
  would create role/gamedev
  undeclared, left alone: role/exec, role/qa

17 planner tests pass. Full pre-commit run --all-files green.

After merge

just forgejo-label-taxonomy needs an org owner token. coilyco-ops is a member rather than an owner and gets 403 on org label writes, so Kai runs the apply.

Known consequence, tracked

role/engineer to role/platform is correct as a rename but cannot know which of its 414 issues belong to role/gamedev, a seat that did not exist when they were filed. eco-mods#19 is mod-bench perk behavior wearing an engineer label for exactly that reason. A post-rename sweep of the gaming repositories is agent-compose#345. It is additive and repo-scoped, so it needs no owner token.

Refs coilyco-flight-deck/agent-compose#342

Step 2 of coilyco-flight-deck/agent-compose#342, and the reviewable diff that step 1 existed to make possible. **One file changed.** ## The rename The role axis still named the eight-seat roster Core Roster v2 replaced, so no label existed for any of the seven seats that do exist. The converge performs these as **edits in place**, so every issue keeps the label it already carries and not one of them is touched: * `role/engineer` - `role/platform` - 414 issues carried * `role/ops` - `role/sysadmin` - 194 * `role/ai` - `role/eval` - 76 * `role/director` - `role/tpm` - 53 * `role/creator` - `role/devrel` - 22 * `role/design` - `role/frontend` - 11 770 issues rehomed, zero per-issue writes. `role/gamedev` is created. It has no predecessor and starts empty. `role/human` is unchanged. It was never a seat. ## What is deliberately absent `role/exec` and `role/qa` are retired, and they are **not** in this file. The converge never deletes, because a delete strips the label from every issue holding it, which is the only irreversible move in this operation. So the dry-run reports them as undeclared and leaves them alone, and that report is the standing reminder that `role/exec`'s 4 issues and `role/qa`'s 16 need rehoming first. Those are #342 steps 3 and 4. Step 4's per-issue destinations are already settled on that issue: 8 need a label added, and the other 8 already carry a second role label so the delete handles them. Expect `--check` to exit 1 after this applies, until those two labels are gone. That is the intended state rather than a regression. ## Verification `just forgejo-label-taxonomy-dry-run`, identical on all three orgs: ``` === coilyco-gaming would rename role/ai -> role/eval would rename role/creator -> role/devrel would rename role/design -> role/frontend would rename role/director -> role/tpm would rename role/engineer -> role/platform would rename role/ops -> role/sysadmin would create role/gamedev undeclared, left alone: role/exec, role/qa ``` 17 planner tests pass. Full `pre-commit run --all-files` green. ## After merge `just forgejo-label-taxonomy` needs an **org owner token**. `coilyco-ops` is a member rather than an owner and gets 403 on org label writes, so Kai runs the apply. ## Known consequence, tracked `role/engineer` to `role/platform` is correct as a rename but cannot know which of its 414 issues belong to `role/gamedev`, a seat that did not exist when they were filed. `eco-mods#19` is mod-bench perk behavior wearing an engineer label for exactly that reason. A post-rename sweep of the gaming repositories is agent-compose#345. It is additive and repo-scoped, so it needs no owner token. Refs coilyco-flight-deck/agent-compose#342
feat(forgejo): rename role/* onto the Core Roster v2 seats
All checks were successful
CI / lint (pull_request) Successful in 5m51s
TruffleHog / Scan for secrets (pull_request) Successful in 5m22s
d8c02d0ee6
The role axis still named the eight-seat roster that Core Roster v2 replaced, so
no label existed for any of the seven seats that actually exist. This is the
reviewable diff that step 1 made possible.

Six renames, which the converge performs as edits in place, so every issue keeps
the label it already carries and none of them is touched:

  role/ai        -> role/eval        (76 issues)
  role/creator   -> role/devrel      (22)
  role/design    -> role/frontend    (11)
  role/director  -> role/tpm         (53)
  role/engineer  -> role/platform    (414)
  role/ops       -> role/sysadmin    (194)

role/gamedev is created. It has no predecessor label and starts empty, which is
tracked at agent-compose#345 because game and mod work filed before that seat
existed wears role/engineer and will land on role/platform.

role/exec and role/qa are deliberately absent. They are retired, but the
converge never deletes, because a delete strips the label from every issue
holding it. The dry-run reports them as undeclared and leaves them alone, which
is the reminder that role/exec's 4 issues and role/qa's 16 need rehoming first.
Those are agent-compose#342 steps 3 and 4, and step 4's per-issue destinations
are already settled there.

role/human is unchanged. It was never a seat and survives every roster change.

Descriptions now name the seat rather than a bare slug, so a reader of the label
list can tell who a queue belongs to without opening the roster.

Dry-run verified against all three orgs: six renames, one create, two undeclared
left alone, identical on each. Applying needs an org owner token.

Refs coilyco-flight-deck/agent-compose#342

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Agent-Role: tpm
coilysiren deleted branch aos/claude/label-taxonomy-role-rename 2026-08-25 18:44:53 +00:00
Sign in to join this conversation.
No reviewers
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
coilyco-flight-deck/infrastructure!933
No description provided.