Skip to content

Standardize org label taxonomy for triage and tracker workflows #411

@ss-o

Description

@ss-o

Summary

The new AGENTS.md and runbooks/triage.md establish a cleaner triage model based on work type, area, and severity, but the current org label set in .github/lib/labels.yml still mixes legacy names, overlapping concepts, and inconsistent prefixes.

Scope

  • review the current labels in .github/lib/labels.yml
  • define the target taxonomy for type, area, severity, and workflow modifiers
  • decide which legacy labels stay, which are aliased temporarily, and which are retired
  • document how tracker fields map to the triage model
  • define the gh/API-based rollout process for updating labels across org repositories

Why this is separate

This should not be changed piecemeal inside unrelated doc or workflow work. It affects org-wide issue hygiene and should be reviewed as an explicit maintenance task.

Completed

Completed via the existing label taxonomy/runbook work plus follow-up fix in #431.

Evidence:

  • lib/labels.yml defines the canonical taxonomy: 31 labels across work type, area, severity/workflow modifiers, tracker automation, and retained automation labels.
  • lib/labels.yml defines 30 legacy migrations and sync policy guardrails.
  • runbooks/labels.md documents canonical groups, legacy retirement, safe cleanup order, dry-run commands, and apply-mode pilot guardrails.
  • runbooks/triage.md maps work type, area, severity/modifier labels, and tracker fields.
  • scripts/labels-sync.rb implements read-only dry-run, JSON output, pilot-gated apply preview/apply, and no-delete behavior for legacy/unknown labels.
  • fix(labels): support older Ruby hash iteration #431 fixed Ruby compatibility in the label sync script so the documented dry-run works in the maintainer environment.

Verification after #431:

  • ruby -c scripts/labels-sync.rb
  • YAML shape check: 31 canonical labels and 30 legacy migrations, no duplicate canonical label names.
  • scripts/labels-sync.rb --repo z-shell/.github --include-clean
    • read-only dry-run
    • repos scanned: 1
    • repos with drift: 0
    • z-shell/.github clean

Org-wide rollout remains intentionally pilot-gated by runbooks/labels.md and scripts/labels-sync.rb; this issue covered defining and verifying the taxonomy and process, not mutating every repository label set.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:metaOrganization-wide policy, templates, or meta-repo work.meta:org-trackedAuto-add this issue to the org-wide Z-Shell Tracker.type:maintenanceNon-feature maintenance, cleanup, or org work.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions