Conversation
Adds a Copilot Agent Skill that analyzes VMR codeflow PR health: - Parses PR metadata (subscription ID, VMR commit, build info) - Checks VMR freshness (compares PR snapshot vs branch HEAD) - Detects Maestro staleness warnings - Analyzes PR commits (auto-updates vs manual) - Traces specific fixes through VMR pipeline (-TraceFix) - Provides actionable recommendations with darc commands
There was a problem hiding this comment.
Pull request overview
Adds a new Copilot Agent Skill (vmr-codeflow-status) to automate health analysis of VMR backflow/codeflow PRs by querying GitHub PR metadata, VMR branch freshness, Maestro staleness warnings, and (optionally) tracing whether a specific fix has flowed through VMR.
Changes:
- Introduces a PowerShell script to analyze codeflow PR freshness, staleness, commit makeup, and optional fix tracing.
- Adds skill documentation (
SKILL.md) and a VMR/codeflow reference doc explaining concepts, metadata formats, and darc commands.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.
| File | Description |
|---|---|
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1 |
Implements the PR/VMR analysis logic and prints status + recommendations. |
.github/skills/vmr-codeflow-status/references/vmr-codeflow-reference.md |
Provides background/reference material for VMR codeflow concepts and tooling. |
.github/skills/vmr-codeflow-status/SKILL.md |
Defines the skill and documents usage parameters and interpretation. |
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
Bug fixes: - Use full SHAs in compare API calls (Get-ShortSha for display only) - Fix Write-Status 3rd arg bug that would throw on color parse - Remove dead code - Handle behind/diverged status in VMR compare, not just ahead - Remove extra frontmatter fields to match existing skills Simplifications: - Replace 3 separate REST calls with single gh pr view --json - Use raw content header for source-manifest.json (no Base64)
- Use merged_at instead of merged boolean for fix PR detection - URL-encode VMR branch names with / in API paths - Fix Accept header: application/vnd.github.raw (not raw+json) - Fix contradictory recommendation message to use compare status - Initialize behindBy/compareStatus at script scope
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
- Remove unused \ and \ variables - Join gh api / gh pr view output before ConvertFrom-Json for robustness
- Auto-detect flow direction from PR title - Backflow: 'Source code updates from dotnet/dotnet' (VMR -> product repo) - Forward flow: 'Source code updates from dotnet/<repo>' (repo -> VMR) - Adjust freshness comparison to use correct source repo - Use flow-aware labels (VMR Commit vs Source Commit, etc.)
7f18b9c to
3db9577
Compare
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
…g, fix forward-flow manifest branch
… detection, branch inference
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
|
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
…ensitive commit SHA parsing, align SKILL.md commands
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
.github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1
Outdated
Show resolved
Hide resolved
|
@copilot Check the codeflow status of dotnet/sdk#52727 using the vmr-codeflow-status skill in this PR branch. |
|
@copilot Run the script at .github/skills/vmr-codeflow-status/scripts/Get-CodeflowStatus.ps1 with -PRNumber 52727 -Repository 'dotnet/sdk' and post the output as a comment on this PR. Do not open a new PR or make any code changes. |
|
Observation: Coding agent doesn't support diagnostic/reporting skills We tested invoking this skill via The Agent Skills documentation says:
And:
The coding agent likely does load the skill and may even run the script internally, but its only output mechanism is opening a PR with code changes. There's no way for it to "just report back" with diagnostic output in a comment. This creates a gap for diagnostic/reporting skills (like this codeflow status tool) that are designed to analyze and report rather than modify code. These skills work great in the CLI and VS Code agent mode, but the coding agent can't use them effectively because:
Suggestion: The coding agent could support a "report" or "comment" action mode for skills that are diagnostic in nature, posting the script output as a PR/issue comment instead of always opening a new PR. |
|
Follow-up: #124129 promotes |
Summary
Adds a new Copilot Agent Skill (
.github/skills/vmr-codeflow-status/) that automates analysis of VMR codeflow PR health for dotnet repositories. Handles both backflow (VMR → product repos) and forward flow (product repos → VMR).What it does
PR Analysis Mode:
Missing Backflow Mode:
Example Prompts
Motivation
Investigating stale codeflow PRs is a common and tedious task — checking VMR freshness, finding staleness warnings, tracing whether specific fixes have flowed through. This skill automates the entire workflow and provides actionable darc commands.
Tested against 10+ codeflow PRs across dotnet/sdk, dotnet/runtime, dotnet/roslyn, dotnet/aspnetcore, and dotnet/dotnet on multiple branches (main, preview1, release/10.0.x).
Files
SKILL.md— Skill definition with frontmatter (matching existing skills in this repo)scripts/Get-CodeflowStatus.ps1— Main analysis script (~750 lines)references/vmr-codeflow-reference.md— Reference docs (VMR concepts, darc CLI, API endpoints)