Skip to content

Commit 86e06dc

Browse files
Add Copilot instructions for PR labeling
We have no `.github/copilot-instructions.md`, so agents opening PRs have no guidance on labels. That matters because GitHub's auto-generated release notes categorize merged PRs by their `Issue-*` label (see `.github/release.yml`): `Issue-Enhancement` and `Issue-Bug` get their own sections, and everything else falls through the `"*"` catch-all into "Other Changes 🙏". A PR with no `Issue-*` label is silently miscategorized. This adds a short "Pull Request Labels" policy: every PR needs at least one `Area-*` label and exactly one `Issue-*` label, plus `OS-*` when relevant and `Ignore` to exclude from the changelog. It references `.github/release.yml` as the source of truth for the changelog mapping and tells readers to run `gh label list` for the authoritative label set rather than hard-coding one that will drift. Drafted by Copilot (Claude Opus 4.8). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 6ad4f46 commit 86e06dc

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

.github/copilot-instructions.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Copilot Repository Instructions
2+
3+
## Pull Request Labels
4+
5+
Every pull request **must** be labeled before it is opened so it is triaged
6+
correctly and lands in the right changelog section.
7+
8+
Each PR requires:
9+
10+
- **At least one `Area-*` label** describing the part of the codebase it touches
11+
(e.g. `Area-Debugging`, `Area-Language Server`, `Area-Workspaces`,
12+
`Area-Documentation`). This is used for triage and filtering.
13+
- **Exactly one `Issue-*` label** describing the kind of change:
14+
- `Issue-Bug` — a bug fix.
15+
- `Issue-Enhancement` — a new feature or changed behavior.
16+
- `Issue-Performance` — a performance improvement.
17+
18+
The `Issue-*` label is not optional: GitHub's auto-generated release notes use it
19+
to pick the changelog category. See [`.github/release.yml`](./release.yml) for the
20+
authoritative mapping (`Issue-Enhancement` → "Enhancements & Features ✨",
21+
`Issue-Bug` → "Squashed Bugs 🐛"). Any PR **without** an `Issue-*` label falls
22+
through the `"*"` catch-all into "Other Changes 🙏" and is silently
23+
miscategorized, so always set one correctly.
24+
25+
Additionally:
26+
27+
- Add the relevant **`OS-*` label** (`OS-Windows`, `OS-macOS`, `OS-Linux`) when a
28+
change is platform-specific.
29+
- Use the **`Ignore`** label only for changes that should be excluded from the
30+
release notes entirely (e.g. pure CI, test, or docs chores the maintainers do
31+
not want in the changelog). `.github/release.yml` excludes this label from the
32+
changelog.
33+
34+
The full, authoritative set of labels drifts over time — do not hard-code it
35+
here. List the current labels with `gh label list --repo PowerShell/PowerShellEditorServices`
36+
or the repo's [Labels page](https://github.com/PowerShell/PowerShellEditorServices/labels)
37+
and pick the closest matches.

0 commit comments

Comments
 (0)