Skip to content

Strengthen mcp-csharp-publish with prescriptive defaults - #935

Closed
leslierichardson95 wants to merge 1 commit into
dotnet:mainfrom
leslierichardson95:leslierichardson95/strengthen-mcp-csharp-publish
Closed

Strengthen mcp-csharp-publish with prescriptive defaults#935
leslierichardson95 wants to merge 1 commit into
dotnet:mainfrom
leslierichardson95:leslierichardson95/strengthen-mcp-csharp-publish

Conversation

@leslierichardson95

Copy link
Copy Markdown
Contributor

What

Strengthens the mcp-csharp-publish skill so it changes agent behavior instead of tying with the no-skill baseline.

Why

The cross-family skills-eval (#889) rated mcp-csharp-publish STRENGTHEN 0/5 with the diagnosis "mostly ties — too generic/non-prescriptive." The skill listed options (NuGet or Docker, Container Apps or App Service, Registry optional) without deciding, so a skilled run rarely differed from baseline.

Changes

  • Add a prescriptive Default decisions block up front that makes the common choices without asking:
    • stdio → NuGet.org as a .NET tool (dnx)
    • HTTP → Azure Container Apps with --min-replicas 0 (scale to zero)
    • Always publish server.json to the MCP Registry for shared servers
    • Keep versions identical across .csproj / server.json
  • Make Step 3 decisive: Container Apps is the default; App Service is gated behind an explicit need (existing plan, VNet, slots).
  • Reinforce the Registry step as the default for shared servers.

No new heavy content — the skill is already token-efficient; this sharpens decisiveness only.

Verification

skill-validator check runs in CI. Recommend a cross-family eval re-run (-f skills="mcp-csharp-publish" -f executors="opus,gpt" -f runs=5) to confirm the ties convert to wins.

Refs #889

The cross-family eval (dotnet#889) flagged mcp-csharp-publish as inert
(STRENGTHEN 0/5, mostly ties) because its guidance was too generic and
non-prescriptive, so it rarely changed agent behavior vs. baseline.

Add an opinionated 'Default decisions' block and make the previously
optional/menu-style choices decisive so the skill produces different,
better behavior than an unskilled run:
- stdio -> NuGet.org as a .NET tool (dnx)
- HTTP -> Azure Container Apps with --min-replicas 0 (scale to zero)
- Always publish server.json to the MCP Registry for shared servers
- Gate Azure App Service behind explicit user need (VNet, slots, existing plan)

Refs dotnet#889

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6a8ce111-58e5-48a7-9f7f-8de972bdc693
Copilot AI review requested due to automatic review settings July 23, 2026 23:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Strengthens the mcp-csharp-publish skill in plugins/dotnet-ai by making it more prescriptive (defaulting to common publishing/deployment choices) to reduce “ties” vs. baseline in cross-family skills evaluation (#889).

Changes:

  • Add a Default decisions section that sets prescriptive defaults (NuGet tool for stdio, Azure Container Apps for HTTP, Registry publication, and version consistency).
  • Reinforce the MCP Registry step as the default for shared servers (skip only for private/internal).
  • Make Step 3 more decisive by defaulting to Container Apps and explicitly gating App Service behind specific requirements.
Comments suppressed due to low confidence (1)

plugins/dotnet-ai/skills/mcp-csharp-publish/SKILL.md:69

  • This note refers to server.json, but later steps use the path .mcp/server.json. Using the same path here avoids ambiguity about which file should be published.
> **Default:** publish `server.json` to the MCP Registry (Step 4) for every shared server — skip it only for private/internal servers.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +29 to +30
| MCP Registry | **Always publish `server.json`** | Discoverability is free and expected for shared servers |
| Versioning | Keep `.csproj` `<Version>`, `server.json` root `version`, and `packages[].version` **identical** | A mismatch fails Registry validation |
@leslierichardson95

Copy link
Copy Markdown
Contributor Author

Superseded by #939, which moves this change to a branch on the primary dotnet/skills repo. Closing this fork PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants