project-inspection

project-inspection is a skill for Claude Code from darylmcd/Roslyn-Backed-MCP. It costs 38 tokens per session (892 once invoked), scanned A, original, MIT.

A tool for inspecting how MSBuild interprets a .NET project file. MSBuild is the system that reads project settings and builds .NET projects.

In plain words
What is it for?
Use it to inspect target frameworks, build properties, package references, project items, or the overall evaluated project configuration.
Why use it?
It helps reveal project settings, output paths, package references, and included files when the project behaves unexpectedly.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter.

Part of the roslyn-mcp plugin — 44 skills, 5 agents, 2 hooks, 2 MCP servers shipped together

Good fit Use it to inspect target frameworks, build properties, package references, project items, or the overall evaluated project configuration.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/darylmcd/roslyn-backed-mcp/project-inspection
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add darylmcd/Roslyn-Backed-MCP --skill project-inspection
Clone the repo
git clone --depth 1 https://github.com/darylmcd/Roslyn-Backed-MCP

Made for: Claude Code.

Or install roslyn-mcp, the plugin that ships this one along with the rest of its 44 skills, 5 agents, 2 hooks, 2 MCP servers.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for project-inspection

README.md
[![agentmods](https://agentmods.dev/badge/skills/darylmcd/roslyn-backed-mcp/project-inspection/github.svg)](https://agentmods.dev/skills/darylmcd/roslyn-backed-mcp/project-inspection)
Your own site
<a href="https://agentmods.dev/skills/darylmcd/roslyn-backed-mcp/project-inspection"><img src="https://agentmods.dev/badge/skills/darylmcd/roslyn-backed-mcp/project-inspection/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for project-inspection

Your own site · 80×15
<a href="https://agentmods.dev/skills/darylmcd/roslyn-backed-mcp/project-inspection"><img src="https://agentmods.dev/badge/skills/darylmcd/roslyn-backed-mcp/project-inspection.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 38 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 892 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00038 $0.00892
Opus 5 $0.00019 $0.00446
Sonnet 5 $0.00008 $0.00178
Haiku 4.5 $0.00004 $0.00089

Measured 11d ago against content hash ebc900a823b9, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

project-inspection scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/project-inspection/SKILL.md · 65 lines

How it starts

The opening of the file, as written. The whole thing — 65 lines — stays where its author put it; the contents beside it link to each section on GitHub.

MSBuild / Project Inspection

You answer "what does MSBuild think this project is?" using evaluate_msbuild_property, evaluate_msbuild_items, and get_msbuild_properties.

Input

Resolve:

  • workspaceId (active session)
  • Absolute projectFilePath (.csproj or relevant project file)
  • Optionally a single property name (e.g. TargetFramework) or item type (e.g. PackageReference)

Server discovery

Use roslyn://server/catalog under project-mutation / configuration. MCP prompt msbuild_inspection emits a checklist for this workspace + project path.

Workflow

  1. Confirm the workspace is loaded and the path is the project the user cares about (SDK-style vs legacy).
  2. For one or two values: evaluate_msbuild_property.
  3. For item lists: evaluate_msbuild_items with the item type.
  4. For a broad dump: get_msbuild_properties (large — filter to what matters).
  5. If project files changed on disk: workspace_reload before trusting compilation or symbol tools.

Validate project shape

Invoke with --validate-shape or ask "is this project set up right?". The skill runs a consistency sweep over one project (or every project in the workspace) and flags common defaults-drift.

For each project, check:

Check Default expected Signal when missing/inconsistent
TargetFramework / TargetFrameworks Present; matches solution-wide convention when one exists Orphan or legacy TFM (e.g., net462 in a mostly-net8.0 solution)
Nullable enable recommended for new code disable or missing on a library in an otherwise-nullable solution
ImplicitUsings enable for SDK-style projects Missing / disabled
LangVersion Implicit (inherits from TFM) Pinned to an old version (latest or a specific version below what TFM allows)
TreatWarningsAsErrors Typically true for production libraries Missing in a library where siblings enable it
GenerateDocumentationFile true for packable libraries Missing when IsPackable=true
IsPackable false for test/sample projects true on a project whose name ends .Tests / .Samples
OutputType Library by default; Exe only for hosts Exe in a project consumed as a package dependency
RootNamespace vs folder path Aligned Drift (package extracts from a folder that doesn't match namespace)
AssemblyName vs PackageId (packable) Typically equal Divergent without explicit intent
Project references in SDK-style Use <ProjectReference> Direct <Reference> assembly paths indicate legacy style

Read the full file on GitHub · 65 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 65 lines · 38 tokens per session scan A ebc900a823b9

Subscribe to this mod's changes

project-inspection is a skill published in the GitHub repository darylmcd/Roslyn-Backed-MCP (1 stars, last pushed today), licensed MIT. It adds 38 tokens to every session and 892 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

dotnet-reverse

A guide for analyzing compiled .NET and C# programs, including managed Windows executables and libraries. Reverse engineering means studying compiled software to understand how it works, and decompiling turns it back into readable approximate source code.

zhaoxuya520/reverse-skill · 144 tokens

check-bin-obj-clash

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…

dotnet/skills · 160 tokens

build-perf-diagnostics

Diagnose MSBuild build performance bottlenecks using binary log analysis. USE FOR: identifying why builds are slow by analyzing binlog performance summaries, detecting ResolveAssemblyReference (RAR) taking >5s, Roslyn analyzers consuming >30% of Csc time, single targets dominating >50% of build time, node utilization…

dotnet/skills · 160 tokens

dump-collect

Configure and collect crash dumps for modern .NET applications. USE FOR: enabling automatic crash dumps for CoreCLR or NativeAOT, capturing dumps from running .NET processes, setting up dump collection in Docker or Kubernetes, using dotnet-dump collect or createdump. DO NOT USE FOR: analyzing or debugging dumps…

dotnet/skills · 96 tokens

binlog-generation

Generate MSBuild binary logs (binlogs) for build diagnostics and analysis. USE FOR: adding /bl:{} to any dotnet build, test, pack, publish, or restore command to capture a full build execution trace, prerequisite for binlog-failure-analysis and build-perf-diagnostics skills, enabling post-build investigation of errors…

dotnet/skills · 133 tokens

binlog-failure-analysis

Analyze MSBuild binary logs to diagnose build failures. USE FOR: build errors that are unclear from console output, diagnosing cascading failures across multi-project builds, tracing MSBuild target execution order, and generally any MSBuild build issues. Requires an existing .binlog file. DO NOT USE FOR: generating…

dotnet/skills · 79 tokens