Skip to content

chore: prepare area and topic labels for migration #5151

Open
1 of 1 issue completed
Open

Description

@purp

User Story

As an OpenShell maintainer, I need repository label definitions, routing support, and migration guidance prepared so that the shared labeling workflow can safely align current and potentially reopened work with the agreed taxonomy.

Description

#4863 merged on 2026-11-04 (UTC). Use the landed REVIEWERS.md as the baseline taxonomy: 5 areas and 20 topics, including topic:authnz and topic:ux. The agreed migration adds four SDK language topics (topic:sdk:go, topic:sdk:python, topic:sdk:rust, topic:sdk:typescript), and removes the broad topic:sdk, for 5 areas and 23 topics in the intended taxonomy. Prepare repository label definitions, retirement rules, routing support, and migration guidance for that taxonomy. Develop and review the mapping against actual affected items. This issue owns preparation; item-level migration belongs to the shared labeling/reconciliation path discussed below. The mapping is guidance for contextual examination, not an approved bulk transformation.

Include items regardless of open or closed state. Leave merged PRs and resolved issues unchanged where possible. An issue is resolved if any of the following applies:

  • It is closed as completed.
  • It has an attached merged PR that closed it.
  • Its author commented that they are closing it, including abandonment or displacement by another issue.
  • A maintainer commented that the project is not accepting the work.
  • A maintainer deliberately closed it as not_planned or duplicate, even without an explanatory comment.

Verify closure actor and reason. Deliberate maintainer not_planned/duplicate closure counts as resolution; stale-bot closure remains eligible unless other resolution evidence applies. Review author-only and unclear closures separately; do not silently guess when evidence is ambiguous. Record uncertain cases for human disposition. Treat PRs as merged based on their merge status, including merged PRs later reverted.

Delivery split and proposed faster path

  • chore: prepare area and topic labels for migration #5151 owns preparation: settle definitions/colors, establish the intended repository labels and retirement names after prerequisites pass, correct networking scope wording, support nested SDK topics in routing, verify automation compatibility, and hand off the agreed rules and review inventory. Preparation does not authorize changing label assignments on issues or PRs.
  • Proposed first delivery in PR feat(review): automatically label new PRs for accepted work #5260: consider extending its existing review-readiness workflow with a separate, reusable per-item label reconciler and an explicit invocation path for issues and PRs. Keep accepted_work.py read-only; label writes belong to the reconciler. Preview and review the initial results before application. This is a proposed scope extension, not a claim that feat(review): automatically label new PRs for accepted work #5260 already implements migration.
  • Backlog execution: after preparation and the initial reconciler land, invoke the same reconciler for each eligible backlog item. Enforce the shared accepted-work gate as well as this issue's resolved/merged exclusions. Items lacking acceptance remain deferred; force does not grant acceptance. Do not build a second bulk classification implementation. Re-read item contents, lifecycle state, and current labels; preserve unrelated labels and human-owned dispositions, record before/after results, and account for reviewer-routing notifications.
  • chore: create an invocable agent for workflow and topic labeling #5276 owns agent extraction and ongoing reconciliation: move classification/examination into an invocable labeling agent that the existing workflow can call, alongside authorized human/triager invocation. Retain the deterministic acceptance checks and safe application boundary as shared code. Use the migration inventory as a baseline and source of eval cases, not an unchecked execution manifest.

Keep classification/evidence collection separate from validation and label application in the initial implementation so extraction can replace the classifier without duplicating policy or mutation logic. Routine touches can invoke the reconciler through triagers or approved workflows; this does not authorize firing it on every edit or label change. New-issue invocation through intake/triage and the exact explicit-dispatch mechanism remain implementation details to settle in the receiving work.

Landed taxonomy

Areas represent OpenShell components or system boundaries; topics represent technical concerns across areas. Current #5276 classification policy requires exactly one primary area and any supported topics on both issues and PRs. Select the primary area for cross-component work; record ambiguous choices for review.

These concise descriptions are proposed GitHub label definitions derived from the landed roster, plus the agreed SDK language topics. Use the roster for full scopes; add support for the language topics through reviewed routing/roster changes before creating or applying them. Language topics route independently and do not require topic:sdk. Seed each language roster with the existing broad SDK reviewers; refine individual subscriptions in follow-on work. The broad topic:sdk is removed. For cross-SDK work, select each language topic supported by the contents.

Label Proposed description
area:build CI/CD workflows, releases, build targets, packaging, and artifact publication.
area:drivers Compute and secret drivers, host OS/architecture support, backend isolation, and lifecycle.
area:runtime Sandbox execution, isolation, supervision, policy enforcement, networking, and provider lifecycle.
area:enterprise Authentication, multitenancy, gateway interceptors, FIPS, and enterprise requirements.
area:platform SDKs, CLIs, APIs, gateway infrastructure, persistence, configuration, and session management.
topic:api Public APIs, gRPC/protobuf, SDK interfaces, versioning, compatibility, and API design standards.
topic:architecture System design, component boundaries, data/control flow, architectural decisions, and RFCs.
topic:authnz Authentication, authorization, identity, sessions, credential protection, and policy integrity.
topic:compliance FIPS, regulatory alignment, auditability, and standardization requirements.
topic:documentation Architecture docs, READMEs, project website updates, and automated documentation generation.
topic:dx Making OpenShell easy to contribute to for humans and agents.
topic:extensions Extension APIs and integration points, consistent design, and external use cases.
topic:gpu GPU scheduling, Kubernetes DRA, CDI, MIG, and hardware-accelerated runtime integration.
topic:kubernetes Kubernetes operators, CRDs, deployment controllers, and native Kubernetes API integration.
topic:mcp Model Context Protocol support, server/client implementations, and standard integration.
topic:networking General network transport, connectivity, and proxy behavior.
topic:observability Logs, metrics, traces, telemetry, dashboards, event correlation, and operational data export.
topic:operability Installing/configuring deployments, upgrades, backup/restore, diagnostics, and maintenance.
topic:performance Startup time, latency, throughput, overhead, scalability, benchmarking, and rate limiting.
topic:policy Policy authoring, validation, proving, distribution, enforcement, ergonomics, and hardening.
topic:reliability High availability, recovery, retries, graceful degradation, and correctness across restarts.
topic:sdk:go Go SDK implementation, maintenance, interfaces, and distribution.
topic:sdk:python Python SDK implementation, maintenance, interfaces, and distribution.
topic:sdk:rust Rust SDK implementation, maintenance, interfaces, and distribution.
topic:sdk:typescript TypeScript SDK implementation, maintenance, interfaces, and distribution.
topic:security Vulnerability management, security analysis/auditing, bypass detection, and abuse prevention.
topic:testing Unit, integration, regression, conformance, E2E tests, coverage, flakes, and test infrastructure.
topic:ux CLI commands/flags, help, errors/exit codes, human-readable output, TUI, and first-run experience.

Initial mapping for discussion

These are review rules based on the landed taxonomy and the prepared per-item inventory, not an approved bulk transformation. Preserve existing intended labels and unrelated labels. Select a single primary area on PRs; do not accumulate every candidate area or topic.

Existing label Candidate new labels or disposition
area:build Retain area:build when the work fits its scope.
area:cli, area:tui Review for area:platform; use topic:ux for product interaction and first-run experience. topic:dx concerns contributing.
area:cluster, area:compute Review for area:drivers and relevant runtime/hardware topics. Kubernetes integration can receive topic:kubernetes; CI/packaging may remain area:build, and gateway API machinery may belong to area:platform.
area:docs Use topic:documentation; choose an area from the content. Current #5276 policy requires exactly one primary area on both issues and PRs.
area:gateway Review the actual boundary: area:platform for gateway machinery, area:enterprise for enterprise requirements, area:runtime for runtime/provider behavior, or area:drivers for backend orchestration. Choose one primary area for PRs.
area:inference Review area:runtime for proxy execution or area:platform for gateway configuration/APIs; add topic:networking where applicable.
area:policy Use topic:policy; choose the primary area from the contents. Enforcement usually belongs to runtime, public policy APIs to platform, and enterprise permission modes may belong to enterprise.
area:providers, area:sandbox, area:supervisor Review for area:runtime; backend integration or gateway lifecycle work may instead belong to drivers/platform. Add only topics supported by the item.
area:sdk, area:sdk:go, area:sdk:python, area:sdk:rust, area:sdk:typescript Use area:platform and the supported topic:sdk:<lang> topics. Select each relevant language for cross-SDK work; the broad topic:sdk is removed.
topic:compatibility Use topic:api for API contract compatibility; choose area:drivers for backend/host compatibility, or another supported destination. Do not replace every compatibility label with API.
topic:l7 Review for topic:networking, topic:policy, or both based on the contents. Agreed: networking no longer excludes L7; no new L7 topic.
topic:networking, topic:observability, topic:security, topic:testing Retain matching labels when scopes fit; preserve unrelated labels.

Per-item migration review

Google Sheet: OpenShell #5151 — Label migration review

The paginated inventory contains 4,801 issues and PRs across open and closed states; 647 carry area/topic labels. The sheet contains full current label sets and proposed final label sets, with unrelated labels preserved.

  • 127 proposed changes: require review before execution.
  • 1 item needing a decision: VM/contianer manage through nixos module via microVM #1869 was closed by its author without a qualifying closure explanation. Keep it separate under the author-resolution rule. The maintainer-closure rule resolved 70 former holds; SDK language topics and routine compatibility mapping resolved the other eight.
  • 519 skipped or already matching items: retain associations; reasons and evidence are recorded.
  • 499 global rename effects: retirement would change displayed label names on these items, including resolved issues and merged PRs, without changing their label associations.

The sheet also contains label definitions, mapping decisions, retirement-only intermediate states, additions/removals relative to retirement, evidence links, review status, and a snapshot timestamp. Closure context was retrieved for all 139 closed, non-completed issues in the classified inventory. Deliberate maintainer not_planned/duplicate closures count as resolution without comments; author-only or unclear closures remain separate. Stale-bot closure alone is not resolution. Items without area/topic labels are counted but are outside this migration inventory.

This is a draft for review, not an execution manifest. Closure policy and SDK language discovery are settled in the sheet's Decision clusters tab. Remaining work includes colors, external automation, review of individual proposals, the author-only closure exception #1869, the networking wording correction, and nested SDK-topic routing/roster support. Re-read status and complete labels before any later execution; concurrent changes invalidate the row until reviewed again. No labels or reviewer requests were changed to prepare the sheet. No Google sharing permissions were changed.

Label preparation and retirement plan

Current phase: resolve inconsistencies and check automation before creating/updating label definitions or retiring labels. Do not change label assignments on any issue or PR.

Reconcile live definitions against the 28 intended active labels using a fresh preview from the fork-only tools branch; create missing definitions and update existing definitions in the later label-definition phase. Do not create the removed broad topic:sdk label. Do not migrate issue/PR label assignments in that phase.

Proposed colors, pending discussion: areas #6699CC (current area:docs blue), topics #B3D1EB (lighter related blue), retired labels #EDEDED (current test-label grey). No project color convention was found. Some other label families already use blue; prefixes remain the reliable category identifier.

Proposed retirement list (18 labels): prepend retired: to each full current name and set color to #EDEDED.

  • area:cli → retired:area:cli
  • area:cluster → retired:area:cluster
  • area:compute → retired:area:compute
  • area:docs → retired:area:docs
  • area:gateway → retired:area:gateway
  • area:inference → retired:area:inference
  • area:policy → retired:area:policy
  • area:providers → retired:area:providers
  • area:sandbox → retired:area:sandbox
  • area:sdk → retired:area:sdk
  • area:sdk:go → retired:area:sdk:go
  • area:sdk:python → retired:area:sdk:python
  • area:sdk:rust → retired:area:sdk:rust
  • area:sdk:typescript → retired:area:sdk:typescript
  • area:supervisor → retired:area:supervisor
  • area:tui → retired:area:tui
  • topic:compatibility → retired:topic:compatibility
  • topic:l7 → retired:topic:l7

Proposed retired description: “Retired; do not apply. See #5151 for item-specific migration to the current taxonomy.” Renaming preserves label associations but changes the displayed names/colors on historical issues and PRs too; explicitly account for that exception to leaving resolved/merged history unchanged. Review links and automation references before retirement. Renaming discourages reuse but does not prohibit it.

Do not delete labels during preparation. The earlier comment's suggestion to delete unused obsolete labels remains a discussion point; the current proposed plan renames all obsolete area/topic labels.

Context

  • feat(review): add area and topic reviewer rosters and routing #4863 has landed; use its baseline taxonomy plus the agreed SDK language topics. Do not introduce other taxonomy changes implicitly.
  • Agreed networking clarification: remove the L7 exclusion and reference from the roster description. The resulting topic:networking description is “General network transport, connectivity, and proxy behavior.” L7 is not excluded. Keep the existing per-item mapping of topic:l7 to topic:networking, topic:policy, or both; do not add a new topic.
  • Reviewer-routing automation may react to label changes on ready PRs. Assess and plan for notifications and review requests during migration.
  • Include a dry run or reviewable inventory showing proposed additions and removals, ambiguous cases, and skipped resolved/merged items. Keep a record sufficient to audit and reverse changes if needed. Recheck item status before applying changes to account for concurrent updates.

Comment follow-ups for discussion

  • Taxonomy, retirement, and migration spreadsheet: prepare a determinate per-item spreadsheet for issues and PRs before execution. Suggested columns: URL, item type/status, current labels, resolution evidence, proposed area/topics, additions/removals, rationale, ambiguity/disposition, reviewer signoff, and skipped reason. Agreed: language topics work independently, each initially carrying a copy of the broad SDK reviewers; individual subscriptions will be refined afterward.
  • User experience versus developer experience: incorporated the landed topic:ux into the taxonomy and CLI/TUI mapping. topic:dx concerns contributing; topic:operability concerns running installations. Inspect first-run issues for overlap rather than applying all three automatically.
  • Missing label descriptions: audit definitions across all label families, including state:validated. Propose descriptions from documented semantics and maintainer intent before editing them; this does not authorize state/disposition changes or expand the area/topic item migration.

Automation audit before label-definition changes

Audited upstream main at d7da0c7da and a live snapshot of all open PRs on 2026-11-04 (UTC). This was read-only: no issue/PR label assignments, reviewer requests, or repository labels were changed.

Repository automation

  • Searched the tracked repository, including GitHub workflows/actions, scripts, templates, public skills, and contributor skills, for literal/URL-encoded area/topic references. No retiring label names are hard-coded in active automation.
  • Reviewer routing selects labels by the area: and topic: prefixes, requires exactly one recognized area, and rejects unknown area/topic labels. retired:area:... and retired:topic:... are ignored. Retirement therefore does not supply a replacement primary area.
  • The routing workflow listens for PR opening/ready-for-review and area/topic application/removal. It does not subscribe to repository label: edited events. Do not rely on label-definition edits to reconcile reviewer requests. GitHub documents repository label events separately from label assignment events.
  • Required CI/E2E gates use test:*; intake uses state:triage-needed; acceptance uses state:accepted; stale handling uses state/lifecycle/roadmap labels. These names are unchanged. Copy-pr-bot and Dependabot repository configuration contain no area/topic dependency.
  • The effective main rules inspected require Branch Checks, Helm Lint, E2E, and GPU E2E; Review Readiness is not in that required-status-check list. Routing failures still matter for reviewer assignment.
  • Current upstream includes fix(review): route reviewers without requiring write access #5257: reviewers no longer need repository write access. Account for the current routing behavior when planning migration notifications.

Offline rename simulation

Read all 243 open PRs, including 196 ready PRs. Sixteen open PRs carry retiring labels; 15 are ready for review. Applied only the proposed name substitutions in memory and called the upstream routing selector before/after.

  • No ready PR transitions from valid routing to invalid routing in this snapshot.
  • No affected ready PR becomes valid merely through retirement.
  • All 15 affected ready PRs already fail the selector. Example: refactor(credentials): move embedded refresh execution into issuer #5283 has area:gateway, which currently fails as an unknown area; after retirement it would fail for having no active area.
  • This is selector validation, not a live workflow run or API request simulation. Recheck the inventory immediately before retirement. Old labels and missing areas remain a migration concern even without a newly introduced failure.

SDK language topic routing prerequisite

Agreed topic names: topic:sdk:go, topic:sdk:python, topic:sdk:rust, and topic:sdk:typescript, independently of topic:sdk. These are intended classification/subscription labels; no repository labels have been created.

The current roster parser accepts only one colon in a category name. An offline check confirmed topic:sdk:go fails that grammar and reviewer selection reports unknown area/topic labels: topic:sdk:go, even alongside area:platform and topic:sdk. Add reviewed parser/routing and roster support, with appropriate validation and coverage, before creating or applying these labels. Seed each language section with a copy of the existing broad SDK reviewers as explicitly requested; solicit individual subscriptions as follow-on work.

Outstanding prerequisites

  • Networking scope decision resolved: remove “not covered by the more specialized L7 category” from REVIEWERS.md, leaving “General network transport, connectivity, and proxy behavior.” The proposed label definition above already matches. Apply the roster wording correction through a reviewed PR; the existing topic:l7 mapping remains unchanged.
  • Land nested SDK-topic routing/roster support before creating or applying the language labels.
  • Repository webhook enumeration returned HTTP 403 (Resource not accessible by personal access token). External bots, installed-app configuration, organization automation, and saved project-view filters have not been verified. Do not claim whole-project compatibility until those dependencies are checked.
  • Label-definition creation/description/color work is authorized after inconsistencies are resolved; retirement remains gated on automation compatibility. Do not change label assignments on issues or PRs in this phase.

Preparation implementation and current blockers

Repository-side prerequisites are implemented in PR #5503, closing preparation subtask #5502. This parent remains open until live definitions and external-automation verification are complete.

The PR now contains only permanent changes: nested topic routing, four independent language rosters copied from the existing SDK roster, the networking wording correction, SDK guidance, and regression tests. Its diff is limited to REVIEWERS.md, CONTRIBUTING.md, and the routing helper/tests. All 68 local routing/accepted-work tests pass; the fork-only tooling has 5 additional passing tests.

Fresh read-only preparation at 86acdf985 finds 20 creates, 9 updates, and 18 retirements. The original-definition backup and live preview are saved locally as /tmp/openshell-5151-live-definition-plan.json; regenerate the preview immediately before any live edits. Tracked workflows/scripts/templates/skills contain no hard-coded retiring names. A current snapshot contains 227 open PRs, 176 ready, and 9 ready PRs carrying retiring labels; simulated renames introduce no newly invalid routing states. This does not fix already-invalid classifications or prove external compatibility.

Outstanding prerequisites for live definition edits:

  • Merge the reviewed routing/roster support in chore(review): support independent SDK language reviewer topics #5503; do not apply nested SDK topics against the old routing code.
  • Verify external webhook/app/project-filter compatibility. Repository webhook enumeration still returns HTTP 403 (Resource not accessible by personal access token); the repository code audit cannot substitute for that check.
  • Review the catalog and refresh the preview before global edits. Preserve label IDs with in-place retirement, retain the original definitions, and verify final definitions and historical display effects. No repository labels or existing item assignments have been changed by this implementation.
  • The description audit also reports undefined non-classification labels: Feature, Improvement, feature request, gator:merge-ready, needs-rfc, rfc, roadmap, spike, state:community-review, state:in-review, state:validated, tech-debt, test-label, and tmp:migrate. These require reviewed meanings; the planner does not invent workflow-state definitions.

The older spreadsheet is a historical baseline, not a current execution manifest. #5276 now requires exactly one area on issues as well as PRs. The current labeling skill also requires verified stale-closure evidence; older unmarked bot closures may be held under the shared lifecycle rules. Refresh eligibility and proposed labels through the current shared helper before any later item-level migration.

Fork-only migration tooling and permanent PR boundary

The one-time migration catalog, preview script/tests, and runbook are on purp/label-migration-tools in purp/OpenShell. Fetch that branch locally to run the read-only definition preview. The helper still has no apply mode. Do not merge these tools upstream and do not plan a merge-then-remove cleanup cycle.

Draft PR #5503 now includes only enduring pre-migration changes: reviewer routing/parser support and regression tests, the networking scope correction and copied language reviewer rosters, and permanent SDK guidance. Tool-only CODEOWNERS entries, CI wiring, and the contributor runbook link have been removed from the PR.

The broad topic:sdk category is removed entirely in favor of SDK language labels. Each language section starts with the same four reviewers as the broad SDK section; individual subscriptions are follow-on work. #5276 and the classifier validation in #5355 must follow this independent-topic rule, replacing the earlier broad-plus-language requirement. The historical spreadsheet proposals require refresh under this rule before execution.

SDK language-only taxonomy decision

The broad topic:sdk is removed from the intended taxonomy, REVIEWERS.md, and CONTRIBUTING.md. The active SDK topics are Go, Python, Rust, and TypeScript; cross-SDK work receives the relevant language topics supported by the item contents. Each language roster retains the four copied reviewers; individual subscriptions follow separately.

The fork-only catalog now contains 28 active definitions and 19 retirement candidates, including topic:sdk if it exists live. An absent retired label is not created. Previous audit counts and spreadsheet proposals predate this decision; regenerate the definition preview and refresh item proposals before application. #5355/#5276 must remove the parent-topic validation requirement and must not introduce a broad SDK label.

Definition of Done

  • Reconcile the intended taxonomy and initial mapping with the landed feat(review): add area and topic reviewer rosters and routing #4863, including topic:authnz and topic:ux.
  • Agree to remove the obsolete L7 exclusion/reference from the networking description; preserve the existing per-item L7 mapping.
  • Apply the agreed networking wording correction to REVIEWERS.md through a reviewed PR.
  • Agree that deliberate maintainer not_planned/duplicate closure is resolution without a comment; stale-bot closure stays eligible absent other resolution evidence, with author-only/unclear closures checked separately.
  • Agree to independent SDK language topics, each initially seeded with the broad SDK reviewers; the parent topic is not required.
  • Add reviewed nested SDK-topic routing/roster support before label creation or application.
  • Review proposed definitions, colors, retirement list, and remaining mapping ambiguities.
  • Audit missing/unclear descriptions across label families and review proposed definitions.
  • Establish the intended labels and prevent further use of retired labels without inadvertently stripping labels from historical items.
  • Hand off the inventory, resolution rules, acceptance-gate requirement, and remaining exceptions to the shared reconciler delivery work.
  • Document the required preview/review, status/label rechecks, audit record, and reviewer-routing side effects for the receiving implementation.
  • Link the receiving workflow/reconciler delivery and chore: create an invocable agent for workflow and topic labeling #5276 extraction work; item-level migration is executed through that shared path, not in this preparation issue.
  • Report preparation completion and outstanding blockers; transfer coverage, skips, exceptions, and execution tracking to the receiving reconciliation work.

Activity

  1. purp commented on Nov 2, 2026

    @purp
    CollaboratorAuthor

    Assume that the taxonomy in #4863 is final. There may be future modifications, but that's a problem for future us.

    I think retired labels could just be prefixed retired:* in all cases and change color to dark grey or something. That would also avoid agent confusion when it decides to ignore instructions and go shopping for what's in the repo's history. We can remove any retiring area:* and topic:* labels that aren't in use.

    Given that many of the migrated labels will be case-by-case, we should prepare a per-issue migration spreadsheet that can be reviewed (agentically and perhaps by humans) so that we've got a determinate plan to execute rather than leaving it to the whim of the agent.

  2. rhuss commented on Nov 3, 2026

    @rhuss
    Contributor

    I'm wondering whether we can have a label topic:ux. We have topic:dx, but developer experience is something fundamentally different from user experience. Developer experience is about how easy it is to contribute to OpenShell, which is how #4863 defines it ("easy to contribute to for humans and agents"). User experience is about how OpenShell feels to the people (and agents) who drive it: whether the command grammar is consistent, whether flags are named predictably, and whether error messages and defaults make sense without reading the docs.

    That's why I'd change the mapping above: area:cli and area:tui don't really belong under topic:dx. topic:operability doesn't fit them either, since it covers installing, upgrading, and maintaining a deployment. For example, #4280 (inconsistent command grammar across subcommands) matches neither scope. It has gone stale without triage, which I think shows the routing gap.

    Scope I'd propose for topic:ux:

    • CLI command and flag design, naming, and consistency across subcommands
    • help text, error messages, exit codes, and output formats (human and machine readable)
    • TUI interaction design
    • the first-run path from install to a working sandbox

    Agents benefit as well: the public skills use the installed CLI help as their source of truth, so a consistent CLI is also easier for agents to use.

    On reviewers: I'm happy to be on the topic:ux roster. Since topics are cheap compared to areas, I think even a small roster is worth it, because otherwise these items land in area:platform next to persistence and API machinery.

  3. purp commented on Nov 3, 2026

    @purp
    CollaboratorAuthor

    I'll add that in #4863 and we should remap above accordingly.

  4. purp commented on Nov 4, 2026

    @purp
    CollaboratorAuthor

    We need to also true up existing label descriptions as noted by @elezar:

    I see my triage of an issue printed the following:

    Next human decision: a maintainer to record disposition. I did not change labels: state:validated has no description in the repo, so I can't confirm it is the right replacement for state:triage-needed.
    #5241 (comment)

    We probably need to just audit our label descriptions.

  5. changed the title [-]chore: migrate area and topic labels to the new taxonomy[/-] [+]chore: prepare area and topic labels for migration[/+] on Nov 5, 2026
  6. added
    state:acceptedA maintainer decided OpenShell should pursue this issue
    on Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions