feat(forgejo): rename role/eval to role/science and role/tpm to role/director #978

Merged
coilyco-ops merged 1 commit from eval/slug-pass-labels into main 2026-08-28 19:16:03 +00:00
Owner

Fifth in the same day's roster sequence, after #972 through #975, and the first that moves label names rather than only descriptions.

  • role/eval becomes role/science - the slug now matches Applied Scientist, and it stops one token naming both the seat and the activity
  • role/tpm becomes role/director - tpm abbreviated Technical Program Manager, a title #344 retired
  • role/devrel description returns to Developer Advocate, reverting #975

Landed in agent-compose@97d6852 and housecast-v0.1.11.

The rename map needed surgery, not an append

role/director: role/tpm was already in the map from #933, pointing the opposite way. The slug pass reverses it, so:

  • role/director: role/tpm is removed - its target is no longer declared, and role/director is now a declared label rather than a rename source
  • role/ai: role/eval becomes role/ai: role/science, so the retired ai label is not stranded on a target that no longer exists
  • role/eval: role/science and role/tpm: role/director are added

test_every_rename_target_is_declared is what makes this safe: it fails if any rename points at a label the file does not declare, so a half-done map cannot land.

Verification

  • python -m unittest scripts.forgejo_label_taxonomy_sync_test - 30 tests OK, including ShippedTaxonomyTest and the rename-target check.
  • just pre-commit green.

Known cost, accepted deliberately

role/director is a resurrected label, not a new one. It named a different seat before the v3 migration, and committed evaluation datasets still carry role: director and entity: eval meaning the retired seats. Those are frozen evidence and stay as they are, so both tokens now read differently depending on whether you are in a dataset or in current config.

Not done here

Declaration only. Converging live org state is modify-live-backend and belongs to sysadmin. This is the run that finally matters: live labels are five changes behind, and this one moves names, so until it runs, role/eval and role/tpm are still the live labels carrying every issue.

Boundary

Authored from the eval seat, outside its build scope, same crossing as #972 through #975 and directed by Kai.

Fifth in the same day's roster sequence, after #972 through #975, and the first that moves label **names** rather than only descriptions. * `role/eval` becomes **`role/science`** - the slug now matches Applied Scientist, and it stops one token naming both the seat and the activity * `role/tpm` becomes **`role/director`** - `tpm` abbreviated Technical Program Manager, a title #344 retired * `role/devrel` description returns to **Developer Advocate**, reverting #975 Landed in `agent-compose@97d6852` and `housecast-v0.1.11`. ## The rename map needed surgery, not an append `role/director: role/tpm` was already in the map from #933, pointing the opposite way. The slug pass reverses it, so: * `role/director: role/tpm` is **removed** - its target is no longer declared, and `role/director` is now a declared label rather than a rename source * `role/ai: role/eval` becomes `role/ai: role/science`, so the retired `ai` label is not stranded on a target that no longer exists * `role/eval: role/science` and `role/tpm: role/director` are added `test_every_rename_target_is_declared` is what makes this safe: it fails if any rename points at a label the file does not declare, so a half-done map cannot land. ## Verification * `python -m unittest scripts.forgejo_label_taxonomy_sync_test` - 30 tests OK, including `ShippedTaxonomyTest` and the rename-target check. * `just pre-commit` green. ## Known cost, accepted deliberately `role/director` is a resurrected label, not a new one. It named a different seat before the v3 migration, and committed evaluation datasets still carry `role: director` and `entity: eval` meaning the retired seats. Those are frozen evidence and stay as they are, so both tokens now read differently depending on whether you are in a dataset or in current config. ## Not done here Declaration only. Converging live org state is `modify-live-backend` and belongs to sysadmin. This is the run that finally matters: live labels are five changes behind, and this one moves **names**, so until it runs, `role/eval` and `role/tpm` are still the live labels carrying every issue. ## Boundary Authored from the eval seat, outside its build scope, same crossing as #972 through #975 and directed by Kai.
feat(forgejo): rename role/eval to role/science and role/tpm to role/director
All checks were successful
TruffleHog / Scan for secrets (pull_request) Successful in 5s
CI / lint (pull_request) Successful in 43s
b1871322b2
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Agent-Role: eval
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!978
No description provided.