gh-labels · git:20261006.baec912 · 2026-10-06 · sha256 37887d19e380a085

gh-labels git:20261006.baec912A

Immutable. This exact content never changes and is served at /api/v1/blob/37887d19e380a085.

---
name: gh-labels
description: >-
  Reference for what GitHub issue/PR labels mean in this workspace (S-triage,
  S-needs-scope, S-impl, prio-p0-critical, A-ext-dev-tools, A-perf, A-ux, and
  others under My Labels). Use when the user asks what a label means, which
  label to apply, or how to add missing labels to a repo.
  Secondary: bootstrap labels on a new repo that does not have them yet.
---

# GitHub labels

Reference for **what labels mean**, then how to add them to a repo that does not
have them yet.

## My labels

Prefix convention:

- `S-*` labels describe issue status.
- `prio-p*` labels describe issue priority.
- `A-*` labels describe product or engineering areas.

### Status labels

- `S-triage`: (#F9D0C4) | Status: This issue is waiting on initial triage. More Info: https://tinyurl.com/25uty9w5
- `S-needs-scope`: (#f08583) | Needs someone to work further on the design for the feature or fix. NOT YET accepted.
- `S-impl`: (#04d0e4) | Status: Implementation-ready. Clear and fully specificed
- `S-blocked`: (#f08583) | Status: 🧱 Blocked by an external dependency or unresolved decision.
- `S-someday-maybe`: (#f08583) | Status: 🤔 Intentionally paused. Currently on hold or out of scope.

### Priority labels

- `prio-p0-critical`: (#aaeaec) | Priority: Critical or super urgent
- `prio-p1-high`: (#aaeaec) | Priority: High
- `prio-p2-normal`: (#aaeaec) | Priority: Normal
- `prio-p3-low`: (#aaeaec) | Priority: Low. Please focus on p2 or higher for now.

### Area labels

- `A-ext-dev-tools`: (#eab6cb) | Area: Tools built for developers outside the organization
  - Use for external SDKs, libraries, codegen, examples, and developer docs,
    such as the Nibiru TypeScript package `nibijs`.
  - A CLI or API does not qualify just because developers can use it. Check
    whether the work primarily serves external developers rather than internal
    operations or end-user flows.
- `A-perf`: (#eab6cb) | Area: End-user speed, throughput, latency, and work that measures or improves them
  - Includes block time, transaction throughput, caching, benchmarks, and
    observability tied to a performance goal.
- `A-tech-investment`: (#eab6cb) | Area: Internal work that helps the team ship faster
  - Includes CI, E2E tests, automation, AI workflows, team communication, and
    internal tools. Use label `A-perf` when the goal is end-user speed.
- `A-ops`: (#eab6cb) | Area: Operational work such as deployments, governance proposals, and bookkeeping
  - Use for carrying out on-chain deployments and governance actions. Work on
    deployment tooling belongs under label `A-tech-investment`.
- `A-ux`: (#eab6cb) | Area: Solve friction in apps and wallets; improve acquisition, activation, referrals, and retention
  - Use for solutions to friction users encounter in apps, wallets, or other
    flows, and for work geared toward user acquisition or activation, referrals,
    and retention.

When the user adds a standard label, append a bullet here with the same format:
`` `<name>`: (#<RRGGBB>) | <description> `` - Keep their description text verbatim.

## Add labels to a repo

Use this when a repo is missing labels from **My Labels**, or has stale
name/color/description.

1. **Pick the repo** — default: current git checkout. Otherwise `-R OWNER/REPO`.
2. **See what exists** — `gh label list` (add `-R` if needed).
3. **Rename the old area label if present** — rename `A-dev-tools` to
   `A-ext-dev-tools` in place with command `gh label edit --name` so existing issues
   retain the label. Update its description and color at the same time.
4. **Create only what is missing** — one `gh label create` per label from **My
   Labels**, using the exact description and color from the bullet.
5. **If the label already exists but is wrong** — rerun the same command with
   `--force` to update color and description without deleting the label.

Template (fill from the matching **My Labels** bullet):

```bash
gh label create "<name>" \
  --description "<description from My Labels>" \
  --color RRGGBB \
  --force
```

- **Color**: pass the 6-character hex **without** `#` to `gh label create`
  even though **My Labels** shows colors with `#` for editor highlighting.
- **`--force`**: safe when refreshing an existing label to match this reference;
  omit only if you want a hard failure on duplicate names.

### Install commands (copy-paste)

Run from a clone of the target repo, or add `-R OWNER/REPO` to each command.

```bash
gh label create "S-triage" \
  --description "Status: This issue is waiting on initial triage. More Info: https://tinyurl.com/25uty9w5" \
  --color F9D0C4 \
  --force

gh label create "S-needs-scope" \
  --description "Needs someone to work further on the design for the feature or fix. NOT YET accepted." \
  --color f08583 \
  --force

gh label create "S-impl" \
  --description "Status: Implementation-ready. Clear and fully specificed" \
  --color 04d0e4 \
  --force

gh label create "S-blocked" \
  --description "Status: 🧱 Blocked by an external dependency or unresolved decision." \
  --color f08583 \
  --force

gh label create "S-someday-maybe" \
  --description "Status: 🤔 Intentionally paused. Currently on hold or out of scope." \
  --color f08583 \
  --force

gh label create "prio-p2-normal" \
  --description "Priority: Normal" \
  --color aaeaec \
  --force

gh label create "A-ext-dev-tools" \
  --description "Area: Tools built for developers outside the organization" \
  --color eab6cb \
  --force

gh label create "A-perf" \
  --description "Area: End-user speed, throughput, latency, and work that measures or improves them" \
  --color eab6cb \
  --force

gh label create "A-tech-investment" \
  --description "Area: Internal work that helps the team ship faster" \
  --color eab6cb \
  --force

gh label create "A-ops" \
  --description "Area: Operational work such as deployments, governance proposals, and bookkeeping" \
  --color eab6cb \
  --force

gh label create "A-ux" \
  --description "Area: Solve friction in apps and wallets; improve acquisition, activation, referrals, and retention" \
  --color eab6cb \
  --force
```

For a repo that already has `A-dev-tools`, run this before the create commands:

```bash
gh label edit "A-dev-tools" \
  --name "A-ext-dev-tools" \
  --description "Area: Tools built for developers outside the organization" \
  --color eab6cb
```

## Optional: apply a label to an issue or PR

After labels exist on the repo:

```bash
gh issue edit <number> --add-label "S-triage"
gh pr edit <number> --add-label "S-needs-scope"
```

## Other `gh` label commands

```bash
gh label edit "<name>" --description "..." --color RRGGBB
gh label delete "<name>"
```