Summary
Create a Copilot Skill (under .github/skills/) that documents how to read GitHub issue-level custom fields (the new Type → Priority / Effort fields that appear on issues, distinct from Projects v2 fields and from labels).
Motivation
Triaging the NewApi-Net11 work relies on the Priority field (High/Medium/Low). These are not labels and not Projects v2 items, so the usual gh issue list --label ... and projectItems/projectV2 GraphQL paths do not surface them. Discovering the correct GraphQL shape took several introspection round-trips; a Skill would let the agent (and contributors) read/filter by these fields immediately.
What the Skill should document
The working GraphQL recipe on the Issue type:
issueType { name } — the Type (e.g. Bug).
issueFieldValues(first: N) { nodes { ... } } — the custom field values. Each node is a union IssueFieldValue with members:
IssueFieldSingleSelectValue (Priority/Effort): select value and field { ... on IssueFieldSingleSelect { name } }.
IssueFieldTextValue, IssueFieldNumberValue, IssueFieldDateValue, IssueFieldMultiSelectValue.
- The
field accessor is the union IssueFields (members IssueFieldSingleSelect, IssueFieldText, IssueFieldNumber, IssueFieldDate, IssueFieldMultiSelect) — you must use an inline fragment to read name.
Example query that returns Priority for an issue:
query {
repository(owner: "dotnet", name: "winforms") {
issue(number: 14795) {
number
issueType { name }
issueFieldValues(first: 20) {
nodes {
__typename
... on IssueFieldSingleSelectValue {
value
field { ... on IssueFieldSingleSelect { name } }
}
}
}
}
}
}
Returns: issueType.name = "Bug", and a node { value: "High", field: { name: "Priority" } }.
Acceptance criteria
- A
SKILL.md describing when to use this (filtering NewApi-Net11 work by Priority/Effort), the union shapes, the copy-paste GraphQL, and a batched multi-issue variant (aliased sub-selections) for reading many issues at once.
- A short note that
gh issue list --label cannot filter these fields, and that Projects v2 (projectItems) is a different mechanism.
Summary
Create a Copilot Skill (under
.github/skills/) that documents how to read GitHub issue-level custom fields (the newType→Priority/Effortfields that appear on issues, distinct from Projects v2 fields and from labels).Motivation
Triaging the
NewApi-Net11work relies on the Priority field (High/Medium/Low). These are not labels and not Projects v2 items, so the usualgh issue list --label ...andprojectItems/projectV2GraphQL paths do not surface them. Discovering the correct GraphQL shape took several introspection round-trips; a Skill would let the agent (and contributors) read/filter by these fields immediately.What the Skill should document
The working GraphQL recipe on the
Issuetype:issueType { name }— theType(e.g.Bug).issueFieldValues(first: N) { nodes { ... } }— the custom field values. Each node is a unionIssueFieldValuewith members:IssueFieldSingleSelectValue(Priority/Effort): selectvalueandfield { ... on IssueFieldSingleSelect { name } }.IssueFieldTextValue,IssueFieldNumberValue,IssueFieldDateValue,IssueFieldMultiSelectValue.fieldaccessor is the unionIssueFields(membersIssueFieldSingleSelect,IssueFieldText,IssueFieldNumber,IssueFieldDate,IssueFieldMultiSelect) — you must use an inline fragment to readname.Example query that returns Priority for an issue:
Returns:
issueType.name = "Bug", and a node{ value: "High", field: { name: "Priority" } }.Acceptance criteria
SKILL.mddescribing when to use this (filteringNewApi-Net11work by Priority/Effort), the union shapes, the copy-paste GraphQL, and a batched multi-issue variant (aliased sub-selections) for reading many issues at once.gh issue list --labelcannot filter these fields, and that Projects v2 (projectItems) is a different mechanism.