Skip to content

chore(labels): add performance to the canonical label set#463

Merged
ss-o merged 2 commits into
mainfrom
feature-462
Jul 21, 2026
Merged

chore(labels): add performance to the canonical label set#463
ss-o merged 2 commits into
mainfrom
feature-462

Conversation

@ss-o

@ss-o ss-o commented Jul 21, 2026

Copy link
Copy Markdown
Member

Closes #462.

Problem

Repos across the org carry a local performance 🚀 label (#006b75) with no canonical equivalent and no legacy_migrations entry. sync_policy therefore treats it as an unknown local label: preserved on the issues that have it, but never migrated, and never created in repos that lack it.

Surfaced while relabelling z-shell/zsh-fancy-completions#47. The migration table cleanly resolved bug 🐞, ci 🤖, enhancement ✨, and plugin ⚙️; performance 🚀 had nowhere to go. That left two related issues inconsistent — #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 form to a new issue would reintroduce exactly what the taxonomy exists to remove.

Change

Adds performance as a severity/modifier, alongside regression, security, and breaking-change. Those mark cross-cutting concerns rather than work types, which is the right shape here: performance work can be a bug, a maintenance task, or a feature, and the type: axis already carries that distinction.

- name: performance
  color: "006b75"
  description: Performance-sensitive work or a measured regression in speed or memory.

Colour reuses the #006b75 repos already apply, so migrating an existing label is visually seamless and a later sync is a no-op.

Also updates the two human enumerations that define the canonical set — runbooks/labels.md (modifiers list and legacy migration table) and runbooks/triage.md (severity table). A canonical label missing from the canonical-labels runbook is only half-added.

Two commits, deliberately

lib/labels.yml predates Prettier, so touching it triggers a quote-style rewrite on 8 unrelated lines. Per CLAUDE.md ("separate mechanical cleanup from behavioral change") that churn is isolated in dbfd9ce, leaving the second commit a clean 7-line addition. Review 22e0507 for the actual decision.

.github/lib/labels.yml is deliberately untouched

That second copy is a stale duplicate the tooling does not read — scripts/labels-sync.rb uses DEFAULT_LABELS_FILE = lib/labels.yml. It is missing legacy_migrations, sync_policy, and the automation labels, and its meta:org-tracked description still describes the retired GitHub Projects tracker. Adding one label to it would imply it is maintained.

Filed separately as #461, including the detail that all 8 documentation references point at the stale copy — so a maintainer who follows the runbook edits a dead file and their change silently does nothing.

Verification

scripts/labels-sync.rb --repo z-shell/zsh-fancy-completions now reports, where it previously reported neither:

Canonical labels: 32          (was 31)
Legacy migrations: 31         (was 30)
### Would create
- performance
### Legacy labels present
- performance 🚀 -> performance

trunk check --filter=prettier,markdownlint clean on all three files.

Follow-up

Once merged, performance should be created in z-shell/zsh-fancy-completions and applied to #47 (replacing the legacy label) and #49.

🤖 Generated with Claude Code

ss-o added 2 commits July 21, 2026 16:57
Prettier rewrites the single-quoted colour values to double quotes. The
file predates the formatter, so this churn would otherwise land inside
an unrelated change and obscure it.

Mechanical only — no label, colour, or mapping is altered.
Repos carry a local `performance 🚀` label (#006b75) with no canonical
equivalent and no legacy_migrations entry, so sync_policy classifies it
as an unknown local label: preserved, but never migrated and never
created where it is missing.

Surfaced while relabelling z-shell/zsh-fancy-completions#47. The
migration table resolved every other legacy label on it; this one had
nowhere to go. The result was an inconsistency between two related
issues — #47 kept the legacy label, while the benchmark issue supporting
it carried no performance signal at all, because applying the legacy
form to a new issue would reintroduce exactly what the taxonomy exists
to remove.

Added as a severity/modifier alongside regression, security, and
breaking-change. Those mark cross-cutting concerns rather than work
types, which is the right shape: performance work can be a bug, a
maintenance task, or a feature, and the type: axis already carries that.

Colour reuses the #006b75 that repos already apply, so migrating an
existing label is visually seamless.

.github/lib/labels.yml is deliberately untouched — it is a stale
duplicate that the tooling does not read. See #461.

Closes #462
@ss-o
ss-o requested a review from a team as a code owner July 21, 2026 16:01
Copilot AI review requested due to automatic review settings July 21, 2026 16:01
@ss-o ss-o added type:maintenance Non-feature maintenance, cleanup, or org work. area:meta Organization-wide policy, templates, or meta-repo work. labels Jul 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new canonical severity/modifier label (performance) to the org label taxonomy so existing legacy performance 🚀 labels can be migrated consistently and the label can be created across repos during sync.

Changes:

  • Add canonical performance label definition to lib/labels.yml and map legacy performance 🚀 via legacy_migrations.
  • Update runbooks/labels.md to list performance among modifiers and document the legacy migration mapping.
  • Update runbooks/triage.md severity/modifiers table to include performance.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
runbooks/triage.md Adds performance to the severity/modifiers table for triage guidance.
runbooks/labels.md Documents performance in the canonical modifier set and legacy migration table.
lib/labels.yml Defines the canonical performance label and maps performance 🚀performance for migration.
Comments suppressed due to low confidence (1)

runbooks/labels.md:95

  • The runbook’s cleanup steps still direct maintainers to update .github/lib/labels.yml, but scripts/labels-sync.rb reads lib/labels.yml (see scripts/labels-sync.rb:18). With the new performance label added to the canonical set, these instructions can lead to editing the wrong (stale) file and a silent no-op when running the sync script.
| `performance 🚀`           | `performance`       |
| `invalid ⚠️`               | `invalid`           |

Also retire spaced namespace variants such as `type: bug`, `area: docs`, `priority: high`, and `status: triage`.

@ss-o
ss-o merged commit a4bd0f4 into main Jul 21, 2026
5 checks passed
@ss-o
ss-o deleted the feature-462 branch July 21, 2026 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:meta Organization-wide policy, templates, or meta-repo work. type:maintenance Non-feature maintenance, cleanup, or org work.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add 'performance' to the canonical label set

2 participants