{{ message }}
Add Copilot instructions for PR labeling#2310
Open
andyleejordan wants to merge 1 commit into
Open
Conversation
Contributor
There was a problem hiding this comment.
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 oneIssue-*label, and optionallyOS-*orIgnorelabels. - Documents the connection between
Issue-*labels and the changelog categories defined in.github/release.yml. - Points readers to
gh label listand 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.
Sorry, something went wrong.
andyleejordan
commented
Jun 16, 2026
andyleejordan
left a comment
Member
Author
There was a problem hiding this comment.
Bah why can't I approve this myself it's just instructions I asked it to add. Please approve @SeeminglyScience or @JustinGrote
Sorry, something went wrong.
We had no `.github/copilot-instructions.md`, so agents working in this repo had to rediscover how to build and test, how the projects fit together, and how we label pull requests. This adds a single instructions file covering all of it: - **Build & Test** — `dotnet` directly for the fast inner loop versus `Invoke-Build` (which needs `InvokeBuild`/`platyPS`) for assembling the full module and running the complete CI suite. - **Architecture** — the project layout, key services, the LSP/DAP handler pattern, and how the server is wired up. - **Conventions** — C# style enforced by `.editorconfig`, the xUnit testing setup, and the multi-targeting story. - **Pull Request Labels** — every PR needs at least one `Area-*` label and exactly one `Issue-*` label (plus `OS-*` and `Ignore` when relevant). The `Issue-*` label is what GitHub's auto-generated release notes key off of (see `.github/release.yml`); a PR without one silently falls through to "Other Changes 🙏". The build, architecture, and conventions content previously rode along in #2298; consolidating it here keeps that PR focused on its LSP changes and gives us a single source of truth for the instructions. Drafted by Copilot (Claude Opus 4.8). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
86e06dc to
696233c
Compare
June 16, 2026 15:57
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.
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 theirIssue-*label, per.github/release.yml:Issue-Enhancement→ Enhancements & Features ✨Issue-Bug→ Squashed Bugs 🐛"*"catch-all → Other Changes 🙏So a PR with no
Issue-*label is silently miscategorized into "Other Changes".Ignoreexcludes a PR from the changelog, anddependabotPRs are excluded by author.What
Adds a focused "Pull Request Labels" policy stating every PR must carry at least one
Area-*label and exactly oneIssue-*label (Issue-Bug/Issue-Enhancement/Issue-Performance), withOS-*for platform-specific changes andIgnoreto exclude from release notes.It references
.github/release.ymlas the source of truth for the changelog mapping and tells readers to rungh label listfor the authoritativeArea-*set rather than hard-coding a list that will drift — so it does not duplicate existing config or CONTRIBUTING.