Skip to content

Add agent definitions for reproducing SDK build-related issues, and analyzing reproduction binlogs#52917

Merged
dsplaisted merged 4 commits intodotnet:mainfrom
baronfel:triage-build-skill
Feb 25, 2026
Merged

Add agent definitions for reproducing SDK build-related issues, and analyzing reproduction binlogs#52917
dsplaisted merged 4 commits intodotnet:mainfrom
baronfel:triage-build-skill

Conversation

@baronfel
Copy link
Member

@baronfel baronfel commented Feb 9, 2026

This adds agent definitions for triaging build-related issues, based on a session I just did with these tools to diagnose a PublishAOT related issue with satellite assemblies.

The agents assume the following tools:

  • gh MCP server/CLI
  • viktorhofer/dotnet-skills for binlog analysis skills
    • this brings in the baronfel/mcp-binlog-tool MCP server
  • the MS Learn MCP server

I think I can express those linkages, but haven't found out how directly yet.

Copilot AI review requested due to automatic review settings February 9, 2026 18:36
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Claude skill (investigate-sdk-issue) intended to standardize how build/publish/pack issues in the .NET SDK are triaged using reproductions, binlogs, and MSBuild target tracing.

Changes:

  • Introduces a new investigation playbook skill focused on SDK issue triage.
  • Documents a step-by-step workflow for reproduction, binlog analysis, target/source tracing, and writing an RCA with links and suggested fixes.

dotnet restore
dotnet publish -c Release /bl:1.binlog
```
Use the `binlog-generation` skill conventions: name binlogs with incrementing numbers (`1.binlog`, `2.binlog`, etc.).
Copy link

Copilot AI Feb 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This references “binlog-generation skill conventions”, but there doesn’t appear to be a binlog-generation skill in this repo. Either add the referenced skill, or inline the naming convention here without pointing to a non-existent dependency.

Suggested change
Use the `binlog-generation` skill conventions: name binlogs with incrementing numbers (`1.binlog`, `2.binlog`, etc.).
Name binlogs with incrementing numbers (`1.binlog`, `2.binlog`, etc.) so you can distinguish multiple runs.

Copilot uses AI. Check for mistakes.
baronfel and others added 2 commits February 9, 2026 12:43
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@baronfel
Copy link
Member Author

baronfel commented Feb 9, 2026

After talking a bit to @webreidi I'm going to factor this out from a skill into two subagents:

  • one agent will focus on creating binlogs/reproducing user submissions - the goal of this agent will be to make sure that we have a zip/binlog for the user report
  • the second agent will focus on taking a binlog and analyzing the cause of the issue the user reported

with separate sub-agents, we can re-use them in CCA sessions (assigning things to copilot via github.com), and in copilot CLI/local sessions - skills today are mostly used from the copilot CLI/claude alone.

@baronfel
Copy link
Member Author

The agents themselves are able to be used effectively. This is ready for merge, and next steps can orchestrate their use.

@baronfel baronfel enabled auto-merge (squash) February 10, 2026 19:53
@baronfel baronfel requested a review from a team February 10, 2026 19:54
@baronfel baronfel changed the title add skill for triaging SDK build-related issues Add agent definitions for reproducing SDK build-related issues, and analyzing reproduction binlogs Feb 10, 2026

You are analyzing a binary log (binlog) to determine the root cause of unexpected .NET SDK behavior. Your goal is to produce a detailed root cause analysis in GitHub-flavored markdown, with links to the specific source code that causes the problem and a suggested fix.

You should already have a binlog file available. If you do not have one, ask the user to provide a binlog or use the `reproduce-sdk-issue` agent to create one first.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a setting or any privacy policy we need to link the user to such that usernames are redacted or does that happen by default now? Are there versions of .NET where that's not true so we should inform the agent they MUST inform the user?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot invert this ordering a bit: the reproducer agent should first try to create a binlog itself if one is not present. These binlogs will not have any user PII so should be safe to use. If the reproducer agent cannot create a binlog then it should ask the user to create one, but it should surface guidance from the MSBuild repo docs about the privacy implications of submitting binlogs

Copy link
Member

@nagilson nagilson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lovely idea, thank you!

@baronfel baronfel disabled auto-merge February 10, 2026 20:08

## Step 4: Read the MSBuild targets source code

Once the binlog analysis points to specific targets, read the actual target definitions in the source repos to understand the logic. The targets may come from several repositories:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The binlog should include all of the imported file contents, wouldn't it make more sense to get this from the binlog?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point - I think I expose that via the MCP, I'll have to test if that all works as I expect.

@baronfel
Copy link
Member Author

/ba-g no checks run for workflow code so this is ready to merge

@baronfel baronfel enabled auto-merge (squash) February 24, 2026 21:42
@dsplaisted dsplaisted disabled auto-merge February 25, 2026 17:11
@dsplaisted dsplaisted merged commit 0cd3fa6 into dotnet:main Feb 25, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants