Add MSBuild quality review agentic workflow#8365
Open
YuliiaKovalova wants to merge 3 commits into
Open
Conversation
Adds a weekly agentic workflow that reviews all .props and .targets files for MSBuild authoring anti-patterns and correctness issues. Checks 21 rules across 5 categories: - Target authoring (DependsOn chains, Returns vs Outputs, FileWrites) - Property patterns (condition guards, unquoted conditions, path normalization) - Item management (Include/Remove/Update, cross-product batching) - Extension points (Exists() guards, NuGet layout, import guards) - NuGet build extension layout (buildTransitive forwarding, consistency) Creates issues for findings and draft PRs for safe fixes (adding condition guards, quoting conditions, Exists() guards, fixing paths). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds a new agentic workflow that periodically audits MSBuild .props and .targets files in the repository for authoring quality issues, classifies findings by severity, and optionally opens an issue or draft PR with results.
Changes:
- New workflow source
msbuild-quality-review.mddefining the agent prompt, scheduling, safe outputs, and review rules. - New generated lock file
msbuild-quality-review.lock.ymlcontaining the compiled GitHub Actions workflow.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
.github/workflows/msbuild-quality-review.md |
Agent definition with frontmatter (schedule, safe outputs, tools) and a multi-phase review prompt covering 21 MSBuild rules. |
.github/workflows/msbuild-quality-review.lock.yml |
Auto-generated compiled workflow YAML produced by gh aw compile. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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
Add this suggestion to a batch that can be applied as a single commit.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.Add this suggestion to a batch that can be applied as a single commit.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.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a weekly agentic workflow (
msbuild-quality-review.md) that systematically reviews all.propsand.targetsfiles in the repository for MSBuild authoring quality issues.What it does
.props/.targetsfiles, categorized by role (NuGet package extensions, SDK files, repo infra)[msbuild-quality]prefix, auto-expires in 7 days)Configuration
Motivation
The testfx repo ships ~90
.props/.targetsfiles in NuGet packages consumed by millions of developers. This workflow provides continuous quality monitoring against MSBuild canonical patterns, catching issues like:Exists()guards that break builds when files are absentDependsOnoverwrites that silently drop SDK targetsTest plan
Trigger manually via Actions tab to verify the workflow runs and produces a report.
This PR will be reverted after verifying the workflow.
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com