Skip to content

Add Copilot instructions for PR labeling#2310

Open
andyleejordan wants to merge 1 commit into
mainfrom
andyleejordan/copilot-pr-label-instructions
Open

Add Copilot instructions for PR labeling#2310
andyleejordan wants to merge 1 commit into
mainfrom
andyleejordan/copilot-pr-label-instructions

Conversation

@andyleejordan

Copy link
Copy Markdown
Member

Why

PowerShellEditorServices has no .github/copilot-instructions.md, so Copilot agents (and humans) opening PRs get no guidance on labeling. This matters for the changelog: GitHub's auto-generated release notes categorize merged PRs by their Issue-* label, per .github/release.yml:

  • Issue-EnhancementEnhancements & Features ✨
  • Issue-BugSquashed Bugs 🐛
  • everything else → the "*" catch-all → Other Changes 🙏

So a PR with no Issue-* label is silently miscategorized into "Other Changes". Ignore excludes a PR from the changelog, and dependabot PRs are excluded by author.

What

Adds a focused "Pull Request Labels" policy stating every PR must carry at least one Area-* label and exactly one Issue-* label (Issue-Bug / Issue-Enhancement / Issue-Performance), with OS-* for platform-specific changes and Ignore to exclude from release notes.

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 Area-* set rather than hard-coding a list that will drift — so it does not duplicate existing config or CONTRIBUTING.

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>
@andyleejordan andyleejordan requested a review from a team as a code owner June 16, 2026 01:35
Copilot AI review requested due to automatic review settings June 16, 2026 01:35
@andyleejordan andyleejordan added Area-Documentation Issue-Enhancement A feature request (enhancement). labels Jun 16, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new .github/copilot-instructions.md file to provide Copilot agents (and human contributors) with guidance on how to label pull requests. The labels drive GitHub's auto-generated release notes via .github/release.yml, so correct labeling is important for changelog accuracy.

Changes:

  • Introduces a labeling policy requiring at least one Area-* label, exactly one Issue-* label, and optionally OS-* or Ignore labels.
  • Documents the connection between Issue-* labels and the changelog categories defined in .github/release.yml.
  • Points readers to gh label list and the repo's Labels page for the current label set, avoiding hard-coded lists that could drift.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +13 to +23
- **Exactly one `Issue-*` label** describing the kind of change:
- `Issue-Bug` — a bug fix.
- `Issue-Enhancement` — a new feature or changed behavior.
- `Issue-Performance` — a performance improvement.

The `Issue-*` label is not optional: GitHub's auto-generated release notes use it
to pick the changelog category. See [`.github/release.yml`](./release.yml) for the
authoritative mapping (`Issue-Enhancement` → "Enhancements & Features ✨",
`Issue-Bug` → "Squashed Bugs 🐛"). Any PR **without** an `Issue-*` label falls
through the `"*"` catch-all into "Other Changes 🙏" and is silently
miscategorized, so always set one correctly.

@andyleejordan andyleejordan left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bah why can't I approve this myself it's just instructions I asked it to add. Please approve @SeeminglyScience or @JustinGrote

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area-Documentation Issue-Enhancement A feature request (enhancement).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants