Skip to content

chore: labels - Consolidate labels across GitHub and Linear [LABEL-UPDATE-REQUEST] #3834

Open

Description

@eleshar

Source of truth: .github/reports/audits/2026-09-14-label-audit/change-requests/label-update-request.md and evidence/linear-labels.json (merged in #3831). Follow-ups: #3832. Nothing is applied until a dated decision is recorded here.

Chore Summary

Approve the mapping that Stage 2 (the .github/labels.yml configuration PR, T059) and later stages apply. It covers 472 source labels and ends with 69 distinct targets. The type family ends at exactly 25.

Nothing changes until @ashleyshaw records a dated decision on this issue. Each repository's deletion has its own later gate (the deletion gate issue, T049).

Decisions needed

  1. Spec-listed rules (no judgement). The FR-011 prefix renames, the 32 FR-012 merges, the FR-015 re-prefixes and the team-scope labels follow the spec as written.
  2. Proposed by this mapping (spec is silent). The 39 merges and 14 gap entries below are judgement calls. Approve, or replace the target in a comment.

Linked Stories/Tasks

Mapping by action

rename (29)

Source Target Items Rule Notes
ai-ops:instructions aiops:instructions 0 FR-011
ai-ops:chat-modes aiops:chat-modes 0 FR-011
ai-ops:agents aiops:agents 0 FR-011
ai-ops:prompts aiops:prompts 0 FR-011
ai-ops:datasets aiops:datasets 0 FR-011
ai-ops:evaluations aiops:evaluations 0 FR-011
ai-ops:tools aiops:tools 0 FR-011
openspec:discovery spec:discovery 0 FR-011
openspec:planning spec:planning 0 FR-011
openspec:specification-in-progress spec:specification-in-progress 0 FR-011
openspec:specification-complete spec:specification-complete 0 FR-011
openspec:implementation-pending spec:implementation-pending 0 FR-011
openspec:implementation-in-progress spec:implementation-in-progress 0 FR-011
openspec:status-testing spec:status-testing 0 FR-011
openspec:status-production spec:status-production 0 FR-011
openspec:implementation-complete spec:implementation-complete 0 FR-011
openspec:implementation Undecided 0 FR-011 Family-prefix literal captured by the reference inventory; not a verified standalone-label alias. Inspected code identifies the implementation family through prefix matching, without establishing an in-progress step. Original proposal retained as history: target spec:implementation-in-progress; original note: “Used in files but not defined in labels.yml. Proposed rename to spec:implementation-in-progress: generic implementation stage.” This remains proposal history, not an approved destination. See the evidence qualification below.
openspec:specification Undecided 0 FR-011 Family-prefix literal captured by the reference inventory; not a verified standalone-label alias. Inspected code identifies the specification family through prefix matching, without establishing an in-progress step. Original proposal retained as history: target spec:specification-in-progress; original note: “Used in files but not defined in labels.yml. Proposed rename to spec:specification-in-progress: generic specification stage.” This remains proposal history, not an approved destination. See the evidence qualification below.
openspec:specification-pending Undecided 0 FR-011 The inspected definitions do not establish equivalence with planning. Canonical planning means an improvement plan is documented; historical specification-pending guidance variously describes a specification being needed, awaiting start, or awaiting review/approval. The state machine treats specification-pending as a distinct state. Original proposal retained as history: target spec:planning; original note: “Used in files but not defined in labels.yml. Proposed rename to spec:planning: specification not started yet; closest status is planning.” This remains proposal history, not an approved destination.
spec:001 spec-id:001 0 FR-011 Spec numbers move to spec-id:NNN so spec:* holds only status labels.
area/changelog area:changelog 0 FR-016 Same name as area:changelog apart from case or separator (1 public repository, 0 counted items (lower bound)).
area/security area:security 0 FR-016 Same name as area:security apart from case or separator (1 public repository, 0 counted items (lower bound)).
area/testing area:testing 0 FR-016 Same name as area:testing apart from case or separator (1 public repository, 0 counted items (lower bound)).
area/workflows area:workflows 0 FR-016 Same name as area:workflows apart from case or separator (1 public repository, 0 counted items (lower bound)).
priority/high priority:high 0 FR-016 Same name as priority:high apart from case or separator (1 public repository, 0 counted items (lower bound)).
priority/normal priority:normal 0 FR-016 Same name as priority:normal apart from case or separator (1 public repository, 0 counted items (lower bound)).
status/in-progress status:in-progress 0 FR-016 Same name as status:in-progress apart from case or separator (1 public repository, 0 counted items (lower bound)).
type/feature type:feature 0 FR-016 Same name as type:feature apart from case or separator (1 public repository, 0 counted items (lower bound)).
type/refactor type:refactor 0 FR-016 Same name as type:refactor apart from case or separator (1 public repository, 0 counted items (lower bound)).

merge (80)

Source Target Items Rule Notes
area:ci-cd area:ci 1 FR-012
type:content-model type:content-modelling 0 FR-012
type:ai-ops type:aiops 0 FR-012
area:docs area:documentation 1 FR-012
area:ops area:operations 0 FR-012
scope:website area:website 7 FR-012
scope: website area:website 1 FR-012
status:planned status:needs-planning 0 FR-012
status:planning status:needs-planning 1 FR-012
priority:medium priority:normal 81 FR-012
status:completed status:done 0 FR-012
status:resolved status:done 0 FR-012
area:tests area:testing 52 FR-012
area:quality area:qa 9 FR-012
status:no-issue-activity meta:no-issue-activity 3 FR-012
status:ready-for-development status:ready 14 FR-012
status:in-review status:needs-review 1 FR-012
lang:scss lang:css 36 FR-012
comp:workflows area:workflows 1 FR-012
area:platform area:infrastructure 2 FR-012
area:process area:governance 2 FR-012
area:standards area:governance 6 FR-012
area:pr-automation area:automation 2 FR-012
area:issue-management area:automation 4 FR-012
area:design area:design-system 4 FR-012
scope:audit meta:audit 3 FR-012
scope:project-management area:projects 2 FR-012
meta:documentation area:documentation 4 FR-012
meta:ai-ops area:ai 0 FR-012
area:agents aiops:agents 113 FR-012
area:instructions aiops:instructions 0 FR-012
area:prompts aiops:prompts 0 FR-012
type: feature type:feature 1 FR-014 Proposed (not listed in FR-012): spacing variant of type:feature; spacing variants are separate sources (FR-023 point 8). Needed so the type family ends at exactly 25.
type:build-ci type:ci 1 FR-014 Proposed (not listed in FR-012): Linear-only duplicate; FR-019 renames the Build & CI type to CI. Needed so the type family ends at exactly 25.
type:code-refactor type:refactor 3 FR-014 Proposed (not listed in FR-012): Linear-only duplicate; FR-019 renames the Code Refactor type to Refactor. Needed so the type family ends at exactly 25.
type:documentation type:docs 1 FR-014 Proposed (not listed in FR-012): Linear-only duplicate of type:docs. Needed so the type family ends at exactly 25.
bug type:bug 2 FR-012 Earlier bare-label mapping (#2523) names type:bug; labels.yml allows only the canonical label families, so this Linear label is merged, not imported (2 Linear issues).
epic type:epic 2 FR-012 Earlier bare-label mapping (#2523) names type:epic; labels.yml allows only the canonical label families, so this Linear label is merged, not imported (2 Linear issues).
security type:security 11 FR-012 Earlier bare-label mapping (#2523) names type:security; labels.yml allows only the canonical label families, so this Linear label is merged, not imported (11 Linear issues).
a11y type:a11y 0 FR-016 Earlier bare-label mapping (#2523) names type:a11y, which resolves to type:a11y (1 public repository, 0 counted items (lower bound)).
A11y type:a11y 0 FR-016 Earlier bare-label mapping (#2523) names type:a11y, which resolves to type:a11y (1 public repository, 0 counted items (lower bound)).
accessibility type:a11y 0 FR-016 Earlier bare-label mapping (#2523) names type:a11y, which resolves to type:a11y (1 public repository, 0 counted items (lower bound)).
area:accessibility area:a11y 1 FR-016 Proposed merge: area:a11y is described as "Accessibility (WCAG compliance)"; same family (1 public repository, 1 counted item (lower bound)). Change request #3834.
area/ci-cd area:ci 0 FR-016 Same name as area:ci-cd apart from case or separator, which resolves to area:ci (1 public repository, 0 counted items (lower bound)).
Chore type:chore 0 FR-016 Earlier bare-label mapping (#2523) names type:chore, which resolves to type:chore (1 public repository, 0 counted items (lower bound)).
ci area:ci 0 FR-016 Earlier bare-label mapping (#2523) names area:ci, which resolves to area:ci (1 public repository, 0 counted items (lower bound)).
component:ci area:ci 4 FR-016 Proposed merge: same family as comp:workflows (merged into area:*); area:ci is "Build and CI pipelines" (1 public repository, 4 counted items (lower bound)). Change request #3834.
component:workflows area:workflows 2 FR-016 Proposed merge: same family and word as comp:workflows, which FR-012 merges into area:workflows (1 public repository, 2 counted items (lower bound)). Change request #3834.
content area:content 0 FR-016 Earlier bare-label mapping (#2523) names area:content, which resolves to area:content (1 public repository, 0 counted items (lower bound)).
critical priority:critical 0 FR-016 Earlier bare-label mapping (#2523) names priority:critical, which resolves to priority:critical (1 public repository, 0 counted items (lower bound)).
dependencies area:dependencies 0 FR-016 Earlier bare-label mapping (#2523) names area:dependencies, which resolves to area:dependencies (38 public repositories, 0 counted items (lower bound)).
design type:design 0 FR-016 Earlier bare-label mapping (#2523) names type:design, which resolves to type:design (1 public repository, 0 counted items (lower bound)).
Documentation type:docs 0 FR-016 Earlier bare-label mapping (#2523) names type:documentation, which resolves to type:docs (1 public repository, 0 counted items (lower bound)).
duplicate status:duplicate 0 FR-016 Earlier bare-label mapping (#2523) names status:duplicate, which resolves to status:duplicate (2 public repositories, 0 counted items (lower bound)).
enhancement type:improve 0 FR-016 Earlier bare-label mapping (#2523) names type:improve, which resolves to type:improve (7 public repositories, 0 counted items (lower bound)).
feature type:feature 0 FR-016 Earlier bare-label mapping (#2523) names type:feature, which resolves to type:feature (1 public repository, 0 counted items (lower bound)).
help wanted contrib:help-wanted 0 FR-016 Earlier bare-label mapping (#2523) names contrib:help-wanted, which resolves to contrib:help-wanted (2 public repositories, 0 counted items (lower bound)).
Improvement type:improve 0 FR-016 Earlier bare-label mapping (#2523) names type:improve, which resolves to type:improve (1 public repository, 0 counted items (lower bound)).
infrastructure area:infrastructure 0 FR-016 Earlier bare-label mapping (#2523) names area:infrastructure, which resolves to area:infrastructure (1 public repository, 0 counted items (lower bound)).
invalid status:wontfix 0 FR-016 Earlier bare-label mapping (#2523) names status:wontfix, which resolves to status:wontfix (2 public repositories, 0 counted items (lower bound)).
meta:refactor type:refactor 1 FR-016 Proposed merge: same word as refactor and type/refactor, which already resolve to type:refactor (1 public repository, 1 counted item (lower bound)). Change request #3834.
migrate:ai-ops:agents aiops:agents 2 FR-016 migrate:* label; its name points to ai-ops:agents, which resolves to aiops:agents (1 public repository, 2 counted items (lower bound)).
migrate:area:tests area:testing 27 FR-016 migrate:* label; its name points to area:tests, which resolves to area:testing (1 public repository, 27 counted items (lower bound)).
migrate:type:investigation type:research 0 FR-016 migrate:* label; its name points to type:investigation, which resolves to type:research (1 public repository, 0 counted items (lower bound)).
migrate:type:ui type:design 0 FR-016 migrate:* label; its name points to type:ui, which resolves to type:design (1 public repository, 0 counted items (lower bound)).
needs-triage status:needs-triage 0 FR-016 Earlier bare-label mapping (#2523) names status:needs-triage, which resolves to status:needs-triage (1 public repository, 0 counted items (lower bound)).
observability area:observability 1 FR-016 Proposed merge: same word as area:observability, requested in #3554 for logs, metrics and traces (1 public repository, 1 counted item (lower bound)). Change request #3834.
performance type:performance 0 FR-016 Earlier bare-label mapping (#2523) names type:performance, which resolves to type:performance (1 public repository, 0 counted items (lower bound)).
Performance type:performance 0 FR-016 Earlier bare-label mapping (#2523) names type:performance, which resolves to type:performance (1 public repository, 0 counted items (lower bound)).
refactor type:refactor 0 FR-016 Earlier bare-label mapping (#2523) names type:refactor, which resolves to type:refactor (2 public repositories, 0 counted items (lower bound)).
release type:release 0 FR-016 Earlier bare-label mapping (#2523) names type:release, which resolves to type:release (1 public repository, 0 counted items (lower bound)).
Security type:security 0 FR-016 Same name as security apart from case or separator, which resolves to type:security (1 public repository, 0 counted items (lower bound)).
status: completed status:done 0 FR-016 Same name as status:completed apart from case or separator, which resolves to status:done (1 public repository, 0 counted items (lower bound)).
Task type:task 0 FR-016 Earlier bare-label mapping (#2523) names type:task, which resolves to type:task (1 public repository, 0 counted items (lower bound)).
test type:test 0 FR-016 Earlier bare-label mapping (#2523) names type:test, which resolves to type:test (3 public repositories, 0 counted items (lower bound)).
testing area:testing 0 FR-016 Earlier bare-label mapping (#2523) names area:tests, which resolves to area:testing (2 public repositories, 0 counted items (lower bound)).
type/documentation type:docs 0 FR-016 Same name as type:documentation apart from case or separator, which resolves to type:docs (1 public repository, 0 counted items (lower bound)).
ui type:design 0 FR-016 Earlier bare-label mapping (#2523) names type:ui, which resolves to type:design (1 public repository, 0 counted items (lower bound)).
ux type:design 0 FR-016 Earlier bare-label mapping (#2523) names type:ux-feedback, which resolves to type:design (1 public repository, 0 counted items (lower bound)).
wontfix status:wontfix 0 FR-016 Earlier bare-label mapping (#2523) names status:wontfix, which resolves to status:wontfix (2 public repositories, 0 counted items (lower bound)).

re-prefix (8)

Source Target Items Rule Notes
type:help type:task 0 FR-015
type:support type:task 0 FR-015
type:investigation type:research 0 FR-015
type:maintenance type:chore 10 FR-015
type:qa type:test 0 FR-015
type:ui type:design 0 FR-015
type:ux-feedback type:design 0 FR-015
type:integration type:feature 0 FR-015

swap (1)

Source Target Items Rule Notes
type:question retire 0 FR-014 Retired; open questions become Discussions (discussion:support) and closed ones are relabelled type:task + discussion:support before deletion. type:decision already holds its slot (Stage 0a).

team-scope (4)

Source Target Items Rule Notes
area:xero retire 1 FR-012 Project-specific; moved to a Linear team, not imported.
area:flow retire 11 FR-012 Project-specific; moved to a Linear team, not imported.
area:jobs retire 2 FR-012 Project-specific; moved to a Linear team, not imported.
area:monorepo retire 1 FR-012 Project-specific; moved to a Linear team, not imported.

import (41)

Source Target Items Rule Notes
area:builds new label 424 FR-012 Requested in #3554. Colour BFD4F2; description "Build configuration, tooling, packaging, and artefact generation; use area:ci for CI pipeline execution and checks.".
area:monitoring new label 8 FR-012 Requested in #3554. Colour 006B75; description "Operational checks, health monitoring, alerts, and failure detection; use area:observability for diagnostic telemetry and dashboards.".
area:observability new label 3 FR-012 Requested in #3554. Colour 006B75; description "Logs, metrics, traces, and dashboards used to understand and diagnose system behaviour; use area:monitoring for checks and alerts.".
area:workflows new label 12 FR-012 Requested in #3554. Colour 0F448A; description "Cross-cutting automated or operational workflow design and orchestration; use area:automation for scripts and automation implementation.".
meta:needs-approval new label 3 FR-012, FR-021 Requested in #3554. Colour 57606A; description "Explicit decision or sign-off required before the specified work proceeds; remove once the decision and approver are recorded.".
aiops:instructions new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the Linear label's own; description is Linear's own. Check both at approval. Change request #3834. Colour 0052CC; description "AI instruction docs".
aiops:tools new label 4 FR-012 Proposed: applied to 4 Linear issues. Colour is the Linear label's own; description is Linear's own. Check both at approval. Change request #3834. Colour BFD4F2; description "Tool/plugin manifests".
area:api new label 3 FR-012 Proposed: applied to 3 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Application programming interface work".
area:auth new label 6 FR-012 Proposed: applied to 6 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Authentication and authorisation work".
area:backend new label 24 FR-012 Proposed: applied to 24 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Backend application work".
area:changelog new label 7 FR-012 Proposed: applied to 7 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Changelog management".
area:communication new label 4 FR-012 Proposed: applied to 4 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Communication and notifications".
area:db new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Database work".
area:extension new label 5 FR-012 Proposed: applied to 5 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Extension development and maintenance".
area:frontend new label 22 FR-012 Proposed: applied to 22 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Frontend application work".
area:hosting new label 6 FR-012 Proposed: applied to 6 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Hosting configuration and operations".
area:labels new label 56 FR-012 Requested in #3757: colour and description as in the request, because the colour strategy has no rule for this label (FR-012, R16). Applied to 56 Linear issues; the Linear label is updated to match. Colour EDEDED; description "Label governance and routing".
area:mcp new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Model Context Protocol integrations".
area:migration new label 7 FR-012 Proposed: applied to 7 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Data, content, or system migration work".
area:projects new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Project planning and management".
area:reports new label 5 FR-012 Proposed: applied to 5 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Creating, presenting, or maintaining reports".
area:specification new label 40 FR-012 Proposed: applied to 40 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Technical specifications and requirements".
area:templates new label 11 FR-012 Proposed: applied to 11 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Reusable project and content templates".
area:website new label 106 FR-012 Proposed: applied to 106 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Website implementation and maintenance work".
comp:query-loop new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Query Loop block".
comp:readme-mermaid new label 3 FR-012 Proposed: applied to 3 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Mermaid diagrams in README files".
meta:aiops new label 1 FR-012 Proposed: applied to 1 Linear issue. Colour is the family default; description is a placeholder. Check both at approval. Change request #3834. Colour 57606A; description "Imported from Linear (1 issues); description to be written at approval.".
meta:audit new label 42 FR-012 Proposed: applied to 42 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Housekeeping metadata for audit work and findings".
meta:dependabot-security new label 1 FR-012 Proposed: applied to 1 Linear issue. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Dependabot update appears security-related and eligible for guarded automation".
meta:enhancement new label 4 FR-012 Proposed: applied to 4 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Housekeeping metadata for proposed enhancements".
meta:incident-report new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Incident report tracking".
meta:infrastructure-blocker new label 3 FR-012 Proposed: applied to 3 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Infrastructure dependency is blocking progress".
meta:needs-audit new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is a placeholder. Check both at approval. Change request #3834. Colour 57606A; description "Imported from Linear (2 issues); description to be written at approval.".
meta:needs-triage new label 1 FR-012 Proposed: applied to 1 Linear issue. Colour is the family default; description is a placeholder. Check both at approval. Change request #3834. Colour 57606A; description "Imported from Linear (1 issues); description to be written at approval.".
meta:refactor-rules new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Rules for refactoring work".
meta:release-plan new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Release planning and coordination".
meta:tech-debt new label 1 FR-012 Proposed: applied to 1 Linear issue. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Technical debt tracking".
meta:tracking new label 3 FR-012 Proposed: applied to 3 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Work requiring ongoing tracking and follow-up".
status:needs-analysis new label 3 FR-012 Proposed: applied to 3 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour BFD4F2; description "Analysis required before proceeding".
status:needs-cleanup new label 5 FR-012 Proposed: applied to 5 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour BFD4F2; description "Requires cleanup before proceeding".
status:needs-template-fix new label 207 FR-012 Proposed: applied to 207 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour BFD4F2; description "Issue template requires correction".

retire (62)

Source Target Items Rule Notes
openspec:domain retire 0 FR-011 Used in files but not defined in labels.yml. Proposed retirement: a namespace prefix used in examples (openspec:domain/governance), not a label.
openspec:priority retire 0 FR-011 Used in files but not defined in labels.yml. Proposed retirement: a namespace prefix used in examples (openspec:priority/medium), not a label.
openspec:status retire 0 FR-011 Used in files but not defined in labels.yml. Proposed retirement: a namespace prefix used in examples (openspec:status/production), not a label.
openspec:tracking retire 0 FR-011 Used in files but not defined in labels.yml. Proposed retirement: no spec status label matches tracking.
openspec:unknown retire 0 FR-011 Used in files but not defined in labels.yml. Proposed retirement: a placeholder value, not a label.
CI/CD retire 1 FR-012 Open decision: this Linear label does not use a canonical label family, and labels.yml cannot carry it as it is. Retirement is proposed, not decided; the closest label is area:ci (1 Linear issue).
Hosting retire 13 FR-012 Open decision: this Linear label does not use a canonical label family, and labels.yml cannot carry it as it is. Retirement is proposed, not decided; the closest label is area:hosting (13 Linear issues).
agent-audit retire 0 FR-012 Linear-only with zero issues; retire, not import.
aiops:agents retire 0 FR-012 Linear-only with zero issues; retire, not import.
aiops:chat-modes retire 0 FR-012 Linear-only with zero issues; retire, not import.
aiops:datasets retire 0 FR-012 Linear-only with zero issues; retire, not import.
aiops:evaluations retire 0 FR-012 Linear-only with zero issues; retire, not import.
aiops:prompts retire 0 FR-012 Linear-only with zero issues; retire, not import.
area:linting retire 0 FR-012 Linear-only with zero issues; retire, not import.
area:onboarding retire 0 FR-012 Linear-only with zero issues; retire, not import.
ci-runner-audit-2026-07-20 retire 13 FR-012 Open decision: this Linear label does not use a canonical label family, and labels.yml cannot carry it as it is. Retirement is proposed, not decided; no approved label matches it (13 Linear issues).
documentation retire 0 FR-012 Linear-only with zero issues; retire, not import.
harvest-parity retire 2 FR-012 Open decision: this Linear label does not use a canonical label family, and labels.yml cannot carry it as it is. Retirement is proposed, not decided; no approved label matches it (2 Linear issues).
important retire 0 FR-012 Linear-only with zero issues; retire, not import.
master-ci-red retire 8 FR-012 Open decision: this Linear label does not use a canonical label family, and labels.yml cannot carry it as it is. Retirement is proposed, not decided; no approved label matches it (8 Linear issues).
meta:analysis retire 0 FR-012 Linear-only with zero issues; retire, not import.
migrate:area:automation retire 162 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:area:ci retire 109 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:area:documentation retire 65 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:area:scripts retire 5 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:openspec:status/implementation retire 2 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:openspec:status/planning retire 4 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:openspec:status/production retire 1 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:openspec:status/testing retire 1 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:priority:critical retire 49 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:priority:important retire 112 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:priority:minor retire 1 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:priority:normal retire 288 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:status:needs-more-info retire 311 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:status:needs-triage retire 29 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:status:ready retire 58 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:a11y retire 0 FR-012 migrate:* labels are never imported.
migrate:type:ai-ops type:aiops 2 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run). For the GitHub dry run it migrates to type:aiops, the label its name points to after renames (FR-016).
migrate:type:audit retire 51 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:automation retire 39 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:bug retire 102 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:compatibility retire 1 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:documentation type:docs 1 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run). For the GitHub dry run it migrates to type:docs, the label its name points to after renames (FR-016).
migrate:type:epic retire 1 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:feature retire 84 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:improve retire 2 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:maintenance type:chore 11 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run). For the GitHub dry run it migrates to type:chore, the label its name points to after renames (FR-016).
migrate:type:refactor retire 19 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:security retire 5 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:task retire 287 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:test retire 30 FR-012 migrate:* labels are never imported; retired in Linear (kept as a per-repository migrate_to source in the FR-016 dry run).
migrate:type:ux-feedback type:design 0 FR-012 migrate:* labels are never imported. For the GitHub dry run it migrates to type:design, the label its name points to after renames (FR-016).
scope:restructuring retire 0 FR-012 Linear-only with zero issues; retire, not import.
spec:discovery retire 0 FR-012 Linear-only with zero issues; retire, not import.
spec:implementation-complete retire 0 FR-012 Linear-only with zero issues; retire, not import.
spec:implementation-in-progress retire 0 FR-012 Linear-only with zero issues; retire, not import.
spec:implementation-pending retire 0 FR-012 Linear-only with zero issues; retire, not import.
spec:planning retire 0 FR-012 Linear-only with zero issues; retire, not import.
spec:specification-complete retire 0 FR-012 Linear-only with zero issues; retire, not import.
spec:specification-in-progress retire 0 FR-012 Linear-only with zero issues; retire, not import.
spec:status-production retire 0 FR-012 Linear-only with zero issues; retire, not import.
spec:status-testing retire 0 FR-012 Linear-only with zero issues; retire, not import.

Evidence qualification — two generic family-prefix entries

This qualification applies only to openspec:specification and openspec:implementation.

Static inspection at repository commit b63f9bbb0c186f68b0a1cf6cad1b30c89be38f5c found family-prefix checks in phase detection and validation. These uses do not establish standalone aliases or an in-progress step.

Checks on 14 November 2026 found neither exact label definition in lightspeedwp/.github or the enumerated accessible Linear scopes, including archived labels. GitHub returned no exact-label issue or PR assignments. No exact Linear label IDs were available for assignment queries.

Historical standalone usage, deleted labels, inaccessible scopes and GitHub Discussion assignments remain unverified. The retained Items values of 0 are existing mapping evidence, not newly measured universal assignment counts. The retained Rule values of FR-011 preserve the existing references; they do not establish approval of either disputed mapping.

Both replacement mappings remain undecided. Assess consumer-prefix changes separately from label migration. Do not infer an in-progress destination, create replacement labels or approve retirement from these findings alone. The original targets and notes remain recorded in the table notes as proposal history.

Specification-pending mapping remains undecided. At inspected repository commit b63f9bbb0c186f68b0a1cf6cad1b30c89be38f5c, the canonical planning description requires an improvement plan to be documented. The historical specification-pending framework contains conflicting awaiting-start and awaiting-review/approval meanings.

These definitions do not justify a universal pending-to-planning collapse. Define the intended state, inspect affected assignments, and decide transition and rollback behaviour before approving a destination. The retained Items value of 0 is existing mapping evidence, not a fresh assignment count. No replacement namespace or destination is established by this qualification.

Assignment evidence — 15 November 2026

The destination for openspec:specification-pending remains Undecided.

In lightspeedwp/.github, the exact label exists with description “OpenSpec specification needed”, but complete open/closed issue and PR checks returned no assignments. In accessible Linear scopes, no exact definition was found; this is not a measured zero assignment count.

The exact spec:planning label has four GitHub issue assignments and four corresponding Linear issue assignments. Its Linear description is “Specification planning phase — improvement plan documented”. All four records contain documented improvement plans. Inspected content did not explicitly establish specification drafting still needed or specification review currently pending. Conflicting checked success criteria and unchecked deliverables do not establish completion.

These findings support the documented-plan interpretation of planning, but provide no assigned specification-pending examples against which to establish equivalence. They do not justify a universal pending-to-planning collapse.

Coverage limits: GitHub issue/PR enumeration was complete; all four assigned issue bodies and 15 comments were inspected. Discussions were unavailable. Linear checks covered 328 definitions across workspace and 15 accessible team scopes, including archived labels, and all four returned assignments. Stored Linear comment completeness was not independently confirmed. Deleted labels, inaccessible scopes, historical assignments, linked plans and execution evidence remain outside the verified coverage.

This addendum does not change historical mapping counts, approve a destination or authorise migration or implementation.

Gap entries needing a decision

Source Target Items Rule Notes
openspec:domain retire 0 FR-011 Used in files but not defined in labels.yml. Proposed retirement: a namespace prefix used in examples (openspec:domain/governance), not a label.
openspec:implementation Undecided 0 FR-011 Family-prefix literal captured by the reference inventory; not a verified standalone-label alias. Inspected code identifies the implementation family through prefix matching, without establishing an in-progress step. Original proposal retained as history: target spec:implementation-in-progress; original note: “Used in files but not defined in labels.yml. Proposed rename to spec:implementation-in-progress: generic implementation stage.” This remains proposal history, not an approved destination. See the evidence qualification below.
openspec:priority retire 0 FR-011 Used in files but not defined in labels.yml. Proposed retirement: a namespace prefix used in examples (openspec:priority/medium), not a label.
openspec:specification Undecided 0 FR-011 Family-prefix literal captured by the reference inventory; not a verified standalone-label alias. Inspected code identifies the specification family through prefix matching, without establishing an in-progress step. Original proposal retained as history: target spec:specification-in-progress; original note: “Used in files but not defined in labels.yml. Proposed rename to spec:specification-in-progress: generic specification stage.” This remains proposal history, not an approved destination. See the evidence qualification below.
openspec:specification-pending Undecided 0 FR-011 The inspected definitions do not establish equivalence with planning. Canonical planning means an improvement plan is documented; historical specification-pending guidance variously describes a specification being needed, awaiting start, or awaiting review/approval. The state machine treats specification-pending as a distinct state. Original proposal retained as history: target spec:planning; original note: “Used in files but not defined in labels.yml. Proposed rename to spec:planning: specification not started yet; closest status is planning.” This remains proposal history, not an approved destination.
openspec:status retire 0 FR-011 Used in files but not defined in labels.yml. Proposed retirement: a namespace prefix used in examples (openspec:status/production), not a label.
openspec:tracking retire 0 FR-011 Used in files but not defined in labels.yml. Proposed retirement: no spec status label matches tracking.
openspec:unknown retire 0 FR-011 Used in files but not defined in labels.yml. Proposed retirement: a placeholder value, not a label.
spec:001 spec-id:001 0 FR-011 Spec numbers move to spec-id:NNN so spec:* holds only status labels.
CI/CD retire 1 FR-012 Open decision: this Linear label does not use a canonical label family, and labels.yml cannot carry it as it is. Retirement is proposed, not decided; the closest label is area:ci (1 Linear issue).
Hosting retire 13 FR-012 Open decision: this Linear label does not use a canonical label family, and labels.yml cannot carry it as it is. Retirement is proposed, not decided; the closest label is area:hosting (13 Linear issues).
ci-runner-audit-2026-07-20 retire 13 FR-012 Open decision: this Linear label does not use a canonical label family, and labels.yml cannot carry it as it is. Retirement is proposed, not decided; no approved label matches it (13 Linear issues).
harvest-parity retire 2 FR-012 Open decision: this Linear label does not use a canonical label family, and labels.yml cannot carry it as it is. Retirement is proposed, not decided; no approved label matches it (2 Linear issues).
master-ci-red retire 8 FR-012 Open decision: this Linear label does not use a canonical label family, and labels.yml cannot carry it as it is. Retirement is proposed, not decided; no approved label matches it (8 Linear issues).

Proposed beyond the spec

Source Target Items Rule Notes
type: feature type:feature 1 FR-014 Proposed (not listed in FR-012): spacing variant of type:feature; spacing variants are separate sources (FR-023 point 8). Needed so the type family ends at exactly 25.
type:build-ci type:ci 1 FR-014 Proposed (not listed in FR-012): Linear-only duplicate; FR-019 renames the Build & CI type to CI. Needed so the type family ends at exactly 25.
type:code-refactor type:refactor 3 FR-014 Proposed (not listed in FR-012): Linear-only duplicate; FR-019 renames the Code Refactor type to Refactor. Needed so the type family ends at exactly 25.
type:documentation type:docs 1 FR-014 Proposed (not listed in FR-012): Linear-only duplicate of type:docs. Needed so the type family ends at exactly 25.
aiops:instructions new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the Linear label's own; description is Linear's own. Check both at approval. Change request #3834. Colour 0052CC; description "AI instruction docs".
aiops:tools new label 4 FR-012 Proposed: applied to 4 Linear issues. Colour is the Linear label's own; description is Linear's own. Check both at approval. Change request #3834. Colour BFD4F2; description "Tool/plugin manifests".
area:api new label 3 FR-012 Proposed: applied to 3 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Application programming interface work".
area:auth new label 6 FR-012 Proposed: applied to 6 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Authentication and authorisation work".
area:backend new label 24 FR-012 Proposed: applied to 24 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Backend application work".
area:changelog new label 7 FR-012 Proposed: applied to 7 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Changelog management".
area:communication new label 4 FR-012 Proposed: applied to 4 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Communication and notifications".
area:db new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Database work".
area:extension new label 5 FR-012 Proposed: applied to 5 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Extension development and maintenance".
area:frontend new label 22 FR-012 Proposed: applied to 22 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Frontend application work".
area:hosting new label 6 FR-012 Proposed: applied to 6 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Hosting configuration and operations".
area:mcp new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Model Context Protocol integrations".
area:migration new label 7 FR-012 Proposed: applied to 7 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Data, content, or system migration work".
area:projects new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Project planning and management".
area:reports new label 5 FR-012 Proposed: applied to 5 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Creating, presenting, or maintaining reports".
area:specification new label 40 FR-012 Proposed: applied to 40 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Technical specifications and requirements".
area:templates new label 11 FR-012 Proposed: applied to 11 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Reusable project and content templates".
area:website new label 106 FR-012 Proposed: applied to 106 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Website implementation and maintenance work".
comp:query-loop new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Query Loop block".
comp:readme-mermaid new label 3 FR-012 Proposed: applied to 3 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour C5DEF5; description "Mermaid diagrams in README files".
meta:aiops new label 1 FR-012 Proposed: applied to 1 Linear issue. Colour is the family default; description is a placeholder. Check both at approval. Change request #3834. Colour 57606A; description "Imported from Linear (1 issues); description to be written at approval.".
meta:audit new label 42 FR-012 Proposed: applied to 42 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Housekeeping metadata for audit work and findings".
meta:dependabot-security new label 1 FR-012 Proposed: applied to 1 Linear issue. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Dependabot update appears security-related and eligible for guarded automation".
meta:enhancement new label 4 FR-012 Proposed: applied to 4 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Housekeeping metadata for proposed enhancements".
meta:incident-report new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Incident report tracking".
meta:infrastructure-blocker new label 3 FR-012 Proposed: applied to 3 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Infrastructure dependency is blocking progress".
meta:needs-audit new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is a placeholder. Check both at approval. Change request #3834. Colour 57606A; description "Imported from Linear (2 issues); description to be written at approval.".
meta:needs-triage new label 1 FR-012 Proposed: applied to 1 Linear issue. Colour is the family default; description is a placeholder. Check both at approval. Change request #3834. Colour 57606A; description "Imported from Linear (1 issues); description to be written at approval.".
meta:refactor-rules new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Rules for refactoring work".
meta:release-plan new label 2 FR-012 Proposed: applied to 2 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Release planning and coordination".
meta:tech-debt new label 1 FR-012 Proposed: applied to 1 Linear issue. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Technical debt tracking".
meta:tracking new label 3 FR-012 Proposed: applied to 3 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour 57606A; description "Work requiring ongoing tracking and follow-up".
status:needs-analysis new label 3 FR-012 Proposed: applied to 3 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour BFD4F2; description "Analysis required before proceeding".
status:needs-cleanup new label 5 FR-012 Proposed: applied to 5 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour BFD4F2; description "Requires cleanup before proceeding".
status:needs-template-fix new label 207 FR-012 Proposed: applied to 207 Linear issues. Colour is the family default; description is Linear's own. Check both at approval. Change request #3834. Colour BFD4F2; description "Issue template requires correction".

Where the FR-015 labels live

FR-015 calls its eight type labels "Linear-only". Checked on 2026-10-06, all eight exist as live GitHub labels in lightspeedwp/.github (evidence/github-live-labels.json). In Linear only type:maintenance exists. Six complete team listings, the workspace listing and the Stage 1 export show none of the other seven. The GitHub team listing was cut off at 250, so that is not absolute. They are not imported into Linear (FR-015 and the 25-label type family), so each row is a GitHub re-prefix. The spec wording should say "GitHub" and not "Linear-only".

Label coverage across the organisation

Source: the weekly label drift check run of 2026-10-04 (283 repositories read, 59 skipped as archived or forks), kept in evidence/github-label-coverage.json. It lists 446 labels that exist in public repositories but not in labels.yml, and counts 57 more that exist only in private repositories and are not named here.

Every one of them now has a row (297 new rows for 446 names, the rest were already approved or mapped): 247 retire, 41 merge, 9 rename. A name that differs only in case or separator is renamed, the earlier bare-label mapping (#2523) is followed through the current renames, and every other label is retired with a stated reason. Run against the real tool, all 374 labels outside the approved set in lightspeedwp/.github have a row.

20 labels carry known items and have no target that the spec or the label documents define, so the tool lists them under needs_decision per repository, as FR-016 requires, until a target is chosen: area:monorepo, agent-audit, migrate:openspec:status/implementation, migrate:openspec:status/planning, migrate:openspec:status/production, migrate:openspec:status/testing, migrate:type:compatibility, ag-p14, ag-phase, bug-fix, code-quality, error-handling, logging, migrate:type:enhancement, phase-1-critical, phase-2-medium, phase-3-polish, phase:1, reliability, reviewer. The item counts are a lower bound, because the drift report caps counted rows.

The 2026-10-06 drift run reports the 85 active public repositories only and summarises the private ones, so it is not comparable; the 2026-10-04 run, which included the private repositories, is the inventory of record.

Impact

  • Items carrying a source label move to its target. Open items move first; closed items only where a target exists.
  • Retired labels are deleted only after the per-repository dry-run approval on the deletion gate issue.
  • Linear: label creation is restricted afterwards (T071), so the imports are the last new labels.

Platform checks (Linear documentation, read 2026-10-06)

  • Linear lets duplicate labels be merged into one and rescopes labels between workspace and team (Issue labels). The page does not say whether a merge works across a team label and a workspace label, so a merge row between the two is not confirmed as a native operation; see the team-scoped labels below.
  • Deleting a label removes it from every issue and cannot be undone; archiving keeps it on past issues and blocks new use. This matches the spec: Linear labels are retired (archived), never deleted.
  • Only one label from a label group can sit on an issue. A live read-only check on 2026-10-06 found no label groups in the workspace, so the type labels are flat and Linear does not enforce one type per issue. The "exactly one type:* per issue" rule must be enforced and verified by the consolidation tool (T064, T069), not assumed from Linear.
  • The same check confirmed that type: feature, type:build-ci and type:code-refactor are team-scoped (GIT team, 1, 1 and 3 issues in the export) and type:documentation is workspace-scoped. Counts are from the Stage 1 export and have since moved, so Stage 5 re-reads live counts before it writes.
  • Some labels in a merge row are team-scoped, so the merge target and source can sit in different scopes. security (merged into type:security, 11 issues) is three team labels, in the GIT, INF and LS teams (0, 4 and 7 issues in the export). Stage 5 relabels issue by issue by label ID and scope (T069a), which does not depend on a native merge across scopes. A native merge is used only if a test on a throwaway pair of labels shows it works. Converting the team labels to a workspace label is not used, because it would keep an unprefixed security label.
  • The GitHub issue sync is bidirectional and includes labels (GitHub Issues Sync). That is why the spec turns the sync off from Stage 3 to Stage 5 (T071, T083).
  • Issue label management can be limited to team owners (Teams), which is how T071 restricts label creation.

Approval

Reply on this issue with a comment starting Approved and the date. Edits to individual rows can be listed in the same comment.

Activity

  1. linear-code commented on Oct 6, 2026

    @linear-code
  2. eleshar commented on Oct 8, 2026

    @eleshar
    ContributorAuthor

    Status 2026-10-08 (develop). Common state: label mapping tooling is merged (#3820, #3839, #3850, #3854); the Stage 2 configuration PR (T059) is not open; .github/labels.yml on develop declares none of area:labels, meta:needs-approval or the five conflict-resolution labels; spec 008 tasks.md is 60 done, 46 open.

    Outstanding on this issue: a dated approval decision on the mapping (472 source labels, 69 targets), including the 39 merges and 14 gap entries marked Proposed beyond the spec. Nothing is applied until that decision is recorded. Follow-ups are tracked in #3832; the audit evidence was merged in #3831. Next step after approval: T059 (Stage 2 labels.yml PR), then T051, T055 to T058, T063, T064.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Fields

Priority

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions