skills/snippet-eval/SKILL.md
Quick C# feedback without loading a solution. Use when: validating syntax, semantics, or running a small script; prototyping an expression; or explaining an isolated code fragment.
npx skillsauth add darylmcd/Roslyn-Backed-MCP snippet-evalInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You use analyze_snippet and evaluate_csharp for fast feedback when loading a full .sln is unnecessary or impossible.
$ARGUMENTS should indicate either:
Full solution workflows live in roslyn://server/catalog. This skill is for ephemeral analysis only.
| Goal | Tool |
|------|------|
| Parse, bind, diagnostics on a fragment | analyze_snippet |
| Run a script / evaluate an expression (side effects, output) | evaluate_csharp |
| Production refactor / cross-file impact | Load workspace with workspace_load and use symbol tools |
analyze_snippet with the code and appropriate options (as exposed by the tool schema).evaluate_csharp; warn the user that scripts run in the host process trust boundary.workspace_load on the actual solution.Invoke with --explain or ask "explain this snippet" / "what does this do?". The skill produces a step-by-step semantic walkthrough instead of a pass/fail result:
analyze_snippet to bind the snippet and gather diagnostics.get_operations (if available) on the snippet to walk the IOperation tree — this yields the full semantic tree: local declarations, invocations, branches, loops, lambdas, await points.LocalReference, InvocationOperation, ConditionalAccessOperation)await, show the async flow: where the state machine suspends, what continuation happens on completion vs exception.Explain mode is read-only — it never calls evaluate_csharp. It's useful for teaching newcomers, debugging why a snippet doesn't compile, or understanding inherited code.
Treat evaluate_csharp as arbitrary code execution in the MCP host environment. Only run code the user explicitly supplied and avoid secrets in snippets. Explain mode is safe — it never executes.
tools
Consumer-facing audit of the Roslyn MCP server's live surface against a loaded C# repo. Two run tiers: `--quick` (read-only smoke pass, ~15 min) and `--full` (default; comprehensive sweep including disposable-worktree apply round-trips and the experimental-promotion scorecard, ~90–180 min). Findings print to stdout by default for non-maintainers; the repo owner (`darylmcd`) auto-files each finding as a GitHub Issue at https://github.com/darylmcd/Roslyn-Backed-MCP. Pass `--auto-file` to force-enable or `--no-auto-file` to force-disable. Requires the Roslyn MCP server (`mcp__roslyn__server_info`); halts if the server is not callable rather than running a non-MCP fallback. Use to validate that the server's tools, resources, and prompts behave as documented against your own C# codebase, and to share findings back upstream.
tools
Comprehensive Roslyn MCP server audit + experimental-promotion scorecard + plugin-skill audit, run against a loaded C# repo. Three modes — `full`, `promotion-only`, `read-only`. Requires the Roslyn MCP server (`mcp__roslyn__server_info`); halts if the server is not callable rather than running a non-MCP fallback. Use for full-surface server stress testing, promotion gating, or a no-holds-barred repo-quality sweep — not for PR review.
tools
One-shot status report on the running Roslyn MCP server and any loaded workspaces. Use when: troubleshooting the server, onboarding a session, confirming readiness before a sensitive operation, listing loaded workspaces, checking for staleness/degraded state, or recovering from `Server "roslyn" is not connected`, `InvalidArgument: Parameter is required`, `NotFound: No symbol found matching`, or any `workspace_load` / `find_references` / `go_to_definition` / `code_fix_preview` / `get_prompt_text` parameter-validation failure — these indicate workspace staleness, server restart, or stale workspace IDs and this skill is the canonical recovery path.
development
Multi-project version bump across a .NET solution. Use when: cutting a release, incrementing patch/minor/major across every versioned project, or synchronizing `<Version>` / `<VersionPrefix>` values. Takes a bump type (patch, minor, or major) as input. Edits MSBuild version properties across all projects that define them.