← Docs hub

Issue triage

Audience: maintainers working through the inbox. Run /triage-issue <number> for a guided pass that applies the rules below automatically.

Triage runs at most once a day when the queue is active. The goal is to give every new issue a label, a milestone, and a priority within 24 hours — not to fully resolve it.

Label taxonomy

Type (required, pick one)

Priority (required, pick one — MoSCoW)

Layer (required — see docs/maintainers/ARCHITECTURE.md)

Supporting (optional)

Rules

1. Every issue gets a type label within 24h

If an issue has no type label, it's untriaged. Run the triage pass.

2. No issue without a priority

Even priority:wont is better than nothing — it means "we looked, we declined, go to DECLINED.md for the reason." Contributors shouldn't wonder whether their idea was read.

3. Layer is required for anything actionable

The only exceptions are question and epic. Even bug needs a layer so the right person picks it up.

Copy the summary into docs/maintainers/DECLINED.md with a date and a one-sentence rationale. This prevents the same idea being re-proposed in six months.

5. Duplicate detection before triage

Before labeling, search for duplicates:

gh issue list --search "<keywords from title>" --state all --limit 20

If it's a duplicate, close with a comment linking to the original.

Stale policy

Milestone assignment

Escalation

If an issue involves any of the following, flag it for maintainer attention immediately (don't wait for the next triage pass):