mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-15 03:07:56 +01:00
## Summary of the Pull Request - Added new Copilot agent prompts in `.github/prompts/create-commit-title.prompt.md`, `.github/prompts/create-pr.prompt.md`, and `.github/prompts/fix-spelling.prompt.md` to streamline contributor workflows. - Refreshed `.github/copilot-instructions.md` with front matter and clarified build/test guidance. And added a new section titled `Language Style Rules` to help reduce style issues in auto-generated code. ## Screenshot a. For the new prompts, in VSCode, just type "/" and its name <img width="477" height="124" alt="image" src="https://github.com/user-attachments/assets/37c7330d-6fdc-45b4-9030-95920920c964" /> <img width="446" height="105" alt="image" src="https://github.com/user-attachments/assets/55d3bb49-46cc-4441-9fb5-fed3a22983d9" /> b. All the spelling check problem, PR description, Commit title, are generated and fixed by above prompts as demonstration (Except this section) ## PR Checklist - [x] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [x] **Tests:** N/A on doc updates. - [x] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx (N/A) ## Detailed Description of the Pull Request / Additional comments - Introduced prompt definitions so local tooling can generate commit titles, PR descriptions, and resolve spell-check alerts using consistent instructions. - Added GitHub CLI prerequisites inside `.github/prompts/fix-spelling.prompt.md` to ensure `gh` commands succeed for new contributors. - Converted `.github/copilot-instructions.md` to YAML-front-matter format while aligning headings and terminology with current contributor guidance. ## Validation Steps Performed - No automated tests were run; changes are documentation and configuration only.
3.4 KiB
3.4 KiB
description, applyTo
| description | applyTo |
|---|---|
| PowerToys AI contributor guidance. | pullRequests |
PowerToys - Copilot guide (concise)
This is the top-level guide for AI changes. Keep edits small, follow existing patterns, and cite exact paths in PRs.
Repo map (1-line per area)
- Core apps:
src/runner/**(tray/loader),src/settings-ui/**(Settings app) - Shared libs:
src/common/** - Modules:
src/modules/*(one per utility; Command Palette insrc/modules/cmdpal/**) - Build tools/docs:
tools/**,doc/devdocs/**
Build and test (defaults)
- Prerequisites: Visual Studio 2022 17.4+, minimal Windows 10 1803+.
- Build discipline:
- One terminal per operation (build -> test). Do not switch or open new ones mid-flow.
- After making changes,
cdto the project folder that changed (.csproj/.vcxproj). - Use scripts to build, synchronously block and wait in foreground for completion:
tools/build/build.ps1|.cmd(current folder),build-essentials.*(once per brand new build for missing nuget packages). - Treat build exit code 0 as success; any non-zero exit code is a failure. Read the errors log in the build folder (such as
build.*.*.errors.log) and surface problems. - Do not start tests or launch Runner until the previous step succeeded.
- Tests (fast and targeted):
- Find the test project by product code prefix (for example FancyZones, AdvancedPaste). Look for a sibling folder or one to two levels up named like
<Product>*UnitTestsor<Product>*UITests. - Build the test project, wait for exit, then run only those tests via VS Test Explorer or
vstest.console.exewith filters. Avoiddotnet testin this repo. - Add or adjust tests when changing behavior; if skipped, state why (for example comment-only or string rename).
- Find the test project by product code prefix (for example FancyZones, AdvancedPaste). Look for a sibling folder or one to two levels up named like
Pull requests (expectations)
- Atomic: one logical change; no drive-by refactors.
- Describe: problem, approach, risk, test evidence.
- List: touched paths if not obvious.
When to ask for clarification
- Ambiguous spec after scanning relevant docs (see below).
- Cross-module impact (shared enum or struct) not clear.
- Security, elevation, or installer changes.
Logging (use existing stacks)
- C++ logging lives in
src/common/logger/**(Logger::info,Logger::warn,Logger::error,Logger::debug). Keep hot paths quiet (hooks, tight loops). - C# logging goes through
ManagedCommon.Logger(LogInfo,LogWarning,LogError,LogDebug,LogTrace). Some UIs use injectedILoggerviaLoggerInstance.Logger.
Docs to consult
tools/build/BUILD-GUIDELINES.mddoc/devdocs/core/architecture.mddoc/devdocs/core/runner.mddoc/devdocs/core/settings/readme.mddoc/devdocs/modules/readme.md
Language style rules
- Always enforce repo analyzers: root
.editorconfigplus anystylecop.json. - C# code follows StyleCop.Analyzers and Microsoft.CodeAnalysis.NetAnalyzers.
- C++ code honors
.clang-formatplus.clang-tidy(modernize/cppcoreguidelines/readability). - Markdown files wrap at 80 characters and use ATX headers with fenced code blocks that include language tags.
- YAML files indent two spaces and add comments for complex settings while keeping keys clear.
- PowerShell scripts use Verb-Noun names and prefer single-quoted literals while documenting parameters and satisfying PSScriptAnalyzer.
Done checklist (self review before finishing)
- Build clean? Tests updated or passed? No unintended formatting? Any new dependency? Documented skips?