Skip to content

Commit 1f47038

Browse files
committed
Refresh catalog upstreams and add F# skills
Closes #688 Closes #696 Closes #704 Closes #705 Closes #706 Closes #709 Closes #714 Closes #716 Closes #717 Closes #718 Closes #719 Closes #720 Closes #721 Closes #722 Closes #723 Closes #724 Closes #725 Closes #726 Closes #727 Closes #728 Closes #729 Closes #730
1 parent 8de2d0c commit 1f47038

50 files changed

Lines changed: 1410 additions & 604 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/upstream-watch-state.json

Lines changed: 555 additions & 537 deletions
Large diffs are not rendered by default.

.github/upstream-watch.platform.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,20 @@
5454
"project-setup"
5555
]
5656
},
57+
{
58+
"id": "fsharp-overview-docs",
59+
"source": "https://learn.microsoft.com/dotnet/fsharp/what-is-fsharp",
60+
"skills": [
61+
"fsharp"
62+
]
63+
},
64+
{
65+
"id": "fsharp-interactive-docs",
66+
"source": "https://learn.microsoft.com/dotnet/fsharp/tools/fsharp-interactive/",
67+
"skills": [
68+
"fsi"
69+
]
70+
},
5771
{
5872
"id": "aspnetcore-overview-docs",
5973
"source": "https://learn.microsoft.com/aspnet/core/overview?view=aspnetcore-10.0",

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Update this file when the user gives:
7575
Treat explicit frustration, swearing, sarcasm, repeated rejection, or "don't do this again" as strong signals that a durable rule should likely be captured here.
7676

7777
- Waza is a repository CI quality-check dependency for evaluating catalog skill quality. Do not add Waza as a catalog skill, package, tool entry, install bundle, or public catalog surface.
78-
- When Waza CI finds catalog skill-quality warnings, the workflow should create or update a GitHub issue with the concrete findings instead of relying only on workflow logs.
78+
- When Waza CI finds repo-owned catalog skill-quality warnings, the workflow should create or update a GitHub issue with the concrete findings instead of relying only on workflow logs. Imported upstream warnings should stay visible in the report artifact but should not create or keep a repo issue by themselves.
7979

8080
- The repo is moving away from the repo-authored `dotnet-*` skill-id namespace. Prefer clean canonical skill ids without the `dotnet-` prefix for repo-authored skills, and when renaming public skill ids, do a clean cutover instead of keeping backward-compatible legacy aliases unless the user explicitly asks for a compatibility bridge.
8181

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ When you refresh vendored upstream content locally, use `bash scripts/sync_exter
291291

292292
<!-- BEGIN GENERATED CATALOG -->
293293

294-
This catalog currently contains **159** skills.
294+
This catalog currently contains **162** skills.
295295

296296
### .NET Foundations
297297

@@ -300,11 +300,14 @@ This catalog currently contains **159** skills.
300300
| [`csharp-scripts`](catalog/Platform/Official-DotNet/skills/csharp-scripts/) | `0.1.0` | Run single-file C# programs as scripts (file-based apps) for quick experimentation, prototyping, and concept testing. Use when the user wants to write and execute a small C# program without creating a full project. |
301301
| [`dotnet`](catalog/Platform/DotNet/skills/dotnet/) | `1.0.2` | Primary router skill for broad .NET work. Classify the repo by app model and cross-cutting concern first, then switch to the narrowest matching .NET skill instead of staying at a generic layer. USE FOR: general .NET requests without a narrower framework; C# implementation, debugging, review, or refactoring; routing to framework and tooling skills. DO NOT USE FOR: unrelated stacks; tasks already covered by a narrower .NET skill. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made. |
302302
| [`dotnet-pinvoke`](catalog/Platform/Official-DotNet/skills/dotnet-pinvoke/) | `0.1.0` | Correctly call native (C/C++) libraries from .NET using P/Invoke and LibraryImport. Covers function signatures, string marshalling, memory lifetime, SafeHandle, and cross-platform patterns. USE FOR: writing new P/Invoke or LibraryImport declarations, reviewing or debugging existing native interop code, wrapping a C or C++ library for use in .NET, diagnosing crashes, memory leaks, or corruption at the managed/native boundary. DO NOT USE FOR: COM interop, C++/CLI mixed-mode assemblies, or pure managed code with no native dependencies. |
303+
| [`fsharp`](catalog/Tools/FSharp/skills/fsharp/) | `1.0.0` | Write, review, or modernize F# code in .NET repositories with functional-first design, algebraic data types, pattern matching, pipelines, async workflows, project ordering, and C# interop. USE FOR: F# .fs/.fsproj code; discriminated unions, records, options, results, pattern matching, computation expressions, or functional domain modeling; strongly typed AI-generated .NET code. DO NOT USE FOR: C# language modernization; FSI-only exploratory scripts with no project changes. INVOKES: inspect .fsproj file order and SDK settings, edit F# source and project files, and run dotnet build/test or dotnet fsi validation commands when changes are made. |
304+
| [`fsi`](catalog/Tools/FSharp/skills/fsi/) | `1.0.0` | Use F# Interactive (`dotnet fsi`) for .NET exploration, scriptable experiments, package-backed .fsx workflows, quick data transforms, and reproducible command-line probes. USE FOR: .fsx scripts, F# REPL work, #r nuget references, #load composition, interactive type exploration, and small strongly typed experiments before moving code into a project. DO NOT USE FOR: production application code that needs compiled project structure; C# scripting; long-lived automation better expressed as a normal CLI, test, or build target. INVOKES: run dotnet fsi, edit .fsx scripts, load project or source files, and validate snippets against the target SDK. |
303305
| [`managedcode-communication`](catalog/Libraries/ManagedCode-Communication/skills/managedcode-communication/) | `1.0.0` | Use ManagedCode.Communication when a .NET application needs explicit result objects, structured errors, and predictable service or API boundaries instead of exception-driven control flow. USE FOR: integrating ManagedCode.Communication into services or APIs; replacing exception-driven result handling with explicit results; reviewing service boundaries that return. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made. |
304306
| [`managedcode-mimetypes`](catalog/Libraries/ManagedCode-MimeTypes/skills/managedcode-mimetypes/) | `1.0.0` | Use ManagedCode.MimeTypes when a .NET application needs consistent MIME type detection, extension mapping, and content-type decisions for uploads, downloads, or HTTP responses. USE FOR: integrating ManagedCode.MimeTypes into upload or download flows; mapping file extensions to content types in APIs or background processing; reviewing content-type. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made. |
305307
| [`microsoft-extensions`](catalog/Libraries/Microsoft-Extensions/skills/microsoft-extensions/) | `1.0.0` | Use the Microsoft.Extensions stack correctly across Generic Host, dependency injection, configuration, logging, options, HttpClientFactory, and other shared infrastructure patterns. USE FOR: wiring dependency injection, configuration, logging, or options; introducing Generic Host patterns into non-web .NET apps; cleaning up service registration, typed HTTP. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made. |
306308
| [`modern-csharp`](catalog/Tools/Modern-CSharp/skills/modern-csharp/) | `1.0.0` | Write modern, version-aware C# for .NET repositories while staying compatible with the repo's target framework and language-version policy. USE FOR: modern idiomatic C# code; language-version compatibility decisions; upgrading or reviewing C# feature usage across versions. DO NOT USE FOR: non-C# .NET languages such as F# or VB; analyzer-only or formatter-only setup with no language feature choice. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made. |
307309
| [`project-setup`](catalog/Platform/Project-Setup/skills/project-setup/) | `1.0.0` | Create or reorganize .NET solutions with clean project boundaries, repeatable SDK settings, and a maintainable baseline for libraries, apps, tests, CI, and local development. USE FOR: creating a new .NET solution or restructuring an existing one; setting up Directory.Build.props, shared package management, or repo-wide defaults; defining project. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made. |
310+
| [`system-text-json-net11`](catalog/Platform/Official-DotNet-Dotnet11/skills/system-text-json-net11/) | `0.1.0` | Provides guidance on new System.Text.Json APIs introduced in .NET 11. It covers typed JsonTypeInfo access via GetTypeInfo<T> and TryGetTypeInfo<T> on JsonSerializerOptions, and the new JsonNamingPolicy.PascalCase static property. Use when serializing or deserializing JSON in .NET 11 applications and needing typed metadata access or PascalCase property naming. |
308311

309312
### .NET Quality
310313

@@ -395,7 +398,7 @@ This catalog currently contains **159** skills.
395398

396399
| Skill | Version | Description |
397400
|-------|---------|-------------|
398-
| [`aspire`](catalog/Frameworks/Aspire/skills/aspire/) | `1.3.3` | Build, upgrade, and operate .NET Aspire 13.2.x application hosts with current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, and Azure deployment patterns for distributed apps. USE FOR: Aspire.AppHost.Sdk, Aspire.Hosting.*, DistributedApplication.CreateBuilder, WithReference, WaitFor, AddProject, AddRedis, AddPostgres, aspire run, aspire init, aspire. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made. |
401+
| [`aspire`](catalog/Frameworks/Aspire/skills/aspire/) | `1.3.3` | Build, upgrade, and operate .NET Aspire 13.3.x application hosts with current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, and Azure deployment patterns for distributed apps. USE FOR: Aspire.AppHost.Sdk, Aspire.Hosting.*, DistributedApplication.CreateBuilder, WithReference, WaitFor, AddProject, AddRedis, AddPostgres, aspire run, aspire init, aspire. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made. |
399402

400403
### Azure Functions
401404

catalog/Frameworks/Aspire/skills/aspire/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: aspire
3-
description: "Build, upgrade, and operate .NET Aspire 13.2.x application hosts with current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, and Azure deployment patterns for distributed apps. USE FOR: Aspire.AppHost.Sdk, Aspire.Hosting.*, DistributedApplication.CreateBuilder, WithReference, WaitFor, AddProject, AddRedis, AddPostgres, aspire run, aspire init, aspire. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made."
4-
compatibility: "Best for current Aspire 13.2.x tooling on .NET 10; use version-aware upgrade guidance for older 8.x or 9.x Aspire solutions."
3+
description: "Build, upgrade, and operate .NET Aspire 13.3.x application hosts with current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, and Azure deployment patterns for distributed apps. USE FOR: Aspire.AppHost.Sdk, Aspire.Hosting.*, DistributedApplication.CreateBuilder, WithReference, WaitFor, AddProject, AddRedis, AddPostgres, aspire run, aspire init, aspire. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made."
4+
compatibility: "Best for current Aspire 13.3.x tooling on .NET 10; use version-aware upgrade guidance for older 8.x or 9.x Aspire solutions."
55
---
66

77
# .NET Aspire
@@ -20,7 +20,7 @@ compatibility: "Best for current Aspire 13.2.x tooling on .NET 10; use version-a
2020

2121
1. Classify the task first: new AppHost creation, existing-solution enlistment, integration wiring, testing and observability, deployment, or version upgrade.
2222
2. Prefer the current Aspire toolchain. For greenfield or modernized work, use the Aspire CLI and current AppHost SDK instead of writing new guidance around the deprecated legacy workload.
23-
3. Treat 13.2.x releases as servicing and feature updates for the current CLI-first app model, not a topology rewrite. Keep the Aspire CLI, `Aspire.AppHost.Sdk`, and closely coupled hosting or testing packages on the same line, then rerun the AppHost and deployment checks after `aspire update`.
23+
3. Treat 13.3.x releases as servicing and feature updates for the current CLI-first app model, not a topology rewrite. Keep the Aspire CLI, `Aspire.AppHost.Sdk`, and closely coupled hosting or testing packages on the same line, then rerun the AppHost and deployment checks after `aspire update`.
2424
4. Keep the AppHost code-first and topology-focused. Model services, resources, dependencies, endpoints, lifetimes, and parameters there; keep business logic out.
2525
5. Keep `ServiceDefaults` narrow. It exists for telemetry, health checks, resilience, and service discovery, not shared domain models or general utility code.
2626
6. Prefer official first-party Aspire integrations when they cover the requirement. Use `CommunityToolkit/Aspire` only when the capability gap is real: unsupported language hosts, extra dev infrastructure, or extension packages the official project does not provide.
@@ -67,13 +67,13 @@ flowchart LR
6767
## Official Sources
6868

6969
- [Aspire docs home](https://aspire.dev/docs/)
70-
- [What's new in Aspire 13.2](https://aspire.dev/whats-new/aspire-13-2/)
70+
- [What's new in Aspire 13.3](https://aspire.dev/whats-new/aspire-13-3/)
7171
- [AppHost](https://aspire.dev/get-started/app-host/)
7272
- [Service defaults](https://aspire.dev/fundamentals/service-defaults/)
7373
- [Integrations overview](https://aspire.dev/integrations/overview/)
7474
- [Build your first app](https://aspire.dev/get-started/first-app/)
7575
- [Aspire CLI reference](https://aspire.dev/reference/cli/commands/aspire/)
76-
- [Upgrade Aspire](https://learn.microsoft.com/en-us/dotnet/aspire/get-started/upgrade-to-aspire-13)
76+
- [Aspire 13.3 release](https://github.com/microsoft/aspire/releases/tag/v13.3.0)
7777
- [Testing overview](https://aspire.dev/testing/overview/)
7878
- [microsoft/aspire](https://github.com/microsoft/aspire)
7979
- [CommunityToolkit/Aspire](https://github.com/CommunityToolkit/Aspire)

catalog/Frameworks/Orleans/skills/orleans/references/examples.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Use this reference when the user needs an example-first entry point instead of c
3535
## Streams, Observers, And Real-Time
3636

3737
- [Chat Room sample](https://learn.microsoft.com/samples/dotnet/samples/orleans-chat-room-sample)
38-
- [Streaming pub/sub with Azure Event Hubs](https://learn.microsoft.com/samples/dotnet/samples/orleans-streaming-pubsub-with-azure-event-hub)
38+
- [Streaming pub/sub with Azure Event Hubs](https://learn.microsoft.com/samples/dotnet/samples/orleans-streaming-samples/)
3939
- [Chirper social sample](https://learn.microsoft.com/samples/dotnet/samples/orleans-chirper-social-media-sample-app)
4040
- [GPS Tracker with SignalR](https://learn.microsoft.com/samples/dotnet/samples/orleans-gps-device-tracker-sample)
4141

catalog/Frameworks/Orleans/skills/orleans/references/official-docs-index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ This skill keeps a live-link map for Orleans instead of a mirrored local docs sn
195195
- [Blazor WebAssembly sample](https://learn.microsoft.com/samples/dotnet/samples/orleans-aspnet-core-blazor-wasm-sample)
196196
- [Stocks sample](https://learn.microsoft.com/samples/dotnet/samples/orleans-stocks-sample-app)
197197
- [Transport Layer Security sample](https://learn.microsoft.com/samples/dotnet/samples/orleans-transport-layer-security-tls)
198-
- [Streaming with Azure Event Hubs](https://learn.microsoft.com/samples/dotnet/samples/orleans-streaming-pubsub-with-azure-event-hub)
198+
- [Streaming with Azure Event Hubs](https://learn.microsoft.com/samples/dotnet/samples/orleans-streaming-samples/)
199199

200200
## GitHub Source Entry Points
201201

catalog/Platform/Official-DotNet-AI/skills/technology-selection/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ After identifying the task type, select the right library layer. These libraries
5858
- Agentic loops that iterate until a goal is met
5959
- Multi-agent collaboration with handoff protocols
6060
- Graph-based or durable workflows
61-
61+
6262
Do **not** implement these patterns by hand with `IChatClient` — the Agent Framework provides iteration limits, observability, and tool dispatch that are error-prone to reimplement.
6363

6464
4. **Add Copilot SDK only when building Copilot extensions.** Use `GitHub.Copilot.SDK` when the goal is to build a custom agent or tool that runs inside the GitHub Copilot platform (CLI, IDE, or Copilot Chat). This is not a general-purpose LLM orchestration library — it is specifically for Copilot extensibility.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "dotnet11",
3+
"title": "Official .NET skills: dotnet11",
4+
"description": "Skills for .NET 11 APIs and language features.",
5+
"links": {
6+
"repository": "https://github.com/dotnet/skills",
7+
"docs": "https://github.com/dotnet/skills/tree/main/plugins/dotnet11"
8+
}
9+
}

0 commit comments

Comments
 (0)