Detects MSBuild projects with conflicting OutputPath or IntermediateOutputPath. USE FOR: builds failing with 'Cannot create a file when that file already exists', 'The process cannot access the file because it is being used by another process', intermittent build failures that succeed on retry, or missing/overwritten outputs in multi-project or multi-targeting builds where bin/obj (or project.assets.json) collide. Common causes: shared OutputPath, missing AppendTargetFrameworkToOutputPath, extra
SkillScore77Maintained
Automatic
◆Coding pack
Last verified 8/12/2026
What it changes
Passed 15 of 19 test cases with the skill, and 14 of 19 without it.
Without skill73%
With skill77%
Checks it passed that the model alone missed
Advises that project evaluations with BuildProjectReferences set to false must be excluded from collision reports.
States that SolutionDir is a path-neutral global property that does not alter OutputPath or IntermediateOutputPath.
Explains that BuildProjectReferences set to false indicates metadata queries using GetTargetPath without writing output files.
and 2 more in the full report
3 fixed14 passed either way3 still failing2 broke
Pass-rate lift
+5 pp
Tokens
+164%
Agent turns
0%
Response time
-51%
Model gemini-3.6-flashMeasured 8/12/2026v117 of 22 cases passed with skill · 19 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 3 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 3
Prompt
When analyzing a binary log for output directory collisions across MSBuild project evaluations, I noticed several project instances evaluated with BuildProjectReferences=false. Should these instances be grouped alongside standard evaluations when reporting output folder collisions, or should they be excluded? Explain why.
What was checked, without and with the skill
Checked
Without skill
With skill
Advises that project evaluations with BuildProjectReferences set to false must be excluded from collision reports.
Missed
Passed
Explains that BuildProjectReferences set to false indicates metadata queries using GetTargetPath without writing output files.
Missed
Passed
case-04 · gemini-3.6-flash · 8/12/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md309 linessingle file
Detecting OutputPath and IntermediateOutputPath Clashes
Overview
This skill helps identify when multiple MSBuild project evaluations share the same OutputPath or IntermediateOutputPath. This is a common source of build failures including:
File access conflicts during parallel builds
Missing or overwritten output files
Intermittent build failures
"File in use" errors
NuGet restore errors like Cannot create a file when that file already exists - this strongly indicates multiple projects share the same IntermediateOutputPath where project.assets.json is written
Clashes can occur between:
Different projects sharing the same output directory
Multi-targeting builds (e.g., TargetFrameworks=net8.0;net9.0) where the path doesn't include the target framework
Multiple solution builds where the same project is built from different solutions in a single build
Note: Project instances with BuildProjectReferences=false should be ignored when analyzing clashes - these are P2P reference resolution builds that only query metadata (via GetTargetPath) and do not actually write to output directories.
When to Use This Skill
Invoke this skill immediately when you see:
Cannot create a file when that file already exists during NuGet restore
The process cannot access the file because it is being used by another process
Intermittent build failures that succeed on retry
Missing output files or unexpected overwriting
Step 1: Generate a Binary Log
Use the binlog-generation skill to generate a binary log with the correct naming convention.
Primary workflow — binlog MCP
The MCP server exposes structured tools for inspecting a .binlog without
parsing text logs. Call them directly instead of replaying the binlog to a text
file. Call tools/list for the MCP first if you are unsure which tools are available.
Important constraints:
The .binlog file is a binary format — do NOT try to cat, head, strings, or read it directly. Use only the MCP tools to query it.
Synthesize findings as you go. Do not spend all available time investigating — once you have enough evidence, present your conclusions.
Provides file paths to language-specific extension files for the code-testing pipeline. Call this skill to discover available extension guidance files (e.g., dotnet.md for .NET, cpp.md for C++). Do not use directly — invoked by code-testing agents and skills that need language-specific references.