Context
Several repos carry a local performance 🚀 label (#006b75, "Performance improvements") that has no canonical equivalent and no legacy_migrations entry in lib/labels.yml. It is therefore classified as an unknown local label: preserved by sync_policy, but never migrated and never created in repos that lack it.
Surfaced while relabelling z-shell/zsh-fancy-completions#47 (a completion-resolver memoization proposal). The migration table cleanly resolved bug 🐞, ci 🤖, enhancement ✨, and plugin ⚙️, but performance 🚀 had nowhere to go. The result is an inconsistency between two related issues: zsh-fancy-completions#47 kept the legacy label (correctly preserved), while zsh-fancy-completions#49 — the benchmark issue supporting it — carries no performance signal at all, because applying the legacy label to a new issue would have reintroduced exactly the non-canonical form the taxonomy is meant to eliminate.
Proposal
Add performance as a severity/modifier label, alongside regression, security, and breaking-change. Those are cross-cutting concern markers rather than work types, which is the right shape for this: performance work can be a bug, a maintenance task, or a feature, and the existing type: axis already carries that distinction.
- name: performance
color: '006b75'
description: Performance-sensitive work or a measured regression in speed or memory.
Reuse #006b75 — the color repos already use for performance 🚀 — so migration is visually seamless.
Plus the migration entry:
performance 🚀: performance
Scope
lib/labels.yml — canonical entry and legacy_migrations mapping.
runbooks/labels.md — severity/modifiers list and legacy migration table.
runbooks/triage.md — severity/modifiers table.
Explicitly not .github/lib/labels.yml. That file is a stale duplicate that the tooling does not read; adding to it would imply it is maintained. See #461.
Alternative considered
Leave performance 🚀 as a permanent non-canonical local label. Rejected: the sync policy preserves unknown labels but never propagates them, so repos would keep diverging, and every new performance issue forces the same choice between an off-taxonomy label and no signal.
Context
Several repos carry a local
performance 🚀label (#006b75, "Performance improvements") that has no canonical equivalent and nolegacy_migrationsentry inlib/labels.yml. It is therefore classified as an unknown local label: preserved bysync_policy, but never migrated and never created in repos that lack it.Surfaced while relabelling z-shell/zsh-fancy-completions#47 (a completion-resolver memoization proposal). The migration table cleanly resolved
bug 🐞,ci 🤖,enhancement ✨, andplugin ⚙️, butperformance 🚀had nowhere to go. The result is an inconsistency between two related issues: zsh-fancy-completions#47 kept the legacy label (correctly preserved), while zsh-fancy-completions#49 — the benchmark issue supporting it — carries no performance signal at all, because applying the legacy label to a new issue would have reintroduced exactly the non-canonical form the taxonomy is meant to eliminate.Proposal
Add
performanceas a severity/modifier label, alongsideregression,security, andbreaking-change. Those are cross-cutting concern markers rather than work types, which is the right shape for this: performance work can be a bug, a maintenance task, or a feature, and the existingtype:axis already carries that distinction.Reuse
#006b75— the color repos already use forperformance 🚀— so migration is visually seamless.Plus the migration entry:
Scope
lib/labels.yml— canonical entry andlegacy_migrationsmapping.runbooks/labels.md— severity/modifiers list and legacy migration table.runbooks/triage.md— severity/modifiers table.Explicitly not
.github/lib/labels.yml. That file is a stale duplicate that the tooling does not read; adding to it would imply it is maintained. See #461.Alternative considered
Leave
performance 🚀as a permanent non-canonical local label. Rejected: the sync policy preserves unknown labels but never propagates them, so repos would keep diverging, and every new performance issue forces the same choice between an off-taxonomy label and no signal.