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:** 1. **Parses PR metadata** — Extracts VMR commit, subscription ID, build info from the PR body 2. **Validates snapshot** — Cross-references PR body commit against branch "Backflow from" commit messages to detect stale metadata 3. **Checks freshness** — Compares PR's snapshot against the current source branch HEAD, showing how many commits behind and which repos have updates 4. **Shows pending forward flow** — For behind backflow PRs, finds open forward flow PRs that would close part of the freshness gap 5. **Detects staleness & conflicts** — Finds Maestro "codeflow cannot continue" warnings and "Conflict detected" messages (with conflicting files and resolve commands) 6. **Analyzes PR commits** — Categorizes commits as auto-updates vs manual (which would be lost on close/force-trigger) 7. **Traces fixes** (optional) — Checks if a specific fix PR has flowed through VMR into the codeflow PR 8. **Recommends actions** — Suggests force trigger, close/reopen, merge as-is, resolve conflicts, or wait, with ready-to-use darc commands **Missing Backflow Mode:** - Discovers all branches with backflow subscriptions by examining recently merged PRs - Compares VMR branch HEAD against the last merged backflow commit - Flags branches where the VMR has moved but no new backflow PR exists - Warns when Maestro may be stuck (>6 hours since last merge with VMR ahead) ### Example Prompts - "check the codeflow status of dotnet/sdk#52727" - "is dotnet#124098 up to date with the VMR?" - "has the runtime revert in dotnet#123974 reached the codeflow PR dotnet/sdk#52727?" - "why is this codeflow PR blocked?" - "are there any missing backflow PRs for dotnet/roslyn?" - "report on the codeflow status for dotnet/aspnetcore" - "what forward flow PRs are pending for the preview1 VMR branch?" ### 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)
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)