#749 by GitHub stars
Aaronontheweb/dotnet-skills
Claude Code skills and sub-agents for .NET Developers
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/akka-aspire-configuration/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/akka-best-practices/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/akka-hosting-actor-patterns/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/akka-management/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/akka-testing-patterns/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/aot-trimming/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/aspire-configuration/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/aspire-integration-testing/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/aspire-mailpit-integration/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/aspire-service-defaults/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/crap-analysis/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/cscheck/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/csharp-api-design/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/csharp-coding-standards/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/csharp-concurrency-patterns/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/csharp-nullable-reference-types/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/csharp-type-design-performance/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/database-performance/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/dotnet-devcert-trust/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/efcore-patterns/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/ilspy-decompile/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/local-tools/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/marketplace-publishing/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/microsoft-extensions-configuration/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/microsoft-extensions-dependency-injection/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/mjml-email-templates/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/opentelementry-dotnet-instrumentation/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/package-management/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/playwright-blazor/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/playwright-ci-caching/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/project-structure/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/r3-reactive-extensions/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/sdk-container-publishing/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/serialization/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/skills-index-snippets/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/slopwatch/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/snapshot-testing/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/testcontainers/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/verify-email-snapshots/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ac0deb2f531f → 5ca5db8cf255
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Verified commit 5ca5db8cf25566f19d2a5dc53204d4af22b23a0d
git clone --filter=blob:none --no-checkout https://github.com/Aaronontheweb/dotnet-skills.git .hotskills/aaronontheweb-dotnet-skills && git -C .hotskills/aaronontheweb-dotnet-skills checkout --detach 5ca5db8cf25566f19d2a5dc53204d4af22b23a0d
# Copy each selected skill directory from .hotskills/aaronontheweb-dotnet-skills into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/Aaronontheweb/dotnet-skills.git .hotskills/aaronontheweb-dotnet-skills && git -C .hotskills/aaronontheweb-dotnet-skills checkout --detach 5ca5db8cf25566f19d2a5dc53204d4af22b23a0d
# Copy each selected skill directory from .hotskills/aaronontheweb-dotnet-skills into .agents/skills/<skill-name>/Heat
3.9- Star growth, last 7 daysAhead of 72% of tracked repositories
- Star growth, last 24 hoursAhead of 3% of tracked repositories
- Rank movement, last 7 daysAhead of 9% of tracked repositories
- Commits, last 30 daysAhead of 78% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- akka-net-aspire-configuration
skills/akka-aspire-configuration - akka-net-best-practices
skills/akka-best-practices - akka-hosting-actor-patterns
skills/akka-hosting-actor-patterns - akka-net-management
skills/akka-management - akka-net-testing-patterns
skills/akka-testing-patterns - aot-trimming
skills/aot-trimming - aspire-configuration
skills/aspire-configuration - aspire-integration-testing
skills/aspire-integration-testing - mailpit-integration
skills/aspire-mailpit-integration - aspire-service-defaults
skills/aspire-service-defaults - crap-analysis
skills/crap-analysis - cscheck
skills/cscheck - api-design
skills/csharp-api-design - modern-csharp-coding-standards
skills/csharp-coding-standards - csharp-concurrency-patterns
skills/csharp-concurrency-patterns - csharp-nullable-reference-types
skills/csharp-nullable-reference-types - type-design-performance
skills/csharp-type-design-performance - database-performance
skills/database-performance - dotnet-devcert-trust
skills/dotnet-devcert-trust - efcore-patterns
skills/efcore-patterns - ilspy-decompile
skills/ilspy-decompile - dotnet-local-tools
skills/local-tools - marketplace-publishing
skills/marketplace-publishing - microsoft-extensions-configuration
skills/microsoft-extensions-configuration - dependency-injection-patterns
skills/microsoft-extensions-dependency-injection - mjml-email-templates
skills/mjml-email-templates - opentelemetry-net-instrumentation
skills/opentelementry-dotnet-instrumentation - package-management
skills/package-management - playwright-blazor-testing
skills/playwright-blazor - playwright-ci-caching
skills/playwright-ci-caching - dotnet-project-structure
skills/project-structure - r3-reactive-extensions
skills/r3-reactive-extensions - sdk-container-publishing
skills/sdk-container-publishing - serialization
skills/serialization - skills-index-snippets
skills/skills-index-snippets - dotnet-slopwatch
skills/slopwatch - snapshot-testing
skills/snapshot-testing - testcontainers-integration-tests
skills/testcontainers - verify-email-snapshots
skills/verify-email-snapshots
How it works
akka-net-aspire-configuration
When your agent uses it
Configure Akka.NET with .NET Aspire for local development and production deployments. Covers actor system setup, clustering, persistence, Akka.Management integration, and Aspire orchestration patterns.
What it loads into context
Frontmatter
53 tokensAlways available to the agent
SKILL.md
5,101 tokensWhen the skill is activated
Reference documents
237,158 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Related Skills
- Core Principles
- Project Structure
- Required NuGet Packages
- Configuration Model (AkkaSettings.cs)
- Akka Configuration Extension Methods (AkkaConfiguration.cs)
- Program.cs Integration
- Aspire AppHost Configuration (Program.cs)
- Aspire Akka.Management Extensions (AkkaManagementExtensions.cs)
- appsettings.json Configuration
- Common Patterns
- Common Issues and Solutions
- Testing Akka.NET Actors
- Best Practices Summary
Files
../../.claude-plugin/marketplace.jsonasset601 bytes../../.claude-plugin/plugin.jsonasset2,161 bytes../../agents/akka-net-specialist.mddoc3,254 bytes../../agents/akka-net-specialist.mddoc3,254 bytes../../agents/docfx-specialist.mddoc4,168 bytes../../agents/dotnet-benchmark-designer.mddoc3,785 bytes../../agents/dotnet-concurrency-specialist.mddoc3,418 bytes../../agents/dotnet-performance-analyst.mddoc6,192 bytes../../agents/roslyn-incremental-generator-specialist.mddoc20,400 bytes../../agents/roslyn-incremental-generator-specialist.mddoc20,400 bytes../../agents/roslyn-incremental-generator-specialist.mddoc20,400 bytes../../agents/roslyn-incremental-generator-specialist.mddoc20,400 bytes../../agents/roslyn-incremental-generator-specialist.mddoc20,400 bytes../../agents/roslyn-incremental-generator-specialist.mddoc20,400 bytes../../agents/roslyn-incremental-generator-specialist.mddoc20,400 bytes../../agents/roslyn-incremental-generator-specialist.mddoc20,400 bytes../../agents/roslyn-incremental-generator-specialist.mddoc20,400 bytes../../agents/roslyn-incremental-generator-specialist.mddoc20,400 bytes../../agents/roslyn-incremental-generator-specialist.mddoc20,400 bytesSKILL.mdcore24,479 bytesSKILL.mdcore24,479 bytes../akka-best-practices/SKILL.mddoc13,291 bytes../akka-best-practices/async-cancellation-patterns.mddoc4,210 bytes../akka-best-practices/cluster-local-abstractions.mddoc11,235 bytes../akka-best-practices/work-distribution-patterns.mddoc4,862 bytes../akka-hosting-actor-patterns/SKILL.mddoc19,959 bytes../akka-management/SKILL.mddoc10,836 bytes../akka-management/configuration-reference.mddoc4,552 bytes../akka-management/discovery-providers.mddoc6,326 bytes../akka-testing-patterns/SKILL.mddoc9,771 bytes../akka-testing-patterns/anti-patterns-and-reference.mddoc5,367 bytes../akka-testing-patterns/examples.mddoc29,185 bytes../aot-trimming/SKILL.mddoc11,714 bytes../aot-trimming/aot-trimming-playbook-reference.mddoc35,323 bytes../aot-trimming/trimming-attributes-reference.mddoc14,983 bytes../aspire-configuration/SKILL.mddoc5,094 bytes../aspire-integration-testing/SKILL.mddoc9,609 bytes../aspire-integration-testing/advanced-patterns.mddoc12,677 bytes../aspire-integration-testing/ci-and-tooling.mddoc5,159 bytes../aspire-mailpit-integration/SKILL.mddoc11,389 bytes../aspire-service-defaults/SKILL.mddoc10,438 bytes../crap-analysis/SKILL.mddoc11,504 bytes../cscheck/SKILL.mddoc4,679 bytes../cscheck/references/failures.mddoc5,242 bytes../cscheck/references/properties.mddoc5,876 bytes../cscheck/references/specifications.mddoc9,452 bytes../cscheck/references/stateful-and-async.mddoc7,910 bytes../csharp-api-design/SKILL.mddoc10,805 bytes../csharp-coding-standards/SKILL.mddoc10,695 bytes../csharp-coding-standards/anti-patterns-and-reflection.mddoc8,770 bytes../csharp-coding-standards/composition-and-error-handling.mddoc8,082 bytes../csharp-coding-standards/performance-and-api-design.mddoc10,263 bytes../csharp-coding-standards/value-objects-and-patterns.mddoc12,610 bytes../csharp-concurrency-patterns/SKILL.mddoc8,966 bytes../csharp-concurrency-patterns/advanced-concurrency.mddoc11,135 bytes../csharp-nullable-reference-types/SKILL.mddoc11,610 bytes../csharp-nullable-reference-types/nrt-migration-playbook-reference.mddoc15,004 bytes../csharp-nullable-reference-types/nullable-attributes-reference.mddoc14,639 bytes../csharp-type-design-performance/SKILL.mddoc10,008 bytes../database-performance/SKILL.mddoc14,055 bytes../dotnet-devcert-trust/SKILL.mddoc16,544 bytes../efcore-patterns/SKILL.mddoc18,107 bytes../ilspy-decompile/SKILL.mddoc2,127 bytes../local-tools/SKILL.mddoc8,917 bytes../marketplace-publishing/SKILL.mddoc6,066 bytes../microsoft-extensions-configuration/SKILL.mddoc9,610 bytes../microsoft-extensions-configuration/advanced-patterns.mddoc9,402 bytes../microsoft-extensions-dependency-injection/SKILL.mddoc9,751 bytes../microsoft-extensions-dependency-injection/advanced-patterns.mddoc7,332 bytes../mjml-email-templates/SKILL.mddoc10,706 bytes../opentelementry-dotnet-instrumentation/SKILL.mddoc27,837 bytes../opentelementry-dotnet-instrumentation/metrics-and-instruments-reference.mddoc19,304 bytes../opentelementry-dotnet-instrumentation/sdk-resources-and-logs-reference.mddoc26,973 bytes../opentelementry-dotnet-instrumentation/traces-and-propagation-reference.mddoc40,104 bytes../package-management/SKILL.mddoc12,141 bytes../playwright-blazor/SKILL.mddoc16,958 bytes../playwright-ci-caching/SKILL.mddoc6,905 bytes../project-structure/SKILL.mddoc15,354 bytes../r3-reactive-extensions/SKILL.mddoc13,766 bytes../r3-reactive-extensions/async-and-integration-patterns.mddoc8,550 bytes../r3-reactive-extensions/rx-net-differences.mddoc12,421 bytes../r3-reactive-extensions/scheduling-and-concurrency.mddoc7,843 bytes../sdk-container-publishing/SKILL.mddoc9,336 bytes../sdk-container-publishing/references/ci-cd.mddoc5,420 bytes../sdk-container-publishing/references/property-reference.mddoc5,123 bytes../sdk-container-publishing/references/real-world-examples.mddoc5,110 bytes../sdk-container-publishing/references/self-contained-and-aot.mddoc2,135 bytes../sdk-container-publishing/references/troubleshooting.mddoc4,158 bytes../serialization/SKILL.mddoc11,143 bytes../skills-index-snippets/SKILL.mddoc4,656 bytes../slopwatch/SKILL.mddoc8,173 bytes../snapshot-testing/SKILL.mddoc9,211 bytes../testcontainers/SKILL.mddoc9,701 bytes../testcontainers/database-patterns.mddoc5,498 bytes../testcontainers/infrastructure-patterns.mddoc10,629 bytes../verify-email-snapshots/SKILL.mddoc8,370 bytes
Read SKILL.md
# Configuring Akka.NET with .NET Aspire
## When to Use This Skill
Use this skill when:
- Setting up a new Akka.NET project with .NET Aspire orchestration
- Configuring Akka.Cluster with cluster bootstrapping and discovery
- Integrating Akka.Persistence with SQL Server
- Setting up Akka.Management for cluster management
- Configuring multi-replica actor systems in local development
- Deploying Akka.NET applications to Kubernetes with Aspire
## Related Skills
View the complete source on GitHubakka-net-best-practices
When your agent uses it
Critical Akka.NET best practices including EventStream vs DistributedPubSub, supervision strategies, error handling, Props vs DependencyResolver, work distribution patterns, and cluster/local mode abstractions for testability.
What it loads into context
Frontmatter
56 tokensAlways available to the agent
SKILL.md
2,889 tokensWhen the skill is activated
Reference documents
4,265 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Reference Files
- 1. EventStream vs DistributedPubSub
- 2. Supervision Strategies
- 3. Error Handling: Supervision vs Try-Catch
- 4. Props vs DependencyResolver
- 5. Work Distribution Patterns
- 6. Common Mistakes Summary
- 7. Quick Reference
- 8. Cluster/Local Mode Abstractions
- 9. Actor Logging
- 10. Managing Async Operations with CancellationToken
Files
SKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytesasync-cancellation-patterns.mddoc4,210 bytescluster-local-abstractions.mddoc11,235 byteswork-distribution-patterns.mddoc4,862 bytes
Read SKILL.md
# Akka.NET Best Practices
## When to Use This Skill
Use this skill when:
- Designing actor communication patterns
- Deciding between EventStream and DistributedPubSub
- Implementing error handling in actors
- Understanding supervision strategies
- Choosing between Props patterns and DependencyResolver
- Designing work distribution across nodes
- Creating testable actor systems that can run with or without cluster infrastructure
- Abstracting over Cluster Sharding for local testing scenarios
View the complete source on GitHubakka-hosting-actor-patterns
When your agent uses it
Patterns for building entity actors with Akka.Hosting - GenericChildPerEntityParent, message extractors, cluster sharding abstraction, akka-reminders, and ITimeProvider. Supports both local testing and clustered production modes.
What it loads into context
Frontmatter
61 tokensAlways available to the agent
SKILL.md
4,119 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Core Principles
- Execution Modes
- GenericChildPerEntityParent
- Message Extractors
- Akka.Hosting Extension Methods
- Composing Multiple Actors
- Using ITimeProvider for Scheduling
- Akka.Reminders Integration
- Singleton Actors (Not Sharded)
- Marker Types for Registry
- DI Scope Management in Actors
- Cluster Sharding Configuration
- Best Practices
Files
SKILL.mdcore19,959 bytes
Read SKILL.md
# Akka.Hosting Actor Patterns
## When to Use This Skill
Use this skill when:
- Building entity actors that represent domain objects (users, orders, invoices, etc.)
- Need actors that work in both unit tests (no clustering) and production (cluster sharding)
- Setting up scheduled tasks with akka-reminders
- Registering actors with Akka.Hosting extension methods
- Creating reusable actor configuration patterns
## Core Principles
1. **Execution Mode Abstraction** - Same actor code runs locally (tests) or clustered (production)View the complete source on GitHubakka-net-management
When your agent uses it
Akka.Management for cluster bootstrapping, service discovery (Kubernetes, Azure, Config), health checks, and dynamic cluster formation without static seed nodes.
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
2,133 tokensWhen the skill is activated
Reference documents
2,428 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Reference Files
- Overview
- Architecture
- Required NuGet Packages
- Akka.Hosting Configuration
- Health Endpoints
- Troubleshooting
- Aspire Integration
- Summary: When to Use What
Files
SKILL.mdcore10,836 bytesSKILL.mdcore10,836 bytesSKILL.mdcore10,836 bytesconfiguration-reference.mddoc4,552 bytesdiscovery-providers.mddoc6,326 bytes
Read SKILL.md
# Akka.NET Management and Service Discovery
## When to Use This Skill
Use this skill when:
- Deploying Akka.NET clusters to Kubernetes or cloud environments
- Replacing static seed nodes with dynamic service discovery
- Configuring cluster bootstrap for auto-formation
- Setting up health endpoints for load balancers
- Integrating with Azure Table Storage, Kubernetes API, or config-based discovery
## Reference Files
- [discovery-providers.md](discovery-providers.md): Config, Kubernetes, and Azure discovery setup with full code and deployment YAMLView the complete source on GitHubakka-net-testing-patterns
When your agent uses it
Write unit and integration tests for Akka.NET actors using modern Akka.Hosting.TestKit patterns. Covers dependency injection, TestProbes, persistence testing, and actor interaction verification. Includes guidance on when to use traditional TestKit.
What it loads into context
Frontmatter
61 tokensAlways available to the agent
SKILL.md
2,116 tokensWhen the skill is activated
Reference documents
7,323 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Reference Files
- Choosing Your Testing Approach
- Core Principles (Akka.Hosting.TestKit)
- Required NuGet Packages
- CRITICAL: File Watcher Fix for Test Projects
- Testing Patterns Overview
- Common Patterns Summary
- Best Practices
- Debugging Tips
Files
SKILL.mdcore9,771 bytesanti-patterns-and-reference.mddoc5,367 bytesexamples.mddoc29,185 bytes
Read SKILL.md
# Akka.NET Testing Patterns
## When to Use This Skill
Use this skill when:
- Writing unit tests for Akka.NET actors
- Testing persistent actors with event sourcing
- Verifying actor interactions and message flows
- Testing actor supervision and lifecycle
- Mocking external dependencies in actor tests
- Testing cluster sharding behavior locally
- Verifying actor state recovery and persistence
## Reference FilesView the complete source on GitHubaot-trimming
When your agent uses it
Guidelines for making .NET libraries and applications trimming-safe and Native AOT compatible. Covers the trimming/AOT model, the MSBuild properties that enable analysis (IsTrimmable, IsAotCompatible, PublishTrimmed, PublishAot), the trimming attributes (RequiresUnreferencedCode, RequiresDynamicCode, DynamicallyAccessedMembers, UnconditionalSuppressMessage), IL2xxx/IL3xxx warning codes, and a pattern playbook: source generators and UnsafeAccessor, generated-interception diagnostic suppressors, intentional runtime scanning boundaries, trimming-safe islands and feature switches, migration analyzers, and temporary warning-approval baselines. Use when introducing trimming/AOT support, resolving IL2xxx/IL3xxx warnings, or making reflection-heavy code trimming-safe in C# / .NET codebases. For System.Text.Json AOT scenarios, see also the serialization skill.
What it loads into context
Frontmatter
226 tokensAlways available to the agent
SKILL.md
2,689 tokensWhen the skill is activated
Reference documents
11,237 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Core Goals
- Core Model
- Project Configuration
- The Attribute Model
- The Pattern Playbook (selection)
- Reference Files
- Generation Checklist (Summary)
- References
Files
SKILL.mdcore11,714 bytesSKILL.mdcore11,714 bytesSKILL.mdcore11,714 bytesSKILL.mdcore11,714 bytesSKILL.mdcore11,714 bytesSKILL.mdcore11,714 bytesSKILL.mdcore11,714 bytesSKILL.mdcore11,714 bytesSKILL.mdcore11,714 bytesaot-trimming-playbook-reference.mddoc35,323 bytestrimming-attributes-reference.mddoc14,983 bytes
Read SKILL.md
# .NET Trimming and Native AOT
## When to Use
- Adding trimming (`PublishTrimmed`) or Native AOT (`PublishAot`) support to a library or application
- Resolving `IL2xxx` (trimming) and `IL3xxx` (AOT/single-file) warnings
- Making reflection-heavy code trimming-safe
- Replacing runtime reflection, assembly scanning, or `Reflection.Emit` with compile-time alternatives
- Reviewing a codebase or PR for trimming/AOT compatibility, including generated interceptors and analyzer suppressors
- Designing public APIs that must carry trimming annotations
## Core Goals
- Produce code that survives the linker's reachability analysis and runs under Native AOT (no JIT).View the complete source on GitHubaspire-configuration
When your agent uses it
Configure Aspire AppHost to emit explicit app config via environment variables; keep app code free of Aspire clients and service discovery.
What it loads into context
Frontmatter
38 tokensAlways available to the agent
SKILL.md
1,101 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Core Principles
- Configuration Flow
- AppHost Patterns (Explicit Mapping)
- App Code Pattern (No Aspire Clients)
- Feature Toggles and Test Overrides
- Do / Don’t Checklist
- Related Skills
- Resources
Files
SKILL.mdcore5,094 bytes
Read SKILL.md
# Aspire Configuration
## When to Use This Skill
Use this skill when:
- Wiring AppHost resources to application configuration in Aspire-based repos
- Ensuring production configuration is transparent and portable outside of Aspire
- Avoiding Aspire client/service-discovery packages inside application code
- Designing feature toggles for dev/test without changing app code paths
---
## Core Principles
View the complete source on GitHubaspire-integration-testing
When your agent uses it
Write integration tests using .NET Aspire's testing facilities with xUnit. Covers test fixtures, distributed application setup, endpoint discovery, and patterns for testing ASP.NET Core apps with real dependencies.
What it loads into context
Frontmatter
52 tokensAlways available to the agent
SKILL.md
1,807 tokensWhen the skill is activated
Reference documents
3,805 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Reference Files
- Core Principles
- High-Level Testing Architecture
- Required NuGet Packages
- CRITICAL: File Watcher Fix for Integration Tests
- Pattern 1: Basic Aspire Test Fixture (Modern API)
- Pattern 2: Using the Fixture in Tests
- Common Patterns Summary
- Tricky / Non-Obvious Tips
- Best Practices
- Debugging Tips
Files
SKILL.mdcore9,609 bytesadvanced-patterns.mddoc12,677 bytesci-and-tooling.mddoc5,159 bytes
Read SKILL.md
# Integration Testing with .NET Aspire + xUnit
## When to Use This Skill
Use this skill when:
- Writing integration tests for .NET Aspire applications
- Testing ASP.NET Core apps with real database connections
- Verifying service-to-service communication in distributed applications
- Testing with actual infrastructure (SQL Server, Redis, message queues) in containers
- Combining Playwright UI tests with Aspire-orchestrated services
- Testing microservices with proper service discovery and networking
## Reference Files
View the complete source on GitHubmailpit-integration
When your agent uses it
Test email sending locally using Mailpit with .NET Aspire. Captures all outgoing emails without sending them. View rendered HTML, inspect headers, and verify delivery in integration tests.
What it loads into context
Frontmatter
50 tokensAlways available to the agent
SKILL.md
2,656 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- What is Mailpit?
- Aspire AppHost Configuration
- SMTP Configuration
- Email Sender Implementation
- Viewing Captured Emails
- Integration Testing
- Aspire Test Fixture
- Common Test Patterns
- Production vs Development
- Troubleshooting
- Resources
Files
SKILL.mdcore11,389 bytesSKILL.mdcore11,389 bytesSKILL.mdcore11,389 bytes
Read SKILL.md
# Email Testing with Mailpit and .NET Aspire
## When to Use This Skill
Use this skill when:
- Testing email delivery locally without sending real emails
- Setting up email infrastructure in .NET Aspire
- Writing integration tests that verify emails are sent
- Debugging email rendering and headers
**Related skills:**
- `aspnetcore/mjml-email-templates` - MJML template authoring
- `testing/verify-email-snapshots` - Snapshot test rendered HTML
- `aspire/integration-testing` - General Aspire testing patternsView the complete source on GitHubaspire-service-defaults
When your agent uses it
Create a shared ServiceDefaults project for Aspire applications. Centralizes OpenTelemetry, health checks, resilience, and service discovery configuration across all services.
What it loads into context
Frontmatter
43 tokensAlways available to the agent
SKILL.md
2,072 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- What is ServiceDefaults?
- Project Structure
- ServiceDefaults Project
- Usage in Services
- Adding Custom Health Checks
- Adding Custom Trace Sources
- Production Health Checks
- Integration with AppHost
- Best Practices
- Resources
Files
SKILL.mdcore10,438 bytes
Read SKILL.md
# Aspire Service Defaults
## When to Use This Skill
Use this skill when:
- Building Aspire-based distributed applications
- Need consistent observability (logging, tracing, metrics) across services
- Want shared health check configuration
- Configuring HttpClient resilience and service discovery
---
## What is ServiceDefaults?
View the complete source on GitHubcrap-analysis
When your agent uses it
Analyze code coverage and CRAP (Change Risk Anti-Patterns) scores to identify high-risk code. Use OpenCover format with ReportGenerator for Risk Hotspots showing cyclomatic complexity and untested code paths.
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
2,768 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- What is CRAP?
- Coverage Collection Setup
- ReportGenerator Installation
- Collecting Coverage
- Reading the Report
- Coverage Thresholds
- CI/CD Integration
- Quick Reference
- What Gets Excluded
- When to Update Thresholds
- Additional Resources
Files
SKILL.mdcore11,504 bytesSKILL.mdcore11,504 bytesSKILL.mdcore11,504 bytesSKILL.mdcore11,504 bytesSKILL.mdcore11,504 bytesSKILL.mdcore11,504 bytes
Read SKILL.md
# CRAP Score Analysis
## When to Use This Skill
Use this skill when:
- Evaluating code quality and test coverage before changes
- Identifying high-risk code that needs refactoring or testing
- Setting up coverage collection for a .NET project
- Prioritizing which code to test based on risk
- Establishing coverage thresholds for CI/CD pipelines
---
## What is CRAP?View the complete source on GitHubcscheck
When your agent uses it
Write and simplify C# property-based, model-based, and executable specification tests with CsCheck. Use for generators, shrinking, stateful command sequences, Spec guards and rules, implementation conformance, or replaying generated failures.
What it loads into context
Frontmatter
52 tokensAlways available to the agent
SKILL.md
943 tokensWhen the skill is activated
Reference documents
5,849 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Choose the test shape
- Establish the contract first
- Keep the test machinery small
- Verify the right thing
- API baseline
Files
SKILL.mdcore4,679 bytesSKILL.mdcore4,679 bytesreferences/failures.mddoc5,242 bytesreferences/properties.mddoc5,876 bytesreferences/specifications.mddoc9,452 bytesreferences/stateful-and-async.mddoc7,910 bytes
Read SKILL.md
# CsCheck
Use CsCheck to explore inputs and action sequences; keep the application's contract visible in the test.
Let the library generate, shrink, print, and replay counterexamples. Start with the smallest test that
can falsify the claim, rather than building a testing framework around CsCheck.
## Choose the test shape
| What needs checking | Start with | Read when needed |
| --- | --- | --- |
| A function, round trip, algebraic law, or data transformation | `Gen` + `Sample` | [Properties and generators](references/properties.md) |
| An implementation with a simpler reference representation | `SampleModelBased` / `SampleModelBasedAsync` | [Stateful and async tests](references/stateful-and-async.md) |
| A protocol or lifecycle with explicit state, guards, and requirements | `Spec.From`, then `Exhaustive` and `Conform` | [Executable specifications](references/specifications.md) |
| Async resources or expectations that must incorporate observed outcomes | Generated command arrays + `SampleAsync`, with cleanup inside each case | [Stateful and async tests](references/stateful-and-async.md) |View the complete source on GitHubapi-design
When your agent uses it
Design stable, compatible public APIs using extend-only design principles. Manage API compatibility, wire compatibility, and versioning for NuGet packages and distributed systems.
What it loads into context
Frontmatter
43 tokensAlways available to the agent
SKILL.md
2,428 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- The Three Types of Compatibility
- Extend-Only Design
- API Change Guidelines
- API Approval Testing
- Wire Compatibility
- Encapsulation Patterns
- Versioning Strategy
- Pull Request Checklist
- Anti-Patterns
- Resources
Files
SKILL.mdcore10,805 bytesSKILL.mdcore10,805 bytesSKILL.mdcore10,805 bytes
Read SKILL.md
# Public API Design and Compatibility
## When to Use This Skill
Use this skill when:
- Designing public APIs for NuGet packages or libraries
- Making changes to existing public APIs
- Planning wire format changes for distributed systems
- Implementing versioning strategies
- Reviewing pull requests for breaking changes
---
## The Three Types of CompatibilityView the complete source on GitHubmodern-csharp-coding-standards
When your agent uses it
Write modern, high-performance C# code using records, pattern matching, value objects, async/await, Span<T>/Memory<T>, and best-practice API design patterns. Emphasizes functional-style programming with C# 12+ features.
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
2,410 tokensWhen the skill is activated
Reference documents
8,922 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Reference Files
- Core Principles
- Language Patterns
- Composition Over Inheritance
- Performance Patterns
- Error Handling: Result Type
- Avoid Reflection-Based Metaprogramming
- Code Organization
- Best Practices Summary
- Additional Resources
Files
SKILL.mdcore10,695 bytesanti-patterns-and-reflection.mddoc8,770 bytescomposition-and-error-handling.mddoc8,082 bytesperformance-and-api-design.mddoc10,263 bytesvalue-objects-and-patterns.mddoc12,610 bytes
Read SKILL.md
# Modern C# Coding Standards
## When to Use This Skill
Use this skill when:
- Writing new C# code or refactoring existing code
- Designing public APIs for libraries or services
- Optimizing performance-critical code paths
- Implementing domain models with strong typing
- Building async/await-heavy applications
- Working with binary data, buffers, or high-throughput scenarios
## Reference Files
View the complete source on GitHubcsharp-concurrency-patterns
When your agent uses it
Choosing the right concurrency abstraction in .NET - from async/await for I/O to Channels for producer/consumer to Akka.NET for stateful entity management. Avoid locks and manual synchronization unless absolutely necessary.
What it loads into context
Frontmatter
58 tokensAlways available to the agent
SKILL.md
2,013 tokensWhen the skill is activated
Reference documents
2,413 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Reference Files
- The Philosophy
- Decision Tree
- Level 1: async/await (Default Choice)
- Level 2: Parallel.ForEachAsync (CPU-Bound Parallelism)
- Level 3: System.Threading.Channels (Producer/Consumer)
- Level 4+: Akka.NET Streams, Reactive Extensions, Actors
- Anti-Patterns: What to Avoid
- Quick Reference: Which Tool When?
- The Escalation Path
Files
SKILL.mdcore8,966 bytesadvanced-concurrency.mddoc11,135 bytes
Read SKILL.md
# .NET Concurrency: Choosing the Right Tool
## When to Use This Skill
Use this skill when:
- Deciding how to handle concurrent operations in .NET
- Evaluating whether to use async/await, Channels, Akka.NET, or other abstractions
- Tempted to use locks, semaphores, or other synchronization primitives
- Need to process streams of data with backpressure, batching, or debouncing
- Managing state across multiple concurrent entities
## Reference Files
- [advanced-concurrency.md](advanced-concurrency.md): Akka.NET Streams, Reactive Extensions, Akka.NET Actors (entity-per-actor, state machines, cluster sharding), and async local function patternsView the complete source on GitHubcsharp-nullable-reference-types
When your agent uses it
Guidelines for introducing and using nullable reference types (NRT) and System.Diagnostics.CodeAnalysis nullable attributes in C# / .NET codebases. Covers the nullability model, flow analysis, the null-forgiving operator, API design rules, the full attribute catalog (AllowNull, DisallowNull, MaybeNull, NotNull, NotNullWhen, MaybeNullWhen, NotNullIfNotNull, MemberNotNull, MemberNotNullWhen, DoesNotReturn, DoesNotReturnIf), the C# 14 field keyword, incremental migration of legacy codebases, and a code-generation checklist.
What it loads into context
Frontmatter
163 tokensAlways available to the agent
SKILL.md
2,526 tokensWhen the skill is activated
Reference documents
6,784 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Core Goals
- Core Nullability Model
- Project Configuration
- API Design Rules (Signatures)
- The `field` Keyword (C# 14 / .NET 10)
- Reference Files
- Generation Checklist (Summary)
- References
Files
SKILL.mdcore11,610 bytesSKILL.mdcore11,610 bytesSKILL.mdcore11,610 bytesnrt-migration-playbook-reference.mddoc15,004 bytesnullable-attributes-reference.mddoc14,639 bytes
Read SKILL.md
# C# Nullable Reference Types
## When to Use
- Introducing nullable reference types (NRT) into a codebase that has not yet adopted them
- Writing or refactoring C# code that uses `T?` / nullable annotations
- Annotating APIs with `System.Diagnostics.CodeAnalysis` nullable attributes
- Designing public/internal APIs where nullability contracts matter
- Wrapping unannotated or legacy APIs so downstream callers still benefit from NRT
- Reviewing code for correct null-state analysis, guard helpers, and the `field` keyword
## Core Goals
- Prevent `NullReferenceException` at runtime by making null intent explicit in signatures.View the complete source on GitHubtype-design-performance
When your agent uses it
Design .NET types for performance. Seal classes, use readonly structs, prefer static pure functions, avoid premature enumeration, and choose the right collection types.
What it loads into context
Frontmatter
44 tokensAlways available to the agent
SKILL.md
2,309 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Core Principles
- Seal Classes by Default
- Readonly Structs for Value Types
- Prefer Static Pure Functions
- Defer Enumeration
- ValueTask vs Task
- Span and Memory for Bytes
- Collection Return Types
- Quick Reference
- Anti-Patterns
- Resources
Files
SKILL.mdcore10,008 bytes
Read SKILL.md
# Type Design for Performance
## When to Use This Skill
Use this skill when:
- Designing new types and APIs
- Reviewing code for performance issues
- Choosing between class, struct, and record
- Working with collections and enumerables
---
## Core Principles
View the complete source on GitHubdatabase-performance
When your agent uses it
Database access patterns for performance. Separate read/write models, avoid N+1 queries, use AsNoTracking, apply row limits, and never do application-side joins. Works with EF Core and Dapper.
What it loads into context
Frontmatter
65 tokensAlways available to the agent
SKILL.md
3,276 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Core Principles
- Read/Write Model Separation (CQRS Pattern)
- Always Apply Row Limits
- AsNoTracking for Read Queries
- Avoid N+1 Queries
- Never Do Application-Side Joins
- Avoid Cartesian Explosions
- Constrain Column Sizes
- Don't Build Generic Repositories
- Dapper for Read-Heavy Workloads
- When to Use EF Core vs Dapper
- Quick Reference
- Resources
Files
SKILL.mdcore14,055 bytes
Read SKILL.md
# Database Performance Patterns
## When to Use This Skill
Use this skill when:
- Designing data access layers
- Optimizing slow database queries
- Choosing between EF Core and Dapper
- Avoiding common performance pitfalls
---
## Core Principles
View the complete source on GitHubdotnet-devcert-trust
When your agent uses it
Diagnose and fix .NET HTTPS dev certificate trust issues on Linux. Covers the full certificate lifecycle from generation to system CA bundle inclusion, with distro-specific guidance for Ubuntu, Fedora, Arch, and WSL2.
What it loads into context
Frontmatter
59 tokensAlways available to the agent
SKILL.md
4,086 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- The Problem
- How Linux Certificate Trust Works
- 5-Point Diagnostic Procedure
- Full Recovery Procedure
- Distro-Specific Notes
- Aspire-Specific Considerations
- Certificate Lifecycle
- Automation: CI/CD Pipelines
- Common Pitfalls
- Quick Reference
- Related Skills
Files
SKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytesSKILL.mdcore16,544 bytes
Read SKILL.md
# .NET Dev Certificate Trust on Linux
## When to Use This Skill
Use this skill when:
- Redis TLS connections fail with `UntrustedRoot` or `RemoteCertificateNameMismatch` in Aspire
- `dotnet dev-certs https --check --trust` returns exit code 7
- HTTPS localhost connections fail with certificate validation errors
- After running `dotnet dev-certs https --clean` and needing to restore trust
- Setting up a new Linux dev machine for .NET HTTPS development
- Aspire dashboard or inter-service gRPC calls fail with TLS errors
- Upgrading from Aspire < 13.1.0 (which didn't use TLS on Redis by default)
## The ProblemView the complete source on GitHubefcore-patterns
When your agent uses it
Entity Framework Core best practices including NoTracking by default, query splitting for navigation collections, migration management, dedicated migration services, and common pitfalls to avoid.
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
3,884 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Core Principles
- Pattern 1: NoTracking by Default
- Pattern 2: Never Edit Migrations Manually
- Pattern 3: Dedicated Migration Service with Aspire
- Pattern 4: ExecutionStrategy for Transient Failures
- Pattern 5: Bulk Operations with ExecuteUpdate/ExecuteDelete
- Common Pitfalls
- DbContext Lifetime in DI
- Pattern 6: Query Splitting to Prevent Cartesian Explosion
- Testing with EF Core
Files
SKILL.mdcore18,107 bytesSKILL.mdcore18,107 bytesSKILL.mdcore18,107 bytesSKILL.mdcore18,107 bytesSKILL.mdcore18,107 bytes
Read SKILL.md
# Entity Framework Core Patterns
## When to Use This Skill
Use this skill when:
- Setting up EF Core in a new project
- Optimizing query performance
- Managing database migrations
- Integrating EF Core with .NET Aspire
- Debugging change tracking issues
- Loading multiple navigation collections efficiently (query splitting)
## Core Principles
View the complete source on GitHubilspy-decompile
When your agent uses it
Understand implementation details of .NET code by decompiling assemblies. Use when you want to see how a .NET API works internally, inspect NuGet package source, view framework implementation, or understand compiled .NET binaries.
What it loads into context
Frontmatter
61 tokensAlways available to the agent
SKILL.md
550 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- Quick start
- Common .NET Assembly Locations
- Core workflow
- Commands
- Notes on modern .NET builds
- Legal note
Files
SKILL.mdcore2,127 bytesSKILL.mdcore2,127 bytesSKILL.mdcore2,127 bytesSKILL.mdcore2,127 bytesSKILL.mdcore2,127 bytesSKILL.mdcore2,127 bytesSKILL.mdcore2,127 bytesSKILL.mdcore2,127 bytesSKILL.mdcore2,127 bytes
Read SKILL.md
# .NET Assembly Decompilation with ILSpy
Use this skill to understand how .NET code works internally by decompiling compiled assemblies.
## Prerequisites
- .NET SDK installed
- ILSpy command-line tool available via one of the following:
- `dnx ilspycmd` (if available in your SDK or runtime)
- `dotnet tool install --global ilspycmd`
Both forms are shown below. Use the one that works in your environment.
> Note: ILSpyCmd options may vary slightly by version. View the complete source on GitHubdotnet-local-tools
When your agent uses it
Managing local .NET tools with dotnet-tools.json for consistent tooling across development environments and CI/CD pipelines.
What it loads into context
Frontmatter
36 tokensAlways available to the agent
SKILL.md
2,400 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- What Are Local Tools?
- Setting Up Local Tools
- dotnet-tools.json Format
- Common Tools
- CI/CD Integration
- Managing Tool Versions
- Best Practices
- Troubleshooting
- Example: Complete Development Setup
Files
SKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytesSKILL.mdcore8,917 bytes
Read SKILL.md
# .NET Local Tools
## When to Use This Skill
Use this skill when:
- Setting up consistent tooling across a development team
- Ensuring CI/CD pipelines use the same tool versions as local development
- Managing project-specific CLI tools (docfx, incrementalist, dotnet-ef, etc.)
- Avoiding global tool version conflicts between projects
## What Are Local Tools?
Local tools are .NET CLI tools that are installed and versioned per-repository rather than globally. They're defined in `.config/dotnet-tools.json` and restored with `dotnet tool restore`.
View the complete source on GitHubmarketplace-publishing
When your agent uses it
Workflow for publishing skills and agents to the dotnet-skills Claude Code marketplace. Covers adding new content, updating plugin.json, validation, and release tagging.
What it loads into context
Frontmatter
39 tokensAlways available to the agent
SKILL.md
1,515 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Repository Structure
- Adding a New Skill
- Adding a New Agent
- Publishing a Release
- User Installation
- Validation Checklist
- Troubleshooting
Scripts executed separately
../../scripts/validate-marketplace.sh
Files
../../scripts/validate-marketplace.shruns4,749 bytesSKILL.mdcore6,066 bytesSKILL.mdcore6,066 bytesSKILL.mdcore6,066 bytesSKILL.mdcore6,066 bytesSKILL.mdcore6,066 bytesSKILL.mdcore6,066 bytesSKILL.mdcore6,066 bytesSKILL.mdcore6,066 bytes
Read SKILL.md
# Marketplace Publishing Workflow
This skill documents how to publish skills and agents to the dotnet-skills Claude Code marketplace.
## Repository Structure
```
dotnet-skills/
├── .claude-plugin/
│ ├── marketplace.json # Marketplace catalog
│ └── plugin.json # Plugin metadata + skill/agent registry
├── .github/workflows/
│ └── release.yml # Release automation
├── skills/View the complete source on GitHubmicrosoft-extensions-configuration
When your agent uses it
Microsoft.Extensions.Options patterns including IValidateOptions, strongly-typed settings, validation on startup, and the Options pattern for clean configuration management.
What it loads into context
Frontmatter
43 tokensAlways available to the agent
SKILL.md
2,090 tokensWhen the skill is activated
Reference documents
1,825 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Reference Files
- Why Configuration Validation Matters
- Pattern 1: Basic Options Binding
- Pattern 2: Data Annotations Validation
- Pattern 3: IValidateOptions<T> for Complex Validation
- Pattern 4: Options Lifetime
- Pattern 5: Post-Configuration
- Anti-Patterns to Avoid
- Summary
Files
SKILL.mdcore9,610 bytesadvanced-patterns.mddoc9,402 bytes
Read SKILL.md
# Microsoft.Extensions Configuration Patterns
## When to Use This Skill
Use this skill when:
- Binding configuration from appsettings.json to strongly-typed classes
- Validating configuration at application startup (fail fast)
- Implementing complex validation logic for settings
- Designing configuration classes that are testable and maintainable
- Understanding IOptions<T>, IOptionsSnapshot<T>, and IOptionsMonitor<T>
## Reference Files
- [advanced-patterns.md](advanced-patterns.md): Validators with dependencies, named options, complete production example (AkkaSettings), and testing validatorsView the complete source on GitHubdependency-injection-patterns
When your agent uses it
Organize DI registrations using IServiceCollection extension methods. Group related services into composable Add* methods for clean Program.cs and reusable configuration in tests.
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
1,960 tokensWhen the skill is activated
Reference documents
1,463 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Reference Files
- The Problem
- The Solution: Extension Method Composition
- Extension Method Pattern
- File Organization
- Naming Conventions
- Testing Benefits
- Layered Extensions
- Akka.Hosting Integration
- Anti-Patterns
- Best Practices Summary
- Lifetime Management
- Common Mistakes
- Resources
Files
SKILL.mdcore9,751 bytesadvanced-patterns.mddoc7,332 bytes
Read SKILL.md
# Dependency Injection Patterns
## When to Use This Skill
Use this skill when:
- Organizing service registrations in ASP.NET Core applications
- Avoiding massive Program.cs/Startup.cs files with hundreds of registrations
- Making service configuration reusable between production and tests
- Designing libraries that integrate with Microsoft.Extensions.DependencyInjection
## Reference Files
- [advanced-patterns.md](advanced-patterns.md): Testing with DI extensions, Akka.NET actor scope management, conditional/factory/keyed registration patterns
View the complete source on GitHubmjml-email-templates
When your agent uses it
Build responsive email templates using MJML markup language. Compiles to cross-client HTML that works in Outlook, Gmail, and Apple Mail. Includes template renderer, layout patterns, and variable substitution.
What it loads into context
Frontmatter
54 tokensAlways available to the agent
SKILL.md
2,467 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Why MJML?
- Installation
- Project Structure
- Layout Template (_Layout.mjml)
- Content Template
- Template Renderer
- Email Composer Pattern
- Email Preview Endpoint
- Best Practices
- MJML Components Reference
- Resources
Files
SKILL.mdcore10,706 bytesSKILL.mdcore10,706 bytes
Read SKILL.md
# MJML Email Templates
## When to Use This Skill
Use this skill when:
- Building transactional emails (signup, password reset, invoices, notifications)
- Creating responsive email templates that work across clients
- Setting up MJML template rendering in .NET
**Related skills:**
- `aspire/mailpit-integration` - Test emails locally with Mailpit
- `testing/verify-email-snapshots` - Snapshot test rendered HTML
---View the complete source on GitHubopentelemetry-net-instrumentation
When your agent uses it
Provides guidance for implementing OpenTelemetry instrumentation in .NET codebases, covering tracing (Activities/Spans), metrics, logs, naming conventions, error handling, performance, SDK setup, resources, context propagation, and API design best practices.
What it loads into context
Frontmatter
103 tokensAlways available to the agent
SKILL.md
6,248 tokensWhen the skill is activated
Reference documents
19,693 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Architecture: .NET Is Different
- Core Principles
- Traces / Spans (Activities)
- Metrics
- Performance Requirements
- Testing Requirements
- Versioning
- Logs
- Reference Files
- References
Files
SKILL.mdcore27,837 bytesSKILL.mdcore27,837 bytesmetrics-and-instruments-reference.mddoc19,304 bytessdk-resources-and-logs-reference.mddoc26,973 bytestraces-and-propagation-reference.mddoc40,104 bytes
Read SKILL.md
# OpenTelemetry .NET Instrumentation Skill
## When to Use
- Adding OpenTelemetry instrumentation to .NET code (traces, metrics, logs)
- Creating or modifying ActivitySources, Meters, or ILogger usage
- Setting up the OpenTelemetry SDK, resources, exporters, or sampling
- Reviewing telemetry implementations for spec compliance
- Optimizing instrumentation performance
- Designing telemetry APIs that become part of the public surface
- Implementing context propagation across service boundaries
## Architecture: .NET Is Different
View the complete source on GitHubpackage-management
When your agent uses it
Manage NuGet packages using Central Package Management (CPM) and dotnet CLI commands. Never edit XML directly - use dotnet add/remove/list commands. Use shared version variables for related packages.
What it loads into context
Frontmatter
52 tokensAlways available to the agent
SKILL.md
2,942 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Golden Rule: Never Edit XML Directly
- Central Package Management (CPM)
- Shared Version Variables
- When NOT to Use CPM
- CLI Command Reference
- Package Sources
- Common Patterns
- Troubleshooting
- Anti-Patterns
- Quick Reference
- Resources
Files
SKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytesSKILL.mdcore12,141 bytes
Read SKILL.md
# NuGet Package Management
## When to Use This Skill
Use this skill when:
- Adding, removing, or updating NuGet packages
- Setting up Central Package Management (CPM) for a solution
- Managing package versions across multiple projects
- Troubleshooting package conflicts or restore issues
---
## Golden Rule: Never Edit XML Directly
View the complete source on GitHubplaywright-blazor-testing
When your agent uses it
Write UI tests for Blazor applications (Server or WebAssembly) using Playwright. Covers navigation, interaction, authentication, selectors, and common Blazor-specific patterns.
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
3,964 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Core Principles
- Required NuGet Packages
- Installation
- Pattern 1: Basic Playwright Setup
- Pattern 2: Navigation in Blazor Apps
- Pattern 3: Stable Selectors with Test Attributes
- Pattern 4: Handling Authentication
- Pattern 5: Click Events and Touch Interactions
- Pattern 6: Form Handling
- Pattern 7: Handling Blazor Error UI
- Pattern 8: Testing Real-Time Updates (SignalR)
- Pattern 9: Screenshot and Visual Testing
- Pattern 10: Running Against HTTPS with Dev Certs
- Common Selectors for Blazor Components
- Parallelization Considerations
- CI/CD Integration
- Debugging Tips
- Best Practices
- Advanced: Custom Wait Helpers
Files
SKILL.mdcore16,958 bytesSKILL.mdcore16,958 bytesSKILL.mdcore16,958 bytes
Read SKILL.md
# Testing Blazor Applications with Playwright
## When to Use This Skill
Use this skill when:
- Writing end-to-end UI tests for Blazor Server or WebAssembly applications
- Testing interactive components, forms, and user workflows
- Verifying authentication and authorization flows
- Testing SignalR-based real-time updates in Blazor Server
- Capturing screenshots for visual regression testing
- Testing responsive designs and mobile emulation
- Debugging UI issues with browser developer tools
## Core PrinciplesView the complete source on GitHubplaywright-ci-caching
When your agent uses it
Cache Playwright browser binaries in CI/CD pipelines (GitHub Actions, Azure DevOps) to avoid 1-2 minute download overhead on every build.
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
1,761 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- The Problem
- Core Pattern
- Cache Paths by OS
- GitHub Actions
- Azure DevOps
- Helper Script: playwright.ps1
- Prerequisites
- Why Version-Based Cache Keys Matter
- Troubleshooting
- References
- Related Skills
Files
SKILL.mdcore6,905 bytesSKILL.mdcore6,905 bytesSKILL.mdcore6,905 bytesSKILL.mdcore6,905 bytesSKILL.mdcore6,905 bytesSKILL.mdcore6,905 bytes
Read SKILL.md
# Caching Playwright Browsers in CI/CD
## When to Use This Skill
Use this skill when:
- Setting up CI/CD for a project with Playwright E2E tests
- Build times are slow due to browser downloads (~400MB, 1-2 minutes)
- You want automatic cache invalidation when Playwright version changes
- Using GitHub Actions or Azure DevOps pipelines
## The Problem
Playwright browsers (~400MB) must be downloaded on every CI run by default. This:
- Adds 1-2 minutes to every buildView the complete source on GitHubdotnet-project-structure
When your agent uses it
Modern .NET project structure including .slnx solution format, Directory.Build.props, central package management, SourceLink, version management with RELEASE_NOTES.md, and SDK pinning with global.json.
What it loads into context
Frontmatter
56 tokensAlways available to the agent
SKILL.md
3,836 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Related Skills
- Solution File Format (.slnx)
- Directory.Build.props
- Directory.Packages.props - Central Package Management
- global.json - SDK Version Pinning
- Version Management with RELEASE_NOTES.md
- NuGet.Config
- Complete Project Structure
- Quick Reference
Files
SKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytesSKILL.mdcore15,354 bytes
Read SKILL.md
# .NET Project Structure and Build Configuration
## When to Use This Skill
Use this skill when:
- Setting up a new .NET solution with modern best practices
- Configuring centralized build properties across multiple projects
- Implementing central package version management
- Setting up SourceLink for debugging and NuGet packages
- Automating version management with release notes
- Pinning SDK versions for consistent builds
## Related Skills
View the complete source on GitHubr3-reactive-extensions
When your agent uses it
Build reactive/event-driven C# with R3 (Cysharp's modern reimplementation of Reactive Extensions). Covers the Observable<T>/Observer<T> model, the OnErrorResume error contract, async dispatch with AwaitOperation, Task/IAsyncEnumerable integration, TimeProvider/FrameProvider scheduling, the concurrency contract, and how R3 differs from System.Reactive (Rx.NET).
What it loads into context
Frontmatter
90 tokensAlways available to the agent
SKILL.md
3,292 tokensWhen the skill is activated
Reference documents
7,209 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Reference Files
- Why R3 Exists (the "why use it")
- Install
- The Mental Model
- Core Behavior, Verified
- How R3 Handles Concurrent Updates
- Time vs Frames: TimeProvider and FrameProvider
- Best Practices Summary
- Additional Resources
Files
SKILL.mdcore13,766 bytesSKILL.mdcore13,766 bytesSKILL.mdcore13,766 bytesasync-and-integration-patterns.mddoc8,550 bytesrx-net-differences.mddoc12,421 bytesscheduling-and-concurrency.mddoc7,843 bytes
Read SKILL.md
# R3: Modern Reactive Extensions for .NET
R3 is [Cysharp's](https://github.com/Cysharp/R3) ground-up reimplementation of Reactive
Extensions — "the new future of dotnet/reactive and UniRx." It keeps the LINQ-over-events
programming model but rebuilds the core types, error contract, and scheduler to fix
long-standing problems in `System.Reactive` (Rx.NET). Use this skill when composing event
streams, UI input, timers, or push-based pipelines in C#.
**Canonical sources** (link to these from code and docs):
- Repository: https://github.com/Cysharp/R3
- README (full operator reference): https://github.com/Cysharp/R3/blob/main/README.md
- Author's design rationale: https://neuecc.medium.com/r3-a-new-modern-reimplementation-of-reactive-extensions-for-c-cf29abcc5826
## When to Use This SkillView the complete source on GitHubsdk-container-publishing
When your agent uses it
Publish .NET services as container images with the built-in SDK tooling (dotnet publish /t:PublishContainer, Microsoft.NET.Build.Containers) - no Dockerfile required. Covers the MSBuild property surface, base-image inference, self-contained and AOT implications, and CI/CD publishing.
What it loads into context
Frontmatter
71 tokensAlways available to the agent
SKILL.md
2,191 tokensWhen the skill is activated
Reference documents
5,154 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- What This Is
- The Three Output Modes
- Key Facts
- The Minimal Property Set (the pattern we use)
- CI / CD Publishing
- Troubleshooting
- Self-Contained and AOT
- Verification
- Related Skills
Files
SKILL.mdcore9,336 bytesSKILL.mdcore9,336 bytesSKILL.mdcore9,336 bytesSKILL.mdcore9,336 bytesreferences/ci-cd.mddoc5,420 bytesreferences/property-reference.mddoc5,123 bytesreferences/real-world-examples.mddoc5,110 bytesreferences/self-contained-and-aot.mddoc2,135 bytesreferences/troubleshooting.mddoc4,158 bytes
Read SKILL.md
# .NET SDK Container Publishing
## When to Use This Skill
Use this skill when:
- You want a container image for a .NET service and do not want to hand-write a Dockerfile
- You want to know how to tag, name, or expose ports on an SDK-built image without a Dockerfile
- You are wiring container publishing into CI / CD or a release pipeline
- An SDK-built image pushes to the wrong registry, gets the wrong tag, or picks the wrong base image
- You need a tarball of an image for scanning or air-gapped loading
Do not use it when:
- You need a `RUN` step or arbitrary layer customization in the image. The SDK tooling cannot emulate `RUN`; write a Dockerfile instead.
View the complete source on GitHubserialization
When your agent uses it
Choose the right serialization format for .NET applications. Prefer schema-based formats (Protobuf, MessagePack) over reflection-based (Newtonsoft.Json). Use System.Text.Json with AOT source generators for JSON scenarios.
What it loads into context
Frontmatter
54 tokensAlways available to the agent
SKILL.md
2,558 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Schema-Based vs Reflection-Based
- Format Recommendations
- System.Text.Json with Source Generators
- Protocol Buffers (Protobuf)
- MessagePack
- Migrating from Newtonsoft.Json
- Wire Compatibility Patterns
- Performance Comparison
- Akka.NET Serialization
- Best Practices
- Resources
Files
SKILL.mdcore11,143 bytesSKILL.mdcore11,143 bytesSKILL.mdcore11,143 bytesSKILL.mdcore11,143 bytesSKILL.mdcore11,143 bytesSKILL.mdcore11,143 bytesSKILL.mdcore11,143 bytesSKILL.mdcore11,143 bytesSKILL.mdcore11,143 bytesSKILL.mdcore11,143 bytesSKILL.mdcore11,143 bytes
Read SKILL.md
# Serialization in .NET
## When to Use This Skill
Use this skill when:
- Choosing a serialization format for APIs, messaging, or persistence
- Migrating from Newtonsoft.Json to System.Text.Json
- Implementing AOT-compatible serialization
- Designing wire formats for distributed systems
- Optimizing serialization performance
---
## Schema-Based vs Reflection-BasedView the complete source on GitHubskills-index-snippets
When your agent uses it
Create and maintain AGENTS.md / CLAUDE.md snippet indexes that route tasks to the correct dotnet-skills skills and agents (including compressed Vercel-style indexes).
What it loads into context
Frontmatter
50 tokensAlways available to the agent
SKILL.md
1,070 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Goal
- Source of Truth
- Minimal Snippet Template (Readable)
- Compressed Snippet Template (Vercel-style)
- How to Update Snippets After Skill Changes
- Recommended Categories
Scripts executed separately
../../scripts/generate-skill-index-snippets.sh../../scripts/validate-marketplace.sh
Files
../../scripts/generate-skill-index-snippets.shruns3,607 bytes../../scripts/validate-marketplace.shruns4,749 bytesSKILL.mdcore4,656 bytesSKILL.mdcore4,656 bytes
Read SKILL.md
# Maintaining Skill Index Snippets (AGENTS.md / CLAUDE.md)
## When to Use This Skill
Use this skill when:
- Adding, removing, or renaming any skills or agents in this repository
- Updating `.claude-plugin/plugin.json`
- Creating copy/paste snippets for downstream repositories (OpenCode, Claude Code, etc.)
- You want a compact, always-on index that improves skill utilization
## Goal
Make skills and agents easy for coding assistants to use by removing the decision point.
View the complete source on GitHubdotnet-slopwatch
When your agent uses it
Use Slopwatch to detect LLM reward hacking in .NET code changes. Run after every code modification to catch disabled tests, suppressed warnings, empty catch blocks, and other shortcuts that mask real problems.
What it loads into context
Frontmatter
51 tokensAlways available to the agent
SKILL.md
2,016 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- What is Slop?
- Installation
- First-Time Setup: Establish a Baseline
- Usage During LLM Sessions
- Claude Code Hook Integration
- CI/CD Integration
- Detection Rules
- Configuration
- The Philosophy: Zero Tolerance for New Slop
- Quick Reference
- When to Override (Almost Never)
Files
SKILL.mdcore8,173 bytesSKILL.mdcore8,173 bytesSKILL.mdcore8,173 bytesSKILL.mdcore8,173 bytesSKILL.mdcore8,173 bytesSKILL.mdcore8,173 bytesSKILL.mdcore8,173 bytesSKILL.mdcore8,173 bytesSKILL.mdcore8,173 bytesSKILL.mdcore8,173 bytes
Read SKILL.md
# Slopwatch: LLM Anti-Cheat for .NET
## When to Use This Skill
**Use this skill constantly.** Every time an LLM (including Claude) makes changes to:
- C# source files (.cs)
- Project files (.csproj)
- Props files (Directory.Build.props, Directory.Packages.props)
- Test files
Run slopwatch to validate the changes don't introduce "slop."
## What is Slop?
View the complete source on GitHubsnapshot-testing
When your agent uses it
Use Verify for snapshot testing in .NET. Approve API surfaces, HTTP responses, rendered emails, and serialized outputs. Detect unintended changes through human-reviewed baseline files.
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
2,160 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- What is Snapshot Testing?
- Installation
- Basic Usage
- Email Template Testing
- API Surface Approval
- HTTP Response Testing
- Scrubbing Dynamic Values
- File Organization
- CI/CD Integration
- When to Use Snapshot Testing
- Best Practices
- Integration with MJML Email Testing
- Resources
Files
SKILL.mdcore9,211 bytesSKILL.mdcore9,211 bytesSKILL.mdcore9,211 bytesSKILL.mdcore9,211 bytes
Read SKILL.md
# Snapshot Testing with Verify
## When to Use This Skill
Use snapshot testing when:
- Verifying rendered output (HTML emails, reports, generated code)
- Approving public API surfaces for breaking change detection
- Testing HTTP response bodies and headers
- Validating serialization output
- Catching unintended changes in complex objects
---
## What is Snapshot Testing?View the complete source on GitHubtestcontainers-integration-tests
When your agent uses it
Write integration tests using TestContainers for .NET with xUnit. Covers infrastructure testing with real databases, message queues, and caches in Docker containers instead of mocks.
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
2,170 tokensWhen the skill is activated
Reference documents
3,397 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Reference Files
- Core Principles
- TestContainers 4.x API
- Why TestContainers Over Mocks?
- Required NuGet Packages
- Required Usings
- Best Practices
- Common Issues and Solutions
- CI/CD Integration
- Performance Tips
Files
SKILL.mdcore9,701 bytesdatabase-patterns.mddoc5,498 bytesinfrastructure-patterns.mddoc10,629 bytes
Read SKILL.md
# Integration Testing with TestContainers
## When to Use This Skill
Use this skill when:
- Writing integration tests that need real infrastructure (databases, caches, message queues)
- Testing data access layers against actual databases
- Verifying message queue integrations
- Testing Redis caching behavior
- Avoiding mocks for infrastructure components
- Ensuring tests work against production-like environments
- Testing database migrations and schema changes
## Reference FilesView the complete source on GitHubverify-email-snapshots
When your agent uses it
Snapshot test email templates using Verify to catch regressions. Validates rendered HTML output matches approved baseline. Works with MJML templates and any email renderer.
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
1,950 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Why Snapshot Test Emails?
- Installation
- Basic Email Snapshot Test
- Reviewing Email Changes
- Test Each Template Variant
- Scrubbing Dynamic Values
- Test Fixture for Email Tests
- Composer Snapshot Tests
- CI Integration
- Best Practices
- Workflow
- Resources
Files
SKILL.mdcore8,370 bytesSKILL.mdcore8,370 bytesSKILL.mdcore8,370 bytesSKILL.mdcore8,370 bytes
Read SKILL.md
# Snapshot Testing Email Templates with Verify
## When to Use This Skill
Use this skill when:
- Testing email template rendering for regressions
- Validating MJML templates compile to expected HTML
- Reviewing email changes in code review (diffs are visual)
- Ensuring variable substitution works correctly
**Related skills:**
- `aspnetcore/mjml-email-templates` - MJML template authoring
- `aspire/mailpit-integration` - Test email delivery locally
- `testing/snapshot-testing` - General Verify patternsView the complete source on GitHubSkills included
- akka-net-aspire-configuration
- akka-net-best-practices
- akka-hosting-actor-patterns
- akka-net-management
- akka-net-testing-patterns
- aot-trimming
- aspire-configuration
- aspire-integration-testing
- mailpit-integration
- aspire-service-defaults
- crap-analysis
- cscheck
- api-design
- modern-csharp-coding-standards
- csharp-concurrency-patterns
- csharp-nullable-reference-types
- type-design-performance
- database-performance
- dotnet-devcert-trust
- efcore-patterns
- ilspy-decompile
- dotnet-local-tools
- marketplace-publishing
- microsoft-extensions-configuration
- dependency-injection-patterns
- mjml-email-templates
- opentelemetry-net-instrumentation
- package-management
- playwright-blazor-testing
- playwright-ci-caching
- dotnet-project-structure
- r3-reactive-extensions
- sdk-container-publishing
- serialization
- skills-index-snippets
- dotnet-slopwatch
- snapshot-testing
- testcontainers-integration-tests
- verify-email-snapshots
Repository facts
- License
- MIT
- Created
- Nov 12, 2025
- Last pushed
- Oct 28, 2026
- Forks
- 117
- Open issues
- 4
- Project activity
- Active
Rank over the last 12 weeks
Now #749 · best #524 · down 107 in 30 days
- #735 on Nov 1
- #737 on Nov 2
- #746 on Nov 3
- #748 on Nov 4
- #747 on Nov 5
- #749 since Nov 6
70 earlier periods
- #560 on Aug 1
- #513 on Aug 7
- #508 on Aug 9
- #531 on Aug 13
- #530 on Aug 14
- #516 on Aug 15
- #527 on Aug 16
- #546 on Aug 18
- #536 from Aug 19 to Aug 20
- #541 on Aug 21
- #524 on Aug 22
- #544 on Aug 23
- #547 on Aug 24
- #558 on Aug 25
- #546 on Aug 26
- #559 on Aug 27
- #567 on Aug 28
- #535 on Aug 30
- #566 on Sep 1
- #559 on Sep 2
- #561 on Sep 3
- #544 on Sep 4
- #539 on Sep 5
- #554 on Sep 6
- #564 on Sep 7
- #582 on Sep 8
- #569 on Sep 9
- #573 on Sep 10
- #565 on Sep 11
- #560 on Sep 12
- #588 on Sep 14
- #579 on Sep 15
- #586 on Sep 16
- #580 on Sep 17
- #586 on Sep 18
- #569 on Sep 19
- #595 on Sep 22
- #573 on Sep 24
- #566 on Sep 25
- #565 on Sep 26
- #588 on Sep 27
- #591 on Sep 28
- #614 on Sep 29
- #603 on Sep 30
- #585 on Oct 1
- #594 on Oct 2
- #573 on Oct 3
- #590 on Oct 4
- #599 on Oct 5
- #609 on Oct 7
- #642 on Oct 8
- #626 on Oct 9
- #610 on Oct 10
- #609 on Oct 11
- #626 from Oct 12 to Oct 13
- #638 on Oct 14
- #633 on Oct 15
- #642 on Oct 16
- #622 on Oct 17
- #615 on Oct 18
- #647 on Oct 19
- #656 on Oct 20
- #665 on Oct 21
- #645 on Oct 22
- #628 on Oct 24
- #714 on Oct 25
- #721 on Oct 28
- #727 on Oct 29
- #728 on Oct 30
- #733 on Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 169 notes
agents/akka-net-specialist.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/roslyn-incremental-generator-specialist.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/roslyn-incremental-generator-specialist.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/roslyn-incremental-generator-specialist.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/roslyn-incremental-generator-specialist.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/roslyn-incremental-generator-specialist.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/roslyn-incremental-generator-specialist.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/roslyn-incremental-generator-specialist.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/roslyn-incremental-generator-specialist.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/roslyn-incremental-generator-specialist.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/roslyn-incremental-generator-specialist.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/akka-aspire-configuration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/akka-best-practices/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/akka-best-practices/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/akka-best-practices/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/akka-net-specialist.md:1Plugin-wide analysis incomplete; see repository notesskills/akka-management/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/akka-management/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedagents/akka-net-specialist.md:1Plugin-wide analysis incomplete; see repository notesskills/aot-trimming/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 78 dangerous shell commandsin 3 files: skills/dotnet-devcert-trust/SKILL.md:102 skills/crap-analysis/SKILL.md:140 skills/efcore-patterns/SKILL.md:163
- No hidden or obfuscated text
- No instruction overrides
- 3 executable scriptsin 2 files: scripts/validate-marketplace.sh:1 scripts/generate-skill-index-snippets.sh:1
- 6 references to secretsin 3 files: scripts/generate-skill-index-snippets.sh:92 skills/project-structure/SKILL.md:445 skills/sdk-container-publishing/references/ci-cd.md:58
- No requests to vote in Hot
Show all 770 signals by file
.claude-plugin/marketplace.json
- Network accessline 4
"owner": { "name": "Aaron Stannard", "url": "https://github.com/Aaronontheweb" - Network accessline 5
"name": "Aaron Stannard", "url": "https://github.com/Aaronontheweb" }, - Network accessline 6
"url": "https://github.com/Aaronontheweb" - Network accessline 7
}, "repository": "https://github.com/Aaronontheweb/dotnet-skills", "plugins": [ - Network accessline 8
"repository": "https://github.com/Aaronontheweb/dotnet-skills",
.claude-plugin/plugin.json
- Network accessline 5
"author": { "name": "Aaron Stannard", "url": "https://github.com/Aaronontheweb" - Network accessline 6
"name": "Aaron Stannard", "url": "https://github.com/Aaronontheweb" }, - Network accessline 7
"url": "https://github.com/Aaronontheweb" - Network accessline 8
}, "repository": "https://github.com/Aaronontheweb/dotnet-skills", "skills": [ - Network accessline 9
"repository": "https://github.com/Aaronontheweb/dotnet-skills",
agents/akka-net-specialist.md
- Network accessline 8
**Reference Materials:** - **Official Documentation**: Use https://getakka.net/ for definitive API documentation, architecture guides, and technical specifications - Network accessline 9
- **Official Documentation**: Use https://getakka.net/ for definitive API documentation, architecture guides, and technical specifications - Network accessline 10
- **Petabridge Bootcamp**: Reference https://petabridge.com/bootcamp/lessons/ for modern Akka.NET patterns, testing approaches, and architectural principles representing current best practices - Network accessline 11
- **GitHub Repository**: Consult https://github.com/akkadotnet/akka.net for source code analysis, issue patterns, and test examples
agents/docfx-specialist.md
- Network accessline 8
**Reference Standards:** - **Akka.NET Documentation Guidelines**: Follow https://getakka.net/community/contributing/documentation-guidelines.html for authoritative standards - Network accessline 9
- **Akka.NET Documentation Guidelines**: Follow https://getakka.net/community/contributing/documentation-guidelines.html for authoritative standards
agents/roslyn-incremental-generator-specialist.md
- Network accessline 10
> **Reference**: See the [official Roslyn Incremental Generators Cookbook](https://github.com/dotnet/roslyn/blob/main/docs/features/incremental-generators.cookbook.md) for API details and additional patterns. - Network accessline 456
Alternatively, [Polyfill](https://github.com/SimonCropp/Polyfill) offers a similar approach with different trade-offs in what features are backported. - Network accessline 475
Consider also: - [Microsoft.CodeAnalysis.BannedApiAnalyzers](https://www.nuget.org/packages/Microsoft.CodeAnalysis.BannedApiAnalyzers/) to prevent problematic API usage - Network accessline 476
- [Microsoft.CodeAnalysis.BannedApiAnalyzers](https://www.nuget.org/packages/Microsoft.CodeAnalysis.BannedApiAnalyzers/) to prevent problematic API usage - Network accessline 477
- [Microsoft.CodeAnalysis.PublicApiAnalyzers](https://www.nuget.org/packages/Microsoft.CodeAnalysis.PublicApiAnalyzers/) if the generator is a public API
scripts/generate-skill-index-snippets.sh
skills/akka-testing-patterns/anti-patterns-and-reference.md
- Network accessline 220
- **Akka.NET Documentation**: https://getakka.net/ - Network accessline 220
- **Akka.NET Documentation**: https://getakka.net/ - Network accessline 221
- **Akka.Hosting Documentation**: https://github.com/akkadotnet/Akka.Hosting - Network accessline 221
- **Akka.Hosting Documentation**: https://github.com/akkadotnet/Akka.Hosting - Network accessline 222
- **Petabridge Bootcamp**: https://petabridge.com/bootcamp/ (comprehensive Akka.NET training) - Network accessline 222
- **Petabridge Bootcamp**: https://petabridge.com/bootcamp/ (comprehensive Akka.NET training) - Network accessline 223
- **Akka.TestKit Guide**: https://getakka.net/articles/testing/testing-actor-systems.html - Network accessline 223
- **Akka.TestKit Guide**: https://getakka.net/articles/testing/testing-actor-systems.html
skills/aot-trimming/SKILL.md
- Network accessline 154
- [Trimming options](https://learn.microsoft.com/dotnet/core/deploying/trimming/trimming-options) - Network accessline 154
- [Trimming options](https://learn.microsoft.com/dotnet/core/deploying/trimming/trimming-options) - Network accessline 155
- [Prepare .NET libraries for trimming](https://learn.microsoft.com/dotnet/core/deploying/trimming/prepare-libraries-for-trimming) - Network accessline 155
- [Prepare .NET libraries for trimming](https://learn.microsoft.com/dotnet/core/deploying/trimming/prepare-libraries-for-trimming) - Network accessline 156
- [Introduction to trim warnings](https://learn.microsoft.com/dotnet/core/deploying/trimming/fixing-warnings) - Network accessline 156
- [Introduction to trim warnings](https://learn.microsoft.com/dotnet/core/deploying/trimming/fixing-warnings) - Network accessline 157
- [Native AOT deployment](https://learn.microsoft.com/dotnet/core/deploying/native-aot/) - Network accessline 157
- [Native AOT deployment](https://learn.microsoft.com/dotnet/core/deploying/native-aot/) - Network accessline 158
- [ILLink error codes](https://github.com/dotnet/runtime/blob/main/docs/tools/illink/error-codes.md) - Network accessline 158
- [ILLink error codes](https://github.com/dotnet/runtime/blob/main/docs/tools/illink/error-codes.md)
skills/aspire-configuration/SKILL.md
- Network accessline 157
- Aspire AppHost environment configuration: https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/app-host - Network accessline 157
- Aspire AppHost environment configuration: https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/app-host - Network accessline 158
- Configuration in .NET: https://learn.microsoft.com/en-us/dotnet/core/extensions/configuration - Network accessline 158
- Configuration in .NET: https://learn.microsoft.com/en-us/dotnet/core/extensions/configuration
skills/aspire-integration-testing/SKILL.md
skills/aspire-integration-testing/advanced-patterns.md
skills/aspire-integration-testing/ci-and-tooling.md
- Network accessline 193
For more details, see: - [Aspire MCP Configuration](https://aspire.dev/get-started/configure-mcp/) - Network accessline 193
For more details, see: - [Aspire MCP Configuration](https://aspire.dev/get-started/configure-mcp/) - Network accessline 194
- [Aspire MCP Configuration](https://aspire.dev/get-started/configure-mcp/) - Network accessline 194
- [Aspire MCP Configuration](https://aspire.dev/get-started/configure-mcp/) - Network accessline 195
- [Aspire CLI Commands](https://aspire.dev/reference/cli/commands/aspire-mcp-init/) - Network accessline 195
- [Aspire CLI Commands](https://aspire.dev/reference/cli/commands/aspire-mcp-init/)
skills/aspire-mailpit-integration/SKILL.md
- Network accessline 26
[Mailpit](https://github.com/axllent/mailpit) is a lightweight email testing tool that: - Network accessline 26
[Mailpit](https://github.com/axllent/mailpit) is a lightweight email testing tool that: - Network accessline 165
Navigate to `http://localhost:8025` to see: - Network accessline 165
Navigate to `http://localhost:8025` to see: - Network accessline 392
resetLink.Should().StartWith("https://myapp.com/reset/"); - Network accessline 392
resetLink.Should().StartWith("https://myapp.com/reset/"); - Network accessline 439
# Verify Mailpit is listening curl http://localhost:8025/api/v1/messages - Network accessline 439
# Verify Mailpit is listening curl http://localhost:8025/api/v1/messages - Network accessline 440
curl http://localhost:8025/api/v1/messages - Network accessline 440
curl http://localhost:8025/api/v1/messages - Network accessline 455
- **Mailpit**: https://github.com/axllent/mailpit - Network accessline 455
- **Mailpit**: https://github.com/axllent/mailpit - Network accessline 456
- **Mailpit API**: https://mailpit.axllent.org/docs/api-v1/ - Network accessline 456
- **Mailpit API**: https://mailpit.axllent.org/docs/api-v1/ - Network accessline 457
- **MailKit**: https://github.com/jstedfast/MailKit - Network accessline 457
- **MailKit**: https://github.com/jstedfast/MailKit - Network accessline 458
- **Aspire Containers**: https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/container-resources - Network accessline 458
- **Aspire Containers**: https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/container-resources
skills/aspire-service-defaults/SKILL.md
- Network accessline 373
- **Aspire Service Defaults**: https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/service-defaults - Network accessline 373
- **Aspire Service Defaults**: https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/service-defaults - Network accessline 374
- **OpenTelemetry .NET**: https://opentelemetry.io/docs/languages/net/ - Network accessline 374
- **OpenTelemetry .NET**: https://opentelemetry.io/docs/languages/net/ - Network accessline 375
- **Health Checks**: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks - Network accessline 375
- **Health Checks**: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks
skills/crap-analysis/SKILL.md
- Dangerous shell operationline 140
rm -rf coverage/ TestResults/ - Dangerous shell operationline 140
rm -rf coverage/ TestResults/ - Dangerous shell operationline 315
rm -rf coverage/ TestResults/ && \ - Dangerous shell operationline 315
rm -rf coverage/ TestResults/ && \ - Network accessline 384
- **Coverlet Documentation**: https://github.com/coverlet-coverage/coverlet - Network accessline 384
- **Coverlet Documentation**: https://github.com/coverlet-coverage/coverlet - Network accessline 385
- **ReportGenerator**: https://github.com/danielpalme/ReportGenerator - Network accessline 385
- **ReportGenerator**: https://github.com/danielpalme/ReportGenerator - Network accessline 386
- **CRAP Score Original Paper**: http://www.artima.com/weblogs/viewpost.jsp?thread=215899 - Network accessline 386
- **CRAP Score Original Paper**: http://www.artima.com/weblogs/viewpost.jsp?thread=215899
skills/cscheck/SKILL.md
- Network accessline 64
The linked examples were compiled and run with **CsCheck 4.9.1** on .NET 8. Its package identifies [source revision `5050355`](https://github.com/AnthonyLloyd/CsCheck/tree/50503557f23266f140021f65632612ceb4ac248f). - Network accessline 64
The linked examples were compiled and run with **CsCheck 4.9.1** on .NET 8. Its package identifies [source revision `5050355`](https://github.com/AnthonyLloyd/CsCheck/tree/50503557f23266f140021f65632612ceb4ac248f). - Network accessline 65
[source revision `5050355`](https://github.com/AnthonyLloyd/CsCheck/tree/50503557f23266f140021f65632612ceb4ac248f). - Network accessline 65
[source revision `5050355`](https://github.com/AnthonyLloyd/CsCheck/tree/50503557f23266f140021f65632612ceb4ac248f). - Network accessline 66
Check the installed package before adapting signatures. For upgrades, verify the [NuGet package](https://www.nuget.org/packages/CsCheck) and upstream source; do not infer a major version or native async `Spec.Conform` support from another l - Network accessline 66
Check the installed package before adapting signatures. For upgrades, verify the [NuGet package](https://www.nuget.org/packages/CsCheck) and upstream source; do not infer a major version or native async `Spec.Conform` support from another l - Network accessline 67
[NuGet package](https://www.nuget.org/packages/CsCheck) and upstream source; do not infer a major version - Network accessline 67
[NuGet package](https://www.nuget.org/packages/CsCheck) and upstream source; do not infer a major version
skills/cscheck/references/failures.md
- Network accessline 80
Sources: [native controls and runners](https://github.com/AnthonyLloyd/CsCheck/blob/50503557f23266f140021f65632612ceb4ac248f/CsCheck/Check.cs), - Network accessline 80
Sources: [native controls and runners](https://github.com/AnthonyLloyd/CsCheck/blob/50503557f23266f140021f65632612ceb4ac248f/CsCheck/Check.cs), - Network accessline 81
[versioned package](https://www.nuget.org/packages/CsCheck/4.9.1). - Network accessline 81
[versioned package](https://www.nuget.org/packages/CsCheck/4.9.1).
skills/cscheck/references/properties.md
- Network accessline 116
API source: [Gen.cs](https://github.com/AnthonyLloyd/CsCheck/blob/50503557f23266f140021f65632612ceb4ac248f/CsCheck/Gen.cs) - Network accessline 116
API source: [Gen.cs](https://github.com/AnthonyLloyd/CsCheck/blob/50503557f23266f140021f65632612ceb4ac248f/CsCheck/Gen.cs) - Network accessline 117
and [Sample / SampleAsync](https://github.com/AnthonyLloyd/CsCheck/blob/50503557f23266f140021f65632612ceb4ac248f/CsCheck/Check.cs). - Network accessline 117
and [Sample / SampleAsync](https://github.com/AnthonyLloyd/CsCheck/blob/50503557f23266f140021f65632612ceb4ac248f/CsCheck/Check.cs).
skills/cscheck/references/specifications.md
skills/cscheck/references/stateful-and-async.md
- Network accessline 157
API source: [model-based and async runners](https://github.com/AnthonyLloyd/CsCheck/blob/50503557f23266f140021f65632612ceb4ac248f/CsCheck/Check.cs). - Network accessline 157
API source: [model-based and async runners](https://github.com/AnthonyLloyd/CsCheck/blob/50503557f23266f140021f65632612ceb4ac248f/CsCheck/Check.cs).
skills/csharp-api-design/SKILL.md
- Network accessline 49
**Resources:** - [Extend-Only Design](https://aaronstannard.com/extend-only-design/) - Network accessline 49
**Resources:** - [Extend-Only Design](https://aaronstannard.com/extend-only-design/) - Network accessline 50
- [Extend-Only Design](https://aaronstannard.com/extend-only-design/) - Network accessline 50
- [Extend-Only Design](https://aaronstannard.com/extend-only-design/) - Network accessline 51
- [OSS Compatibility Standards](https://aaronstannard.com/oss-compatibility-standards/) - Network accessline 51
- [OSS Compatibility Standards](https://aaronstannard.com/oss-compatibility-standards/) - Network accessline 382
- [Making Public API Changes](https://getakka.net/community/contributing/api-changes-compatibility.html) - Network accessline 382
- [Making Public API Changes](https://getakka.net/community/contributing/api-changes-compatibility.html) - Network accessline 383
- [Wire Format Changes](https://getakka.net/community/contributing/wire-compatibility.html) - Network accessline 383
- [Wire Format Changes](https://getakka.net/community/contributing/wire-compatibility.html) - Network accessline 384
- [Extend-Only Design](https://aaronstannard.com/extend-only-design/) - Network accessline 384
- [Extend-Only Design](https://aaronstannard.com/extend-only-design/) - Network accessline 385
- [OSS Compatibility Standards](https://aaronstannard.com/oss-compatibility-standards/) - Network accessline 385
- [OSS Compatibility Standards](https://aaronstannard.com/oss-compatibility-standards/) - Network accessline 386
- [Semantic Versioning](https://semver.org/) - Network accessline 386
- [Semantic Versioning](https://semver.org/) - Network accessline 387
- [PublicApiGenerator](https://github.com/PublicApiGenerator/PublicApiGenerator) - Network accessline 387
- [PublicApiGenerator](https://github.com/PublicApiGenerator/PublicApiGenerator)
skills/csharp-coding-standards/SKILL.md
- Network accessline 316
- **C# Language Specification**: https://learn.microsoft.com/en-us/dotnet/csharp/ - Network accessline 316
- **C# Language Specification**: https://learn.microsoft.com/en-us/dotnet/csharp/ - Network accessline 317
- **Pattern Matching**: https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/functional/pattern-matching - Network accessline 317
- **Pattern Matching**: https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/functional/pattern-matching - Network accessline 318
- **Span<T> and Memory<T>**: https://learn.microsoft.com/en-us/dotnet/standard/memory-and-spans/ - Network accessline 318
- **Span<T> and Memory<T>**: https://learn.microsoft.com/en-us/dotnet/standard/memory-and-spans/ - Network accessline 319
- **Async Best Practices**: https://learn.microsoft.com/en-us/archive/msdn-magazine/2013/march/async-await-best-practices-in-asynchronous-programming - Network accessline 319
- **Async Best Practices**: https://learn.microsoft.com/en-us/archive/msdn-magazine/2013/march/async-await-best-practices-in-asynchronous-programming - Network accessline 320
- **.NET Performance Tips**: https://learn.microsoft.com/en-us/dotnet/framework/performance/ - Network accessline 320
- **.NET Performance Tips**: https://learn.microsoft.com/en-us/dotnet/framework/performance/
skills/csharp-coding-standards/anti-patterns-and-reflection.md
- Network accessline 161
**Resources:** - [A new way of doing reflection with .NET 8](https://steven-giesel.com/blogPost/05ecdd16-8dc4-490f-b1cf-780c994346a4) - Network accessline 161
**Resources:** - [A new way of doing reflection with .NET 8](https://steven-giesel.com/blogPost/05ecdd16-8dc4-490f-b1cf-780c994346a4) - Network accessline 162
- [A new way of doing reflection with .NET 8](https://steven-giesel.com/blogPost/05ecdd16-8dc4-490f-b1cf-780c994346a4) - Network accessline 162
- [A new way of doing reflection with .NET 8](https://steven-giesel.com/blogPost/05ecdd16-8dc4-490f-b1cf-780c994346a4) - Network accessline 163
- [Accessing private members without reflection in .NET 8.0](https://www.strathweb.com/2023/10/accessing-private-members-without-reflection-in-net-8-0/) - Network accessline 163
- [Accessing private members without reflection in .NET 8.0](https://www.strathweb.com/2023/10/accessing-private-members-without-reflection-in-net-8-0/) - Network accessline 164
- [Modern .NET Reflection with UnsafeAccessor](https://blog.ndepend.com/modern-net-reflection-with-unsafeaccessor/) - Network accessline 164
- [Modern .NET Reflection with UnsafeAccessor](https://blog.ndepend.com/modern-net-reflection-with-unsafeaccessor/)
skills/csharp-coding-standards/performance-and-api-design.md
- Network accessline 40
// WARNING: Reading before writing returns garbage data // Requires: <AllowUnsafeBlocks>true</AllowUnsafeBlocks> in .csproj // See: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/attributes/general#skiplocalsinit-attribu - Network accessline 40
// WARNING: Reading before writing returns garbage data // Requires: <AllowUnsafeBlocks>true</AllowUnsafeBlocks> in .csproj // See: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/attributes/general#skiplocalsinit-attribu - Network accessline 41
// Requires: <AllowUnsafeBlocks>true</AllowUnsafeBlocks> in .csproj // See: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/attributes/general#skiplocalsinit-attribute using System.Runtime.CompilerServices; - Network accessline 41
// Requires: <AllowUnsafeBlocks>true</AllowUnsafeBlocks> in .csproj // See: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/attributes/general#skiplocalsinit-attribute using System.Runtime.CompilerServices; - Network accessline 42
// See: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/attributes/general#skiplocalsinit-attribute - Network accessline 42
// See: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/attributes/general#skiplocalsinit-attribute
skills/csharp-coding-standards/value-objects-and-patterns.md
- Network accessline 259
// appsettings.json: // { "Webhook": { "CallbackUrl": "https://example.com/callback" } } - Network accessline 259
// appsettings.json: // { "Webhook": { "CallbackUrl": "https://example.com/callback" } } - Network accessline 260
// { "Webhook": { "CallbackUrl": "https://example.com/callback" } } - Network accessline 260
// { "Webhook": { "CallbackUrl": "https://example.com/callback" } }
skills/csharp-nullable-reference-types/SKILL.md
- Network accessline 193
- [Nullable reference types (overview)](https://learn.microsoft.com/dotnet/csharp/nullable-references) - Network accessline 193
- [Nullable reference types (overview)](https://learn.microsoft.com/dotnet/csharp/nullable-references) - Network accessline 194
- [Attributes for null-state static analysis](https://learn.microsoft.com/dotnet/csharp/language-reference/attributes/nullable-analysis) - Network accessline 194
- [Attributes for null-state static analysis](https://learn.microsoft.com/dotnet/csharp/language-reference/attributes/nullable-analysis) - Network accessline 195
- [Nullable migration strategies](https://learn.microsoft.com/dotnet/csharp/advanced-topics/update-applications/nullable-migration-strategies) - Network accessline 195
- [Nullable migration strategies](https://learn.microsoft.com/dotnet/csharp/advanced-topics/update-applications/nullable-migration-strategies) - Network accessline 196
- [Breaking change: Nullable reference type annotation changes](https://learn.microsoft.com/dotnet/core/compatibility/core-libraries/6.0/nullable-ref-type-annotation-changes) - Network accessline 196
- [Breaking change: Nullable reference type annotation changes](https://learn.microsoft.com/dotnet/core/compatibility/core-libraries/6.0/nullable-ref-type-annotation-changes) - Network accessline 197
- [Tutorial: Express your design intent with nullable and non-nullable reference types](https://learn.microsoft.com/dotnet/csharp/whats-new/tutorials/nullable-reference-types) - Network accessline 197
- [Tutorial: Express your design intent with nullable and non-nullable reference types](https://learn.microsoft.com/dotnet/csharp/whats-new/tutorials/nullable-reference-types) - Network accessline 198
- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) (extension members, `field` keyword GA, null-conditional assignment) - Network accessline 198
- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) (extension members, `field` keyword GA, null-conditional assignment) - Network accessline 199
- [The `field` contextual keyword (feature spec)](https://learn.microsoft.com/dotnet/csharp/language-reference/proposals/csharp-14.0/field-keyword) - Network accessline 199
- [The `field` contextual keyword (feature spec)](https://learn.microsoft.com/dotnet/csharp/language-reference/proposals/csharp-14.0/field-keyword)
skills/csharp-nullable-reference-types/nrt-migration-playbook-reference.md
- Network accessline 68
- **[PolySharp](https://github.com/Sergio0694/PolySharp)** — source generator, source-only (no runtime assembly, no transitive runtime deps). Polyfills all 11 nullable analysis attributes and auto-detects which are needed per TFM. Targeted - Network accessline 68
- **[PolySharp](https://github.com/Sergio0694/PolySharp)** — source generator, source-only (no runtime assembly, no transitive runtime deps). Polyfills all 11 nullable analysis attributes and auto-detects which are needed per TFM. Targeted - Network accessline 69
- **[Polyfill](https://github.com/SimonCropp/Polyfill)** — broader source-only package covering newer BCL APIs and C# features too. Consider only when you already need the broader API surface, not just the nullable attributes; otherwise it - Network accessline 69
- **[Polyfill](https://github.com/SimonCropp/Polyfill)** — broader source-only package covering newer BCL APIs and C# features too. Consider only when you already need the broader API surface, not just the nullable attributes; otherwise it
skills/csharp-type-design-performance/SKILL.md
- Network accessline 396
- **Performance Best Practices**: https://learn.microsoft.com/en-us/dotnet/standard/performance/ - Network accessline 396
- **Performance Best Practices**: https://learn.microsoft.com/en-us/dotnet/standard/performance/ - Network accessline 397
- **Span<T> Guidance**: https://learn.microsoft.com/en-us/dotnet/standard/memory-and-spans/ - Network accessline 397
- **Span<T> Guidance**: https://learn.microsoft.com/en-us/dotnet/standard/memory-and-spans/ - Network accessline 398
- **Frozen Collections**: https://learn.microsoft.com/en-us/dotnet/api/system.collections.frozen - Network accessline 398
- **Frozen Collections**: https://learn.microsoft.com/en-us/dotnet/api/system.collections.frozen
skills/database-performance/SKILL.md
- Network accessline 503
- **EF Core Performance**: https://learn.microsoft.com/en-us/ef/core/performance/ - Network accessline 503
- **EF Core Performance**: https://learn.microsoft.com/en-us/ef/core/performance/ - Network accessline 504
- **Dapper**: https://github.com/DapperLib/Dapper - Network accessline 504
- **Dapper**: https://github.com/DapperLib/Dapper - Network accessline 505
- **AsSplitQuery**: https://learn.microsoft.com/en-us/ef/core/querying/single-split-queries - Network accessline 505
- **AsSplitQuery**: https://learn.microsoft.com/en-us/ef/core/querying/single-split-queries
skills/dotnet-devcert-trust/SKILL.md
- Dangerous shell operationline 102
sudo rm -f /usr/local/share/ca-certificates/aspnetcore-dev.crt - Dangerous shell operationline 102
sudo rm -f /usr/local/share/ca-certificates/aspnetcore-dev.crt - Dangerous shell operationline 103
sudo rm -rf /usr/local/share/ca-certificates/aspnet/ - Dangerous shell operationline 103
sudo rm -rf /usr/local/share/ca-certificates/aspnet/ - Dangerous shell operationline 106
sudo chmod 644 /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 106
sudo chmod 644 /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 126
sudo update-ca-certificates - Dangerous shell operationline 126
sudo update-ca-certificates - Dangerous shell operationline 167
sudo update-ca-certificates --fresh - Dangerous shell operationline 167
sudo update-ca-certificates --fresh - Dangerous shell operationline 183
sudo rm -f /usr/local/share/ca-certificates/aspnetcore-dev.crt - Dangerous shell operationline 183
sudo rm -f /usr/local/share/ca-certificates/aspnetcore-dev.crt - Dangerous shell operationline 184
sudo rm -rf /usr/local/share/ca-certificates/aspnet/ - Dangerous shell operationline 184
sudo rm -rf /usr/local/share/ca-certificates/aspnet/ - Dangerous shell operationline 185
sudo rm -f /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 185
sudo rm -f /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 195
sudo cp /tmp/dotnet-dev-cert.crt /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 195
sudo cp /tmp/dotnet-dev-cert.crt /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 196
sudo chmod 644 /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 196
sudo chmod 644 /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 197
rm /tmp/dotnet-dev-cert.crt - Dangerous shell operationline 197
rm /tmp/dotnet-dev-cert.crt - Dangerous shell operationline 201
sudo update-ca-certificates - Dangerous shell operationline 201
sudo update-ca-certificates - Dangerous shell operationline 220
- **Bundle command:** `sudo update-ca-certificates` - Dangerous shell operationline 220
- **Bundle command:** `sudo update-ca-certificates` - Dangerous shell operationline 233
sudo cp /tmp/dotnet-dev-cert.pem /etc/pki/ca-trust/source/anchors/dotnet-dev-cert.pem - Dangerous shell operationline 233
sudo cp /tmp/dotnet-dev-cert.pem /etc/pki/ca-trust/source/anchors/dotnet-dev-cert.pem - Dangerous shell operationline 234
sudo chmod 644 /etc/pki/ca-trust/source/anchors/dotnet-dev-cert.pem - Dangerous shell operationline 234
sudo chmod 644 /etc/pki/ca-trust/source/anchors/dotnet-dev-cert.pem - Dangerous shell operationline 235
rm /tmp/dotnet-dev-cert.pem - Dangerous shell operationline 235
rm /tmp/dotnet-dev-cert.pem - Dangerous shell operationline 238
sudo update-ca-trust - Dangerous shell operationline 238
sudo update-ca-trust - Dangerous shell operationline 257
sudo cp /tmp/dotnet-dev-cert.pem /etc/ca-certificates/trust-source/anchors/dotnet-dev-cert.pem - Dangerous shell operationline 257
sudo cp /tmp/dotnet-dev-cert.pem /etc/ca-certificates/trust-source/anchors/dotnet-dev-cert.pem - Dangerous shell operationline 258
sudo chmod 644 /etc/ca-certificates/trust-source/anchors/dotnet-dev-cert.pem - Dangerous shell operationline 258
sudo chmod 644 /etc/ca-certificates/trust-source/anchors/dotnet-dev-cert.pem - Dangerous shell operationline 259
sudo update-ca-trust - Dangerous shell operationline 259
sudo update-ca-trust - Dangerous shell operationline 267
2. **systemd not running** — some older WSL2 setups don't have systemd, which `update-ca-certificates` hooks may depend on. If the command hangs, try `sudo dpkg-reconfigure ca-certificates` instead. - Dangerous shell operationline 267
2. **systemd not running** — some older WSL2 setups don't have systemd, which `update-ca-certificates` hooks may depend on. If the command hangs, try `sudo dpkg-reconfigure ca-certificates` instead. - Dangerous shell operationline 318
sudo cp /tmp/dotnet-dev-cert.crt /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 318
sudo cp /tmp/dotnet-dev-cert.crt /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 319
sudo chmod 644 /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 319
sudo chmod 644 /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 320
rm /tmp/dotnet-dev-cert.crt - Dangerous shell operationline 320
rm /tmp/dotnet-dev-cert.crt - Dangerous shell operationline 321
sudo update-ca-certificates - Dangerous shell operationline 321
sudo update-ca-certificates - Dangerous shell operationline 330
sudo cp /tmp/dotnet-dev-cert.crt /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 330
sudo cp /tmp/dotnet-dev-cert.crt /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 331
sudo chmod 644 /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 331
sudo chmod 644 /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 332
rm /tmp/dotnet-dev-cert.crt - Dangerous shell operationline 332
rm /tmp/dotnet-dev-cert.crt - Dangerous shell operationline 333
sudo update-ca-certificates - Dangerous shell operationline 333
sudo update-ca-certificates - Dangerous shell operationline 345
**Fix:** `sudo update-ca-certificates` - Dangerous shell operationline 345
**Fix:** `sudo update-ca-certificates` - Dangerous shell operationline 355
**Fix:** `sudo chmod 644 /usr/local/share/ca-certificates/*.crt` - Dangerous shell operationline 355
**Fix:** `sudo chmod 644 /usr/local/share/ca-certificates/*.crt` - Dangerous shell operationline 374
sudo cp /tmp/dotnet-dev-cert.crt /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 374
sudo cp /tmp/dotnet-dev-cert.crt /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 375
sudo update-ca-certificates - Dangerous shell operationline 375
sudo update-ca-certificates - Dangerous shell operationline 396
sudo cp /tmp/dotnet-dev-cert.crt /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 396
sudo cp /tmp/dotnet-dev-cert.crt /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 397
sudo chmod 644 /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 397
sudo chmod 644 /usr/local/share/ca-certificates/dotnet-dev-cert.crt - Dangerous shell operationline 398
sudo update-ca-certificates - Dangerous shell operationline 398
sudo update-ca-certificates
skills/efcore-patterns/SKILL.md
skills/local-tools/SKILL.md
- Network accessline 57
# Install from a specific source dotnet tool install MyTool --add-source https://mycompany.pkgs.visualstudio.com/_packaging/feed/nuget/v3/index.json - Network accessline 57
# Install from a specific source dotnet tool install MyTool --add-source https://mycompany.pkgs.visualstudio.com/_packaging/feed/nuget/v3/index.json - Network accessline 58
dotnet tool install MyTool --add-source https://mycompany.pkgs.visualstudio.com/_packaging/feed/nuget/v3/index.json - Network accessline 58
dotnet tool install MyTool --add-source https://mycompany.pkgs.visualstudio.com/_packaging/feed/nuget/v3/index.json
skills/microsoft-extensions-dependency-injection/SKILL.md
- Network accessline 344
- **Microsoft.Extensions.DependencyInjection**: https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection - Network accessline 344
- **Microsoft.Extensions.DependencyInjection**: https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection - Network accessline 345
- **Akka.Hosting**: https://github.com/akkadotnet/Akka.Hosting - Network accessline 345
- **Akka.Hosting**: https://github.com/akkadotnet/Akka.Hosting - Network accessline 346
- **Akka.DependencyInjection**: https://getakka.net/articles/actors/dependency-injection.html - Network accessline 346
- **Akka.DependencyInjection**: https://getakka.net/articles/actors/dependency-injection.html
skills/microsoft-extensions-dependency-injection/advanced-patterns.md
- Network accessline 190
- **Akka.DependencyInjection**: https://getakka.net/articles/actors/dependency-injection.html - Network accessline 190
- **Akka.DependencyInjection**: https://getakka.net/articles/actors/dependency-injection.html - Network accessline 191
- **Akka.Hosting**: https://github.com/akkadotnet/Akka.Hosting - Network accessline 191
- **Akka.Hosting**: https://github.com/akkadotnet/Akka.Hosting
skills/mjml-email-templates/SKILL.md
- Network accessline 26
**Solution**: [MJML](https://mjml.io/) is a markup language that compiles to responsive, cross-client HTML: - Network accessline 26
**Solution**: [MJML](https://mjml.io/) is a markup language that compiles to responsive, cross-client HTML: - Network accessline 110
<mj-column> <mj-image src="https://myapp.com/logo.png" - Network accessline 110
<mj-column> <mj-image src="https://myapp.com/logo.png" - Network accessline 111
<mj-image src="https://myapp.com/logo.png" alt="MyApp" - Network accessline 111
<mj-image src="https://myapp.com/logo.png" alt="MyApp" - Network accessline 112
src="https://myapp.com/logo.png" - Network accessline 112
src="https://myapp.com/logo.png" - Network accessline 192
{ _assembly = typeof(MjmlTemplateRenderer).Assembly; _siteUrl = config["SiteUrl"] ?? "https://myapp.com"; - Network accessline 192
{ _assembly = typeof(MjmlTemplateRenderer).Assembly; _siteUrl = config["SiteUrl"] ?? "https://myapp.com"; - Network accessline 193
_assembly = typeof(MjmlTemplateRenderer).Assembly; _siteUrl = config["SiteUrl"] ?? "https://myapp.com"; } - Network accessline 193
_assembly = typeof(MjmlTemplateRenderer).Assembly; _siteUrl = config["SiteUrl"] ?? "https://myapp.com"; } - Network accessline 194
_siteUrl = config["SiteUrl"] ?? "https://myapp.com"; - Network accessline 194
_siteUrl = config["SiteUrl"] ?? "https://myapp.com"; - Network accessline 351
<!-- DO: Use production URLs for images --> <mj-image src="https://myapp.com/logo.png" /> - Network accessline 351
<!-- DO: Use production URLs for images --> <mj-image src="https://myapp.com/logo.png" /> - Network accessline 352
<mj-image src="https://myapp.com/logo.png" /> - Network accessline 352
<mj-image src="https://myapp.com/logo.png" /> - Network accessline 394
- **MJML Documentation**: https://documentation.mjml.io/ - Network accessline 394
- **MJML Documentation**: https://documentation.mjml.io/ - Network accessline 395
- **MJML Playground**: https://mjml.io/try-it-live - Network accessline 395
- **MJML Playground**: https://mjml.io/try-it-live - Network accessline 396
- **Mjml.Net**: https://github.com/ArtZab/Mjml.Net - Network accessline 396
- **Mjml.Net**: https://github.com/ArtZab/Mjml.Net
skills/opentelementry-dotnet-instrumentation/SKILL.md
- Network accessline 90
### Standards Compliance - Follow Microsoft best practices for [distributed tracing instrumentation](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-instrumentation-walkthroughs) - Network accessline 90
### Standards Compliance - Follow Microsoft best practices for [distributed tracing instrumentation](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-instrumentation-walkthroughs) - Network accessline 91
- Follow Microsoft best practices for [distributed tracing instrumentation](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-instrumentation-walkthroughs) - Network accessline 91
- Follow Microsoft best practices for [distributed tracing instrumentation](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-instrumentation-walkthroughs) - Network accessline 92
- Follow [OpenTelemetry semantic conventions](https://opentelemetry.io/docs/specs/semconv/) - Network accessline 92
- Follow [OpenTelemetry semantic conventions](https://opentelemetry.io/docs/specs/semconv/) - Network accessline 93
- Attribute values support: **string, boolean, double (IEEE 754), int64, byte arrays, and homogeneous arrays** of these primitive types. Null/empty values are valid and meaningful per the [OTel AnyValue spec](https://opentelemetry.io/docs/s - Network accessline 93
- Attribute values support: **string, boolean, double (IEEE 754), int64, byte arrays, and homogeneous arrays** of these primitive types. Null/empty values are valid and meaningful per the [OTel AnyValue spec](https://opentelemetry.io/docs/s - Network accessline 166
- Operation name should NOT contain runtime data (only compile/config-time info) - Use human-readable `DisplayName` for specifics - Follow [OpenTelemetry span naming conventions](https://opentelemetry.io/docs/specs/otel/trace/api/#span) - Network accessline 166
- Operation name should NOT contain runtime data (only compile/config-time info) - Use human-readable `DisplayName` for specifics - Follow [OpenTelemetry span naming conventions](https://opentelemetry.io/docs/specs/otel/trace/api/#span) - Network accessline 168
- Follow [OpenTelemetry span naming conventions](https://opentelemetry.io/docs/specs/otel/trace/api/#span) - Network accessline 168
- Follow [OpenTelemetry span naming conventions](https://opentelemetry.io/docs/specs/otel/trace/api/#span) - Network accessline 208
- Namespace prefix matching your component: `myapp.*`, `myapp.db.*` - All lowercase, underscore (`_`) delimiters, singular form - Attribute values: string, boolean, double, int64, byte arrays, homogeneous arrays (null/empty valid per [AnyVa - Network accessline 208
- Namespace prefix matching your component: `myapp.*`, `myapp.db.*` - All lowercase, underscore (`_`) delimiters, singular form - Attribute values: string, boolean, double, int64, byte arrays, homogeneous arrays (null/empty valid per [AnyVa - Network accessline 209
- All lowercase, underscore (`_`) delimiters, singular form - Attribute values: string, boolean, double, int64, byte arrays, homogeneous arrays (null/empty valid per [AnyValue spec](https://opentelemetry.io/docs/specs/otel/common/#anyvalue) - Network accessline 209
- All lowercase, underscore (`_`) delimiters, singular form - Attribute values: string, boolean, double, int64, byte arrays, homogeneous arrays (null/empty valid per [AnyValue spec](https://opentelemetry.io/docs/specs/otel/common/#anyvalue) - Network accessline 210
- Attribute values: string, boolean, double, int64, byte arrays, homogeneous arrays (null/empty valid per [AnyValue spec](https://opentelemetry.io/docs/specs/otel/common/#anyvalue)) - Network accessline 210
- Attribute values: string, boolean, double, int64, byte arrays, homogeneous arrays (null/empty valid per [AnyValue spec](https://opentelemetry.io/docs/specs/otel/common/#anyvalue)) - Network accessline 212
- **HTTP, database, messaging, or RPC concepts you manually instrument**: use [semantic conventions](https://opentelemetry.io/docs/specs/semconv/). Do not duplicate attributes already emitted by auto-instrumentation. Do not use OTel namespa - Network accessline 212
- **HTTP, database, messaging, or RPC concepts you manually instrument**: use [semantic conventions](https://opentelemetry.io/docs/specs/semconv/). Do not duplicate attributes already emitted by auto-instrumentation. Do not use OTel namespa - Network accessline 232
**Rules** (per [Recording Errors](https://opentelemetry.io/docs/specs/semconv/general/recording-errors/) and the [Set Status API spec](https://opentelemetry.io/docs/specs/otel/trace/api/#set-status)): - Network accessline 232
**Rules** (per [Recording Errors](https://opentelemetry.io/docs/specs/semconv/general/recording-errors/) and the [Set Status API spec](https://opentelemetry.io/docs/specs/otel/trace/api/#set-status)): - Network accessline 335
**Naming Conventions** (follow [OTel semantic conventions](https://opentelemetry.io/docs/specs/semconv/general/metrics/)): - Network accessline 335
**Naming Conventions** (follow [OTel semantic conventions](https://opentelemetry.io/docs/specs/semconv/general/metrics/)): - Network accessline 390
- High-cardinality dimensions MUST be opt-in configuration - Consistent names across components: `myapp.region` means the same everywhere - Users can enable [exemplars](https://opentelemetry.io/docs/languages/dotnet/metrics/exemplars/) for - Network accessline 390
- High-cardinality dimensions MUST be opt-in configuration - Consistent names across components: `myapp.region` means the same everywhere - Users can enable [exemplars](https://opentelemetry.io/docs/languages/dotnet/metrics/exemplars/) for - Network accessline 392
- Users can enable [exemplars](https://opentelemetry.io/docs/languages/dotnet/metrics/exemplars/) for trace correlation (not via dimensions) - Network accessline 392
- Users can enable [exemplars](https://opentelemetry.io/docs/languages/dotnet/metrics/exemplars/) for trace correlation (not via dimensions) - Network accessline 503
- [OTel Specification Overview](https://opentelemetry.io/docs/specs/otel/overview/) - Network accessline 503
- [OTel Specification Overview](https://opentelemetry.io/docs/specs/otel/overview/) - Network accessline 504
- [OTel Semantic Conventions](https://opentelemetry.io/docs/specs/semconv/) - Network accessline 504
- [OTel Semantic Conventions](https://opentelemetry.io/docs/specs/semconv/) - Network accessline 505
- [OTel Common Spec (AnyValue)](https://opentelemetry.io/docs/specs/otel/common/) - Network accessline 505
- [OTel Common Spec (AnyValue)](https://opentelemetry.io/docs/specs/otel/common/) - Network accessline 506
- [OTel Tracing SDK Spec](https://opentelemetry.io/docs/specs/otel/trace/sdk/) - Network accessline 506
- [OTel Tracing SDK Spec](https://opentelemetry.io/docs/specs/otel/trace/sdk/) - Network accessline 507
- [OTel Metrics SDK Spec](https://opentelemetry.io/docs/specs/otel/metrics/sdk/) - Network accessline 507
- [OTel Metrics SDK Spec](https://opentelemetry.io/docs/specs/otel/metrics/sdk/) - Network accessline 508
- [OTel Logs Spec](https://opentelemetry.io/docs/specs/otel/logs/) - Network accessline 508
- [OTel Logs Spec](https://opentelemetry.io/docs/specs/otel/logs/) - Network accessline 509
- [OTel Resource Spec](https://opentelemetry.io/docs/specs/otel/resource/) - Network accessline 509
- [OTel Resource Spec](https://opentelemetry.io/docs/specs/otel/resource/) - Network accessline 510
- [OTel Context Spec](https://opentelemetry.io/docs/specs/otel/context/) - Network accessline 510
- [OTel Context Spec](https://opentelemetry.io/docs/specs/otel/context/) - Network accessline 511
- [.NET Observability with OpenTelemetry (MS Learn)](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/observability-with-otel) - Network accessline 511
- [.NET Observability with OpenTelemetry (MS Learn)](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/observability-with-otel) - Network accessline 512
- [OTel .NET Manual Instrumentation](https://opentelemetry.io/docs/languages/dotnet/instrumentation/) - Network accessline 512
- [OTel .NET Manual Instrumentation](https://opentelemetry.io/docs/languages/dotnet/instrumentation/) - Network accessline 513
- [OTel .NET Metric Instruments](https://opentelemetry.io/docs/languages/dotnet/metrics/instruments/) - Network accessline 513
- [OTel .NET Metric Instruments](https://opentelemetry.io/docs/languages/dotnet/metrics/instruments/) - Network accessline 514
- [OTel .NET Sampling](https://opentelemetry.io/docs/languages/dotnet/sampling/) - Network accessline 514
- [OTel .NET Sampling](https://opentelemetry.io/docs/languages/dotnet/sampling/) - Network accessline 515
- [OTel .NET Zero-Code Instrumentation](https://opentelemetry.io/docs/zero-code/net/) - Network accessline 515
- [OTel .NET Zero-Code Instrumentation](https://opentelemetry.io/docs/zero-code/net/)
skills/opentelementry-dotnet-instrumentation/metrics-and-instruments-reference.md
- Network accessline 416
[Exemplars](https://opentelemetry.io/docs/specs/otel/metrics/sdk/#exemplar) are metric measurements that carry an associated trace context (TraceId/SpanId). They enable correlating metric data points with specific traces, allowing jumping f - Network accessline 416
[Exemplars](https://opentelemetry.io/docs/specs/otel/metrics/sdk/#exemplar) are metric measurements that carry an associated trace context (TraceId/SpanId). They enable correlating metric data points with specific traces, allowing jumping f - Network accessline 459
See [OTel .NET: Using Exemplars](https://opentelemetry.io/docs/languages/dotnet/metrics/exemplars/). - Network accessline 459
See [OTel .NET: Using Exemplars](https://opentelemetry.io/docs/languages/dotnet/metrics/exemplars/). - Network accessline 498
Follow the [OTel semantic conventions for units](https://opentelemetry.io/docs/specs/semconv/general/metrics/): - Network accessline 498
Follow the [OTel semantic conventions for units](https://opentelemetry.io/docs/specs/semconv/general/metrics/): - Network accessline 502
OTel uses [UCUM (Unified Code for Units of Measure)](https://ucum.org/) notation: - Network accessline 502
OTel uses [UCUM (Unified Code for Units of Measure)](https://ucum.org/) notation: - Network accessline 530
- [OTel Metrics API Specification](https://opentelemetry.io/docs/specs/otel/metrics/api/) - Network accessline 530
- [OTel Metrics API Specification](https://opentelemetry.io/docs/specs/otel/metrics/api/) - Network accessline 531
- [OTel Metrics SDK Specification](https://opentelemetry.io/docs/specs/otel/metrics/sdk/) - Network accessline 531
- [OTel Metrics SDK Specification](https://opentelemetry.io/docs/specs/otel/metrics/sdk/) - Network accessline 532
- [OTel .NET: Metric Instruments](https://opentelemetry.io/docs/languages/dotnet/metrics/instruments/) - Network accessline 532
- [OTel .NET: Metric Instruments](https://opentelemetry.io/docs/languages/dotnet/metrics/instruments/) - Network accessline 533
- [OTel .NET: Using Exemplars](https://opentelemetry.io/docs/languages/dotnet/metrics/exemplars/) - Network accessline 533
- [OTel .NET: Using Exemplars](https://opentelemetry.io/docs/languages/dotnet/metrics/exemplars/) - Network accessline 534
- [OTel .NET: Metrics Best Practices](https://opentelemetry.io/docs/languages/dotnet/metrics/best-practices/) - Network accessline 534
- [OTel .NET: Metrics Best Practices](https://opentelemetry.io/docs/languages/dotnet/metrics/best-practices/) - Network accessline 535
- [OTel Semantic Conventions: General Metrics](https://opentelemetry.io/docs/specs/semconv/general/metrics/) - Network accessline 535
- [OTel Semantic Conventions: General Metrics](https://opentelemetry.io/docs/specs/semconv/general/metrics/) - Network accessline 536
- [OTel Exemplar Specification](https://opentelemetry.io/docs/specs/otel/metrics/sdk/#exemplar) - Network accessline 536
- [OTel Exemplar Specification](https://opentelemetry.io/docs/specs/otel/metrics/sdk/#exemplar) - Network accessline 537
- [OTel Aggregation Specification](https://opentelemetry.io/docs/specs/otel/metrics/sdk/#aggregation) - Network accessline 537
- [OTel Aggregation Specification](https://opentelemetry.io/docs/specs/otel/metrics/sdk/#aggregation) - Network accessline 538
- [OTel Cardinality Limits (.NET)](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/docs/metrics/README.md#cardinality-limits) - Network accessline 538
- [OTel Cardinality Limits (.NET)](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/docs/metrics/README.md#cardinality-limits) - Network accessline 539
- [UCUM Units of Measure](https://ucum.org/) - Network accessline 539
- [UCUM Units of Measure](https://ucum.org/)
skills/opentelementry-dotnet-instrumentation/sdk-resources-and-logs-reference.md
- Network accessline 146
[Resources](https://opentelemetry.io/docs/specs/otel/resource/) capture information - Network accessline 146
[Resources](https://opentelemetry.io/docs/specs/otel/resource/) capture information - Network accessline 259
See the [full resource semantic conventions](https://opentelemetry.io/docs/specs/semconv/resource/). - Network accessline 259
See the [full resource semantic conventions](https://opentelemetry.io/docs/specs/semconv/resource/). - Network accessline 270
The [OTLP exporter](https://opentelemetry.io/docs/specs/otel/protocol/) sends data - Network accessline 270
The [OTLP exporter](https://opentelemetry.io/docs/specs/otel/protocol/) sends data - Network accessline 277
.AddOtlpExporter(options => { options.Endpoint = new Uri("http://otel-collector:4317"); - Network accessline 277
.AddOtlpExporter(options => { options.Endpoint = new Uri("http://otel-collector:4317"); - Network accessline 278
{ options.Endpoint = new Uri("http://otel-collector:4317"); options.Protocol = OtlpExportProtocol.Grpc; - Network accessline 278
{ options.Endpoint = new Uri("http://otel-collector:4317"); options.Protocol = OtlpExportProtocol.Grpc; - Network accessline 279
options.Endpoint = new Uri("http://otel-collector:4317"); - Network accessline 279
options.Endpoint = new Uri("http://otel-collector:4317"); - Network accessline 284
.AddOtlpExporter(options => { options.Endpoint = new Uri("http://otel-collector:4317"); - Network accessline 284
.AddOtlpExporter(options => { options.Endpoint = new Uri("http://otel-collector:4317"); - Network accessline 285
{ options.Endpoint = new Uri("http://otel-collector:4317"); options.Protocol = OtlpExportProtocol.Grpc; - Network accessline 285
{ options.Endpoint = new Uri("http://otel-collector:4317"); options.Protocol = OtlpExportProtocol.Grpc; - Network accessline 286
options.Endpoint = new Uri("http://otel-collector:4317"); - Network accessline 286
options.Endpoint = new Uri("http://otel-collector:4317"); - Network accessline 295
Default endpoint: `http://localhost:4317` (gRPC) or `http://localhost:4318` (HTTP/protobuf). - Network accessline 295
Default endpoint: `http://localhost:4317` (gRPC) or `http://localhost:4318` (HTTP/protobuf). - Network accessline 299
export OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - Network accessline 299
export OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - Network accessline 359
.AddZipkinExporter(options => { options.Endpoint = new Uri("http://zipkin:9411/api/v2/spans"); - Network accessline 359
.AddZipkinExporter(options => { options.Endpoint = new Uri("http://zipkin:9411/api/v2/spans"); - Network accessline 360
{ options.Endpoint = new Uri("http://zipkin:9411/api/v2/spans"); })); - Network accessline 360
{ options.Endpoint = new Uri("http://zipkin:9411/api/v2/spans"); })); - Network accessline 361
options.Endpoint = new Uri("http://zipkin:9411/api/v2/spans"); - Network accessline 361
options.Endpoint = new Uri("http://zipkin:9411/api/v2/spans"); - Network accessline 433
[Sampling](https://opentelemetry.io/docs/specs/otel/trace/sdk/#sampling) controls - Network accessline 433
[Sampling](https://opentelemetry.io/docs/specs/otel/trace/sdk/#sampling) controls - Network accessline 555
the full trace data. This allows sampling rules like "keep 100% of error traces, 10% of successful traces." Tail-based sampling is typically implemented in the [OTel Collector](https://opentelemetry.io/docs/collector/), not in the SDK. - Network accessline 555
the full trace data. This allows sampling rules like "keep 100% of error traces, 10% of successful traces." Tail-based sampling is typically implemented in the [OTel Collector](https://opentelemetry.io/docs/collector/), not in the SDK. - Network accessline 557
[OTel Collector](https://opentelemetry.io/docs/collector/), not in the SDK. - Network accessline 557
[OTel Collector](https://opentelemetry.io/docs/collector/), not in the SDK. - Network accessline 559
For .NET-specific tail-based sampling patterns, see [OTel .NET: Tail-Based Sampling](https://opentelemetry.io/docs/languages/dotnet/traces/tail-based-sampling/). - Network accessline 559
For .NET-specific tail-based sampling patterns, see [OTel .NET: Tail-Based Sampling](https://opentelemetry.io/docs/languages/dotnet/traces/tail-based-sampling/). - Network accessline 560
[OTel .NET: Tail-Based Sampling](https://opentelemetry.io/docs/languages/dotnet/traces/tail-based-sampling/). - Network accessline 560
[OTel .NET: Tail-Based Sampling](https://opentelemetry.io/docs/languages/dotnet/traces/tail-based-sampling/). - Network accessline 572
Per the [MS Learn documentation](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/observability-with-otel), - Network accessline 572
Per the [MS Learn documentation](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/observability-with-otel), - Network accessline 654
See [OTel .NET: Log Redaction](https://opentelemetry.io/docs/languages/dotnet/logs/redaction/). - Network accessline 654
See [OTel .NET: Log Redaction](https://opentelemetry.io/docs/languages/dotnet/logs/redaction/). - Network accessline 688
{ options.AddOtlpExporter(o => o.Endpoint = new Uri("http://audit-collector:4317")); - Network accessline 688
{ options.AddOtlpExporter(o => o.Endpoint = new Uri("http://audit-collector:4317")); - Network accessline 689
options.AddOtlpExporter(o => o.Endpoint = new Uri("http://audit-collector:4317")); }); - Network accessline 689
options.AddOtlpExporter(o => o.Endpoint = new Uri("http://audit-collector:4317")); }); - Network accessline 690
o.Endpoint = new Uri("http://audit-collector:4317")); - Network accessline 690
o.Endpoint = new Uri("http://audit-collector:4317")); - Network accessline 694
See [OTel .NET: Dedicated Logging Pipeline](https://opentelemetry.io/docs/languages/dotnet/logs/dedicated-pipeline/). - Network accessline 694
See [OTel .NET: Dedicated Logging Pipeline](https://opentelemetry.io/docs/languages/dotnet/logs/dedicated-pipeline/). - Network accessline 707
See [OTel .NET: Logging Complex Objects](https://opentelemetry.io/docs/languages/dotnet/logs/complex-objects/). - Network accessline 707
See [OTel .NET: Logging Complex Objects](https://opentelemetry.io/docs/languages/dotnet/logs/complex-objects/). - Network accessline 743
| Variable | Description | Example | |----------|-------------|---------| | `OTEL_EXPORTER_OTLP_ENDPOINT` | OTLP endpoint | `http://collector:4317` | - Network accessline 743
| Variable | Description | Example | |----------|-------------|---------| | `OTEL_EXPORTER_OTLP_ENDPOINT` | OTLP endpoint | `http://collector:4317` | - Network accessline 744
|----------|-------------|---------| | `OTEL_EXPORTER_OTLP_ENDPOINT` | OTLP endpoint | `http://collector:4317` | | `OTEL_EXPORTER_OTLP_PROTOCOL` | Protocol | `grpc` or `http/protobuf` | - Network accessline 744
|----------|-------------|---------| | `OTEL_EXPORTER_OTLP_ENDPOINT` | OTLP endpoint | `http://collector:4317` | | `OTEL_EXPORTER_OTLP_PROTOCOL` | Protocol | `grpc` or `http/protobuf` | - Network accessline 745
| `OTEL_EXPORTER_OTLP_ENDPOINT` | OTLP endpoint | `http://collector:4317` | - Network accessline 745
| `OTEL_EXPORTER_OTLP_ENDPOINT` | OTLP endpoint | `http://collector:4317` | - Network accessline 749
See the [full environment variable reference](https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/). - Network accessline 749
See the [full environment variable reference](https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/). - Network accessline 755
For applications where you cannot modify source code, use the [OpenTelemetry .NET Automatic Instrumentation](https://opentelemetry.io/docs/zero-code/net/). - Network accessline 755
For applications where you cannot modify source code, use the [OpenTelemetry .NET Automatic Instrumentation](https://opentelemetry.io/docs/zero-code/net/). - Network accessline 756
[OpenTelemetry .NET Automatic Instrumentation](https://opentelemetry.io/docs/zero-code/net/). - Network accessline 756
[OpenTelemetry .NET Automatic Instrumentation](https://opentelemetry.io/docs/zero-code/net/). - Network accessline 760
# Install curl -sSfL https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/otel-dotnet-auto-install.sh -O - Network accessline 760
# Install curl -sSfL https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/otel-dotnet-auto-install.sh -O - Network accessline 761
curl -sSfL https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/otel-dotnet-auto-install.sh -O - Network accessline 761
curl -sSfL https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/otel-dotnet-auto-install.sh -O - Network accessline 767
# Run with instrumentation OTEL_SERVICE_NAME=myapp OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4317 ./MyApp - Network accessline 767
# Run with instrumentation OTEL_SERVICE_NAME=myapp OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4317 ./MyApp - Network accessline 768
OTEL_SERVICE_NAME=myapp OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4317 ./MyApp - Network accessline 768
OTEL_SERVICE_NAME=myapp OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4317 ./MyApp - Network accessline 778
- [OTel .NET: Manual Instrumentation](https://opentelemetry.io/docs/languages/dotnet/instrumentation/) - Network accessline 778
- [OTel .NET: Manual Instrumentation](https://opentelemetry.io/docs/languages/dotnet/instrumentation/) - Network accessline 779
- [OTel .NET: Resources](https://opentelemetry.io/docs/languages/dotnet/resources/) - Network accessline 779
- [OTel .NET: Resources](https://opentelemetry.io/docs/languages/dotnet/resources/) - Network accessline 780
- [OTel .NET: Sampling](https://opentelemetry.io/docs/languages/dotnet/sampling/) - Network accessline 780
- [OTel .NET: Sampling](https://opentelemetry.io/docs/languages/dotnet/sampling/) - Network accessline 781
- [OTel .NET: Logs](https://opentelemetry.io/docs/languages/dotnet/logs/) - Network accessline 781
- [OTel .NET: Logs](https://opentelemetry.io/docs/languages/dotnet/logs/) - Network accessline 782
- [OTel .NET: Exporters](https://opentelemetry.io/docs/languages/dotnet/exporters/) - Network accessline 782
- [OTel .NET: Exporters](https://opentelemetry.io/docs/languages/dotnet/exporters/) - Network accessline 783
- [OTel Resource Specification](https://opentelemetry.io/docs/specs/otel/resource/) - Network accessline 783
- [OTel Resource Specification](https://opentelemetry.io/docs/specs/otel/resource/) - Network accessline 784
- [OTel Logs Specification](https://opentelemetry.io/docs/specs/otel/logs/) - Network accessline 784
- [OTel Logs Specification](https://opentelemetry.io/docs/specs/otel/logs/) - Network accessline 785
- [OTel Logs SDK Specification](https://opentelemetry.io/docs/specs/otel/logs/sdk/) - Network accessline 785
- [OTel Logs SDK Specification](https://opentelemetry.io/docs/specs/otel/logs/sdk/) - Network accessline 786
- [OTel Tracing SDK: Sampling](https://opentelemetry.io/docs/specs/otel/trace/sdk/#sampling) - Network accessline 786
- [OTel Tracing SDK: Sampling](https://opentelemetry.io/docs/specs/otel/trace/sdk/#sampling) - Network accessline 787
- [OTel Configuration: SDK Environment Variables](https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/) - Network accessline 787
- [OTel Configuration: SDK Environment Variables](https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/) - Network accessline 788
- [OTel .NET: Zero-Code Instrumentation](https://opentelemetry.io/docs/zero-code/net/) - Network accessline 788
- [OTel .NET: Zero-Code Instrumentation](https://opentelemetry.io/docs/zero-code/net/) - Network accessline 789
- [OTel .NET: Tail-Based Sampling](https://opentelemetry.io/docs/languages/dotnet/traces/tail-based-sampling/) - Network accessline 789
- [OTel .NET: Tail-Based Sampling](https://opentelemetry.io/docs/languages/dotnet/traces/tail-based-sampling/) - Network accessline 790
- [OTel .NET: Stratified Sampling](https://opentelemetry.io/docs/languages/dotnet/traces/stratified-sampling/) - Network accessline 790
- [OTel .NET: Stratified Sampling](https://opentelemetry.io/docs/languages/dotnet/traces/stratified-sampling/) - Network accessline 791
- [OTel .NET: Log Redaction](https://opentelemetry.io/docs/languages/dotnet/logs/redaction/) - Network accessline 791
- [OTel .NET: Log Redaction](https://opentelemetry.io/docs/languages/dotnet/logs/redaction/) - Network accessline 792
- [OTel .NET: Dedicated Logging Pipeline](https://opentelemetry.io/docs/languages/dotnet/logs/dedicated-pipeline/) - Network accessline 792
- [OTel .NET: Dedicated Logging Pipeline](https://opentelemetry.io/docs/languages/dotnet/logs/dedicated-pipeline/) - Network accessline 793
- [OTel .NET: Log Correlation](https://opentelemetry.io/docs/languages/dotnet/logs/correlation/) - Network accessline 793
- [OTel .NET: Log Correlation](https://opentelemetry.io/docs/languages/dotnet/logs/correlation/) - Network accessline 794
- [OTel .NET: Logging Complex Objects](https://opentelemetry.io/docs/languages/dotnet/logs/complex-objects/) - Network accessline 794
- [OTel .NET: Logging Complex Objects](https://opentelemetry.io/docs/languages/dotnet/logs/complex-objects/) - Network accessline 795
- [OTel .NET: Export to Jaeger](https://opentelemetry.io/docs/languages/dotnet/traces/jaeger/) - Network accessline 795
- [OTel .NET: Export to Jaeger](https://opentelemetry.io/docs/languages/dotnet/traces/jaeger/) - Network accessline 796
- [OTel .NET: Export to Prometheus](https://opentelemetry.io/docs/languages/dotnet/metrics/getting-started-prometheus-grafana/) - Network accessline 796
- [OTel .NET: Export to Prometheus](https://opentelemetry.io/docs/languages/dotnet/metrics/getting-started-prometheus-grafana/) - Network accessline 797
- [OTel Semantic Conventions: Resource](https://opentelemetry.io/docs/specs/semconv/resource/) - Network accessline 797
- [OTel Semantic Conventions: Resource](https://opentelemetry.io/docs/specs/semconv/resource/) - Network accessline 798
- [.NET Observability with OpenTelemetry (Microsoft Learn)](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/observability-with-otel) - Network accessline 798
- [.NET Observability with OpenTelemetry (Microsoft Learn)](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/observability-with-otel)
skills/opentelementry-dotnet-instrumentation/traces-and-propagation-reference.md
- Network accessline 86
using var activity = ActivitySource.StartActivity("CallExternalApi", ActivityKind.Client); activity?.SetTag("http.request.method", "POST"); activity?.SetTag("url.full", "https://api.example.com/orders"); - Network accessline 86
using var activity = ActivitySource.StartActivity("CallExternalApi", ActivityKind.Client); activity?.SetTag("http.request.method", "POST"); activity?.SetTag("url.full", "https://api.example.com/orders"); - Network accessline 87
activity?.SetTag("http.request.method", "POST"); activity?.SetTag("url.full", "https://api.example.com/orders"); activity?.SetTag("server.address", "api.example.com"); - Network accessline 87
activity?.SetTag("http.request.method", "POST"); activity?.SetTag("url.full", "https://api.example.com/orders"); activity?.SetTag("server.address", "api.example.com"); - Network accessline 88
activity?.SetTag("url.full", "https://api.example.com/orders"); - Network accessline 88
activity?.SetTag("url.full", "https://api.example.com/orders"); - Network accessline 143
message creation context), creating a causal link across the asynchronous boundary. Note that per the [messaging semantic conventions](https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/), - Network accessline 143
message creation context), creating a causal link across the asynchronous boundary. Note that per the [messaging semantic conventions](https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/), - Network accessline 144
Note that per the [messaging semantic conventions](https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/), only the `process` operation is kind `Consumer` — a pull-based `receive` is kind - Network accessline 144
Note that per the [messaging semantic conventions](https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/), only the `process` operation is kind `Consumer` — a pull-based `receive` is kind - Network accessline 145
[messaging semantic conventions](https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/), - Network accessline 145
[messaging semantic conventions](https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/), - Network accessline 170
[Span links](https://opentelemetry.io/docs/specs/otel/overview/#links-between-spans) - Network accessline 170
[Span links](https://opentelemetry.io/docs/specs/otel/overview/#links-between-spans) - Network accessline 292
The [messaging semantic conventions](https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/) allow — and default to — parenting the `process` span under the local ambient context instead of the producer, with a **span link** - Network accessline 292
The [messaging semantic conventions](https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/) allow — and default to — parenting the `process` span under the local ambient context instead of the producer, with a **span link** - Network accessline 327
See [OTel .NET: Creating links between traces](https://opentelemetry.io/docs/languages/dotnet/traces/links-creation/). - Network accessline 327
See [OTel .NET: Creating links between traces](https://opentelemetry.io/docs/languages/dotnet/traces/links-creation/). - Network accessline 333
[Distributed tracing](https://opentelemetry.io/docs/specs/otel/context/) requires - Network accessline 333
[Distributed tracing](https://opentelemetry.io/docs/specs/otel/context/) requires - Network accessline 341
The default and recommended propagation format is [W3C TraceContext](https://www.w3.org/TR/trace-context/), - Network accessline 341
The default and recommended propagation format is [W3C TraceContext](https://www.w3.org/TR/trace-context/), - Network accessline 441
| Factory | Behavior | |---------|----------| | `CreateDefaultPropagator()` | What `Current` is initialized with. Up to .NET 9: the legacy propagator (lenient encoding, baggage in the non-standard `Correlation-Context` header). **From .NET - Network accessline 441
| Factory | Behavior | |---------|----------| | `CreateDefaultPropagator()` | What `Current` is initialized with. Up to .NET 9: the legacy propagator (lenient encoding, baggage in the non-standard `Correlation-Context` header). **From .NET - Network accessline 442
|---------|----------| | `CreateDefaultPropagator()` | What `Current` is initialized with. Up to .NET 9: the legacy propagator (lenient encoding, baggage in the non-standard `Correlation-Context` header). **From .NET 10: the W3C propagator* - Network accessline 442
|---------|----------| | `CreateDefaultPropagator()` | What `Current` is initialized with. Up to .NET 9: the legacy propagator (lenient encoding, baggage in the non-standard `Correlation-Context` header). **From .NET 10: the W3C propagator* - Network accessline 443
| `CreateDefaultPropagator()` | What `Current` is initialized with. Up to .NET 9: the legacy propagator (lenient encoding, baggage in the non-standard `Correlation-Context` header). **From .NET 10: the W3C propagator** ([breaking change](ht - Network accessline 443
| `CreateDefaultPropagator()` | What `Current` is initialized with. Up to .NET 9: the legacy propagator (lenient encoding, baggage in the non-standard `Correlation-Context` header). **From .NET 10: the W3C propagator** ([breaking change](ht - Network accessline 444
| `CreateW3CPropagator()` (.NET 10+) | Strict [W3C TraceContext](https://www.w3.org/TR/trace-context/) + [W3C Baggage](https://www.w3.org/TR/baggage/) — baggage in the `baggage` header, W3C-compliant encoding | - Network accessline 444
| `CreateW3CPropagator()` (.NET 10+) | Strict [W3C TraceContext](https://www.w3.org/TR/trace-context/) + [W3C Baggage](https://www.w3.org/TR/baggage/) — baggage in the `baggage` header, W3C-compliant encoding | - Network accessline 495
If you need to interoperate with systems using the [B3 propagation format](https://github.com/openzipkin/b3-propagation) - Network accessline 495
If you need to interoperate with systems using the [B3 propagation format](https://github.com/openzipkin/b3-propagation) - Network accessline 514
[Baggage](https://opentelemetry.io/docs/specs/otel/baggage/) is a mechanism for - Network accessline 514
[Baggage](https://opentelemetry.io/docs/specs/otel/baggage/) is a mechanism for - Network accessline 564
- Keys must match the pattern: `[a-z0-9][-a-z0-9._*]*[a-z0-9]` (lowercase) - The total baggage size SHOULD be limited (typically 180 characters per entry, max 64 entries per the [W3C baggage spec](https://www.w3.org/TR/baggage/)) - Network accessline 564
- Keys must match the pattern: `[a-z0-9][-a-z0-9._*]*[a-z0-9]` (lowercase) - The total baggage size SHOULD be limited (typically 180 characters per entry, max 64 entries per the [W3C baggage spec](https://www.w3.org/TR/baggage/)) - Network accessline 565
- The total baggage size SHOULD be limited (typically 180 characters per entry, max 64 entries per the [W3C baggage spec](https://www.w3.org/TR/baggage/)) - Baggage is propagated alongside trace context via the same HTTP headers mechanism - Network accessline 565
- The total baggage size SHOULD be limited (typically 180 characters per entry, max 64 entries per the [W3C baggage spec](https://www.w3.org/TR/baggage/)) - Baggage is propagated alongside trace context via the same HTTP headers mechanism - Network accessline 566
max 64 entries per the [W3C baggage spec](https://www.w3.org/TR/baggage/)) - Network accessline 566
max 64 entries per the [W3C baggage spec](https://www.w3.org/TR/baggage/)) - Network accessline 611
`Activity.SetStatus()` plus the `error.type` tag, governed by [Recording Errors](https://opentelemetry.io/docs/specs/semconv/general/recording-errors/), is the current, non-deprecated way to mark a span as failed — implement it unconditiona - Network accessline 611
`Activity.SetStatus()` plus the `error.type` tag, governed by [Recording Errors](https://opentelemetry.io/docs/specs/semconv/general/recording-errors/), is the current, non-deprecated way to mark a span as failed — implement it unconditiona - Network accessline 633
`Ok` is a separate, narrower case governed by the [Set Status API spec](https://opentelemetry.io/docs/specs/otel/trace/api/#set-status), not by `recording-errors.md`: "Instrumentation Libraries SHOULD NOT set the status code to `Ok`, unless - Network accessline 633
`Ok` is a separate, narrower case governed by the [Set Status API spec](https://opentelemetry.io/docs/specs/otel/trace/api/#set-status), not by `recording-errors.md`: "Instrumentation Libraries SHOULD NOT set the status code to `Ok`, unless - Network accessline 757
- [OTel SpanKind Specification](https://opentelemetry.io/docs/specs/otel/trace/api/#spankind) - Network accessline 757
- [OTel SpanKind Specification](https://opentelemetry.io/docs/specs/otel/trace/api/#spankind) - Network accessline 758
- [OTel Links Between Spans](https://opentelemetry.io/docs/specs/otel/overview/#links-between-spans) - Network accessline 758
- [OTel Links Between Spans](https://opentelemetry.io/docs/specs/otel/overview/#links-between-spans) - Network accessline 759
- [OTel Link API](https://opentelemetry.io/docs/specs/otel/trace/api/#link) - Network accessline 759
- [OTel Link API](https://opentelemetry.io/docs/specs/otel/trace/api/#link) - Network accessline 760
- [OTel Context Specification](https://opentelemetry.io/docs/specs/otel/context/) - Network accessline 760
- [OTel Context Specification](https://opentelemetry.io/docs/specs/otel/context/) - Network accessline 761
- [OTel Baggage Specification](https://opentelemetry.io/docs/specs/otel/baggage/) - Network accessline 761
- [OTel Baggage Specification](https://opentelemetry.io/docs/specs/otel/baggage/) - Network accessline 762
- [W3C Trace Context](https://www.w3.org/TR/trace-context/) - Network accessline 762
- [W3C Trace Context](https://www.w3.org/TR/trace-context/) - Network accessline 763
- [W3C Baggage](https://www.w3.org/TR/baggage/) - Network accessline 763
- [W3C Baggage](https://www.w3.org/TR/baggage/) - Network accessline 764
- [OTel .NET: Creating Links Between Traces](https://opentelemetry.io/docs/languages/dotnet/traces/links-creation/) - Network accessline 764
- [OTel .NET: Creating Links Between Traces](https://opentelemetry.io/docs/languages/dotnet/traces/links-creation/) - Network accessline 765
- [OTel .NET: Reporting Exceptions](https://opentelemetry.io/docs/languages/dotnet/traces/reporting-exceptions/) - Network accessline 765
- [OTel .NET: Reporting Exceptions](https://opentelemetry.io/docs/languages/dotnet/traces/reporting-exceptions/) - Network accessline 766
- [OTel Recording Errors](https://opentelemetry.io/docs/specs/semconv/general/recording-errors/) - Network accessline 766
- [OTel Recording Errors](https://opentelemetry.io/docs/specs/semconv/general/recording-errors/) - Network accessline 767
- [OTel Exception Span Conventions (Deprecated)](https://opentelemetry.io/docs/specs/semconv/exceptions/exceptions-spans/) - Network accessline 767
- [OTel Exception Span Conventions (Deprecated)](https://opentelemetry.io/docs/specs/semconv/exceptions/exceptions-spans/) - Network accessline 768
- [OTel Exception Logs Conventions](https://opentelemetry.io/docs/specs/semconv/exceptions/exceptions-logs/) - Network accessline 768
- [OTel Exception Logs Conventions](https://opentelemetry.io/docs/specs/semconv/exceptions/exceptions-logs/) - Network accessline 769
- [OTel General Events Conventions](https://opentelemetry.io/docs/specs/semconv/general/events/) - Network accessline 769
- [OTel General Events Conventions](https://opentelemetry.io/docs/specs/semconv/general/events/) - Network accessline 770
- [.NET Distributed Tracing Documentation](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing) - Network accessline 770
- [.NET Distributed Tracing Documentation](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing)
skills/package-management/SKILL.md
- Network accessline 288
# Add authenticated feed dotnet nuget add source https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json \ - Network accessline 288
# Add authenticated feed dotnet nuget add source https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json \ - Network accessline 289
dotnet nuget add source https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json \ - Network accessline 289
dotnet nuget add source https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json \ - Network accessline 303
<packageSources> <clear /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> - Network accessline 303
<packageSources> <clear /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> - Network accessline 304
<clear /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> <add key="MyPrivateFeed" value="https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json" /> - Network accessline 304
<clear /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> <add key="MyPrivateFeed" value="https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json" /> - Network accessline 305
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> - Network accessline 305
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> - Network accessline 306
<add key="MyPrivateFeed" value="https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json" /> - Network accessline 306
<add key="MyPrivateFeed" value="https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json" /> - Network accessline 457
- **Central Package Management**: https://learn.microsoft.com/en-us/nuget/consume-packages/central-package-management - Network accessline 457
- **Central Package Management**: https://learn.microsoft.com/en-us/nuget/consume-packages/central-package-management - Network accessline 458
- **dotnet CLI Reference**: https://learn.microsoft.com/en-us/dotnet/core/tools/ - Network accessline 458
- **dotnet CLI Reference**: https://learn.microsoft.com/en-us/dotnet/core/tools/ - Network accessline 459
- **NuGet.config Reference**: https://learn.microsoft.com/en-us/nuget/reference/nuget-config-file - Network accessline 459
- **NuGet.config Reference**: https://learn.microsoft.com/en-us/nuget/reference/nuget-config-file
skills/playwright-blazor/SKILL.md
- Network accessline 95
// First load is classic HTTP navigation await page.GotoAsync("https://localhost:5001"); - Network accessline 95
// First load is classic HTTP navigation await page.GotoAsync("https://localhost:5001"); - Network accessline 96
await page.GotoAsync("https://localhost:5001"); - Network accessline 96
await page.GotoAsync("https://localhost:5001"); - Network accessline 112
{ var page = await _fixture.Browser.NewPageAsync(); await page.GotoAsync("https://localhost:5001"); - Network accessline 112
{ var page = await _fixture.Browser.NewPageAsync(); await page.GotoAsync("https://localhost:5001"); - Network accessline 114
await page.GotoAsync("https://localhost:5001"); - Network accessline 114
await page.GotoAsync("https://localhost:5001"); - Network accessline 127
// Method 3: Direct URL navigation (causes full reload) await page.GotoAsync("https://localhost:5001/counter"); - Network accessline 127
// Method 3: Direct URL navigation (causes full reload) await page.GotoAsync("https://localhost:5001/counter"); - Network accessline 128
await page.GotoAsync("https://localhost:5001/counter"); - Network accessline 128
await page.GotoAsync("https://localhost:5001/counter");
skills/playwright-ci-caching/SKILL.md
- Network accessline 216
This pattern is battle-tested in production projects: - [petabridge/geekedin](https://github.com/petabridge/geekedin) - Network accessline 216
This pattern is battle-tested in production projects: - [petabridge/geekedin](https://github.com/petabridge/geekedin) - Network accessline 217
- [petabridge/geekedin](https://github.com/petabridge/geekedin) - Network accessline 217
- [petabridge/geekedin](https://github.com/petabridge/geekedin) - Network accessline 218
- [petabridge/DrawTogether.NET](https://github.com/petabridge/DrawTogether.NET) - Network accessline 218
- [petabridge/DrawTogether.NET](https://github.com/petabridge/DrawTogether.NET)
skills/project-structure/SKILL.md
- Network accessline 126
<Copyright>Copyright © 2020-$([System.DateTime]::Now.Year) Your Company</Copyright> <Product>Your Product</Product> <PackageProjectUrl>https://github.com/yourorg/yourrepo</PackageProjectUrl> - Network accessline 126
<Copyright>Copyright © 2020-$([System.DateTime]::Now.Year) Your Company</Copyright> <Product>Your Product</Product> <PackageProjectUrl>https://github.com/yourorg/yourrepo</PackageProjectUrl> - Network accessline 127
<Product>Your Product</Product> <PackageProjectUrl>https://github.com/yourorg/yourrepo</PackageProjectUrl> <RepositoryUrl>https://github.com/yourorg/yourrepo</RepositoryUrl> - Network accessline 127
<Product>Your Product</Product> <PackageProjectUrl>https://github.com/yourorg/yourrepo</PackageProjectUrl> <RepositoryUrl>https://github.com/yourorg/yourrepo</RepositoryUrl> - Network accessline 128
<PackageProjectUrl>https://github.com/yourorg/yourrepo</PackageProjectUrl> - Network accessline 128
<PackageProjectUrl>https://github.com/yourorg/yourrepo</PackageProjectUrl> - Network accessline 129
<RepositoryUrl>https://github.com/yourorg/yourrepo</RepositoryUrl> - Network accessline 129
<RepositoryUrl>https://github.com/yourorg/yourrepo</RepositoryUrl> - Network accessline 444
- name: Push to NuGet run: dotnet nuget push **/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json - Network accessline 444
- name: Push to NuGet run: dotnet nuget push **/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json - Network accessline 445
[Credential-related source omitted] - Network accessline 445
[Credential-related source omitted] - Access to secretsline 445
[Credential-related source omitted] - Access to secretsline 445
[Credential-related source omitted] - Network accessline 461
<packageSources> <clear /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> - Network accessline 461
<packageSources> <clear /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> - Network accessline 462
<clear /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> <!-- Add private feeds if needed --> - Network accessline 462
<clear /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> <!-- Add private feeds if needed --> - Network accessline 463
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> - Network accessline 463
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> - Network accessline 464
<!-- Add private feeds if needed --> <!-- <add key="MyCompany" value="https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json" /> --> </packageSources> - Network accessline 464
<!-- Add private feeds if needed --> <!-- <add key="MyCompany" value="https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json" /> --> </packageSources> - Network accessline 465
<!-- <add key="MyCompany" value="https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json" /> --> - Network accessline 465
<!-- <add key="MyCompany" value="https://pkgs.dev.azure.com/myorg/_packaging/myfeed/nuget/v3/index.json" /> -->
skills/r3-reactive-extensions/SKILL.md
- Network accessline 9
R3 is [Cysharp's](https://github.com/Cysharp/R3) ground-up reimplementation of Reactive - Network accessline 9
R3 is [Cysharp's](https://github.com/Cysharp/R3) ground-up reimplementation of Reactive - Network accessline 15
**Canonical sources** (link to these from code and docs): - Repository: https://github.com/Cysharp/R3 - Network accessline 15
**Canonical sources** (link to these from code and docs): - Repository: https://github.com/Cysharp/R3 - Network accessline 16
- Repository: https://github.com/Cysharp/R3 - Network accessline 16
- Repository: https://github.com/Cysharp/R3 - Network accessline 17
- README (full operator reference): https://github.com/Cysharp/R3/blob/main/README.md - Network accessline 17
- README (full operator reference): https://github.com/Cysharp/R3/blob/main/README.md - Network accessline 18
- Author's design rationale: https://neuecc.medium.com/r3-a-new-modern-reimplementation-of-reactive-extensions-for-c-cf29abcc5826 - Network accessline 18
- Author's design rationale: https://neuecc.medium.com/r3-a-new-modern-reimplementation-of-reactive-extensions-for-c-cf29abcc5826 - Network accessline 48
The author ([neuecc](https://neuecc.medium.com/r3-a-new-modern-reimplementation-of-reactive-extensions-for-c-cf29abcc5826)) - Network accessline 48
The author ([neuecc](https://neuecc.medium.com/r3-a-new-modern-reimplementation-of-reactive-extensions-for-c-cf29abcc5826)) - Network accessline 269
- **R3 repository:** https://github.com/Cysharp/R3 - Network accessline 269
- **R3 repository:** https://github.com/Cysharp/R3 - Network accessline 270
- **Full README / operator reference:** https://github.com/Cysharp/R3/blob/main/README.md - Network accessline 270
- **Full README / operator reference:** https://github.com/Cysharp/R3/blob/main/README.md - Network accessline 271
- **Design rationale (neuecc):** https://neuecc.medium.com/r3-a-new-modern-reimplementation-of-reactive-extensions-for-c-cf29abcc5826 - Network accessline 271
- **Design rationale (neuecc):** https://neuecc.medium.com/r3-a-new-modern-reimplementation-of-reactive-extensions-for-c-cf29abcc5826 - Network accessline 272
- **NuGet:** https://www.nuget.org/packages/R3 - Network accessline 272
- **NuGet:** https://www.nuget.org/packages/R3 - Network accessline 273
- **`TimeProvider` (BCL):** https://learn.microsoft.com/en-us/dotnet/api/system.timeprovider - Network accessline 273
- **`TimeProvider` (BCL):** https://learn.microsoft.com/en-us/dotnet/api/system.timeprovider - Network accessline 274
- **`FakeTimeProvider`:** https://www.nuget.org/packages/Microsoft.Extensions.TimeProvider.Testing - Network accessline 274
- **`FakeTimeProvider`:** https://www.nuget.org/packages/Microsoft.Extensions.TimeProvider.Testing
skills/r3-reactive-extensions/async-and-integration-patterns.md
- Network accessline 3
Day-to-day patterns for R3, with emphasis on async dispatch and bridging to `Task` / `IAsyncEnumerable`. Verified against **R3 1.3.1**. Operator reference: [R3 README](https://github.com/Cysharp/R3/blob/main/README.md). - Network accessline 3
Day-to-day patterns for R3, with emphasis on async dispatch and bridging to `Task` / `IAsyncEnumerable`. Verified against **R3 1.3.1**. Operator reference: [R3 README](https://github.com/Cysharp/R3/blob/main/README.md). - Network accessline 5
[R3 README](https://github.com/Cysharp/R3/blob/main/README.md). - Network accessline 5
[R3 README](https://github.com/Cysharp/R3/blob/main/README.md).
skills/r3-reactive-extensions/rx-net-differences.md
- Network accessline 3
How R3 differs from `System.Reactive` (Rx.NET) and UniRx, with the reasoning behind each change. All API facts below were verified by reflection and runtime POCs against **R3 1.3.1**. The authoritative reference is the [R3 README](https://g - Network accessline 3
How R3 differs from `System.Reactive` (Rx.NET) and UniRx, with the reasoning behind each change. All API facts below were verified by reflection and runtime POCs against **R3 1.3.1**. The authoritative reference is the [R3 README](https://g - Network accessline 4
All API facts below were verified by reflection and runtime POCs against **R3 1.3.1**. The authoritative reference is the [R3 README](https://github.com/Cysharp/R3/blob/main/README.md); the rationale is in the [author's article](https://neu - Network accessline 4
All API facts below were verified by reflection and runtime POCs against **R3 1.3.1**. The authoritative reference is the [R3 README](https://github.com/Cysharp/R3/blob/main/README.md); the rationale is in the [author's article](https://neu - Network accessline 5
authoritative reference is the [R3 README](https://github.com/Cysharp/R3/blob/main/README.md); - Network accessline 5
authoritative reference is the [R3 README](https://github.com/Cysharp/R3/blob/main/README.md); - Network accessline 6
the rationale is in the [author's article](https://neuecc.medium.com/r3-a-new-modern-reimplementation-of-reactive-extensions-for-c-cf29abcc5826). - Network accessline 6
the rationale is in the [author's article](https://neuecc.medium.com/r3-a-new-modern-reimplementation-of-reactive-extensions-for-c-cf29abcc5826).
skills/r3-reactive-extensions/scheduling-and-concurrency.md
- Network accessline 3
How R3 handles concurrent updates, thread marshaling, and time — plus deterministic testing. All behavior verified against **R3 1.3.1**. Reference: [R3 README](https://github.com/Cysharp/R3/blob/main/README.md). - Network accessline 3
How R3 handles concurrent updates, thread marshaling, and time — plus deterministic testing. All behavior verified against **R3 1.3.1**. Reference: [R3 README](https://github.com/Cysharp/R3/blob/main/README.md). - Network accessline 5
[R3 README](https://github.com/Cysharp/R3/blob/main/README.md). - Network accessline 5
[R3 README](https://github.com/Cysharp/R3/blob/main/README.md).
skills/sdk-container-publishing/SKILL.md
- Network accessline 23
Since .NET 7, `dotnet publish` builds a container image natively. The `Microsoft.NET.Build.Containers` tooling ships with the SDK, so no Dockerfile is required and no Docker install is needed to produce an image. Docker or Podman is only re - Network accessline 23
Since .NET 7, `dotnet publish` builds a container image natively. The `Microsoft.NET.Build.Containers` tooling ships with the SDK, so no Dockerfile is required and no Docker install is needed to produce an image. Docker or Podman is only re - Network accessline 31
That compiles the app and emits an image in one step. The image name defaults to the project's `AssemblyName`. Override it with `ContainerRepository` (renamed from `ContainerImageName` in earlier versions - see the [sdk-container-builds cus - Network accessline 31
That compiles the app and emits an image in one step. The image name defaults to the project's `AssemblyName`. Override it with `ContainerRepository` (renamed from `ContainerImageName` in earlier versions - see the [sdk-container-builds cus - Network accessline 43
See the [containerize a .NET app reference](https://learn.microsoft.com/en-us/dotnet/core/containers/publish-configuration) for the full property surface. - Network accessline 43
See the [containerize a .NET app reference](https://learn.microsoft.com/en-us/dotnet/core/containers/publish-configuration) for the full property surface. - Network accessline 47
- **No Docker required to build.** The SDK creates the image itself; a runtime is only needed to run it. See the [SDK publish tutorial](https://learn.microsoft.com/en-us/dotnet/core/containers/sdk-publish). - Network accessline 47
- **No Docker required to build.** The SDK creates the image itself; a runtime is only needed to run it. See the [SDK publish tutorial](https://learn.microsoft.com/en-us/dotnet/core/containers/sdk-publish). - Network accessline 48
- **Image name defaults to `AssemblyName`.** Set `ContainerRepository` to override. - **Base image is inferred.** Self-contained projects get `mcr.microsoft.com/dotnet/runtime-deps`, ASP.NET Core gets `dotnet/aspnet`, other apps get `dotnet - Network accessline 48
- **Image name defaults to `AssemblyName`.** Set `ContainerRepository` to override. - **Base image is inferred.** Self-contained projects get `mcr.microsoft.com/dotnet/runtime-deps`, ASP.NET Core gets `dotnet/aspnet`, other apps get `dotnet - Network accessline 49
- **Base image is inferred.** Self-contained projects get `mcr.microsoft.com/dotnet/runtime-deps`, ASP.NET Core gets `dotnet/aspnet`, other apps get `dotnet/runtime`, tagged for the TFM. Since SDK 8.0.200 the inference is size and security - Network accessline 49
- **Base image is inferred.** Self-contained projects get `mcr.microsoft.com/dotnet/runtime-deps`, ASP.NET Core gets `dotnet/aspnet`, other apps get `dotnet/runtime`, tagged for the TFM. Since SDK 8.0.200 the inference is size and security - Network accessline 50
- **Since .NET 8, the SDK tags images `latest` when you do not set a tag.** If your publish relies on the version tag you must set `ContainerImageTag` (single tag) or `ContainerImageTags` (list) explicitly. This is a real footgun in CI - se - Network accessline 50
- **Since .NET 8, the SDK tags images `latest` when you do not set a tag.** If your publish relies on the version tag you must set `ContainerImageTag` (single tag) or `ContainerImageTags` (list) explicitly. This is a real footgun in CI - se - Network accessline 51
- **Windows images need an explicit base image.** Microsoft no longer includes Windows variants in the manifest list. To target Windows, set `ContainerBaseImage` to a specific nanoserver tag (for example `mcr.microsoft.com/dotnet/aspnet:8.0 - Network accessline 51
- **Windows images need an explicit base image.** Microsoft no longer includes Windows variants in the manifest list. To target Windows, set `ContainerBaseImage` to a specific nanoserver tag (for example `mcr.microsoft.com/dotnet/aspnet:8.0
skills/sdk-container-publishing/references/ci-cd.md
- Network accessline 46
The SDK reads Docker / Podman config to decide HTTP vs HTTPS and to authenticate. See the [registry authentication docs](https://aka.ms/dotnet/containers/auth) (which redirects to the sdk-container-builds `RegistryAuthentication.md`). - Network accessline 46
The SDK reads Docker / Podman config to decide HTTP vs HTTPS and to authenticate. See the [registry authentication docs](https://aka.ms/dotnet/containers/auth) (which redirects to the sdk-container-builds `RegistryAuthentication.md`). - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted]
skills/sdk-container-publishing/references/property-reference.md
- Network accessline 8
Grouped by what each property controls. The authoritative source is the [containerize a .NET app reference](https://learn.microsoft.com/en-us/dotnet/core/containers/publish-configuration) on Microsoft Learn. - Network accessline 8
Grouped by what each property controls. The authoritative source is the [containerize a .NET app reference](https://learn.microsoft.com/en-us/dotnet/core/containers/publish-configuration) on Microsoft Learn. - Network accessline 25
| Property | What it does | |----------|--------------| | `ContainerBaseImage` | Pin an explicit base image instead of the inferred default. Required for Windows containers, because Microsoft stopped shipping Windows variants in the manifes - Network accessline 25
| Property | What it does | |----------|--------------| | `ContainerBaseImage` | Pin an explicit base image instead of the inferred default. Required for Windows containers, because Microsoft stopped shipping Windows variants in the manifes - Network accessline 26
|----------|--------------| | `ContainerBaseImage` | Pin an explicit base image instead of the inferred default. Required for Windows containers, because Microsoft stopped shipping Windows variants in the manifest list for .NET 8+. See the - Network accessline 26
|----------|--------------| | `ContainerBaseImage` | Pin an explicit base image instead of the inferred default. Required for Windows containers, because Microsoft stopped shipping Windows variants in the manifest list for .NET 8+. See the - Network accessline 27
| `ContainerBaseImage` | Pin an explicit base image instead of the inferred default. Required for Windows containers, because Microsoft stopped shipping Windows variants in the manifest list for .NET 8+. See the [Windows container note](htt - Network accessline 27
| `ContainerBaseImage` | Pin an explicit base image instead of the inferred default. Required for Windows containers, because Microsoft stopped shipping Windows variants in the manifest list for .NET 8+. See the [Windows container note](htt - Network accessline 65
The SDK picks a base image when `ContainerBaseImage` is unset. See the [base image inference docs](https://learn.microsoft.com/en-us/dotnet/core/containers/publish-configuration): - Network accessline 65
The SDK picks a base image when `ContainerBaseImage` is unset. See the [base image inference docs](https://learn.microsoft.com/en-us/dotnet/core/containers/publish-configuration): - Network accessline 84
- Insecure registries: `DOTNET_CONTAINER_INSECURE_REGISTRIES` env var (comma-separated), SDK 9.0.100+. - HTTP vs HTTPS: since .NET 8.0.400 the SDK reads standard Docker / Podman config files. - Direct-push auth without `docker login`: `DOTN - Network accessline 84
- Insecure registries: `DOTNET_CONTAINER_INSECURE_REGISTRIES` env var (comma-separated), SDK 9.0.100+. - HTTP vs HTTPS: since .NET 8.0.400 the SDK reads standard Docker / Podman config files. - Direct-push auth without `docker login`: `DOTN - Network accessline 86
- Direct-push auth without `docker login`: `DOTNET_CONTAINER_REGISTRY_UNAME` / `DOTNET_CONTAINER_REGISTRY_PWORD`. See the [registry authentication docs](https://aka.ms/dotnet/containers/auth). - Network accessline 86
- Direct-push auth without `docker login`: `DOTNET_CONTAINER_REGISTRY_UNAME` / `DOTNET_CONTAINER_REGISTRY_PWORD`. See the [registry authentication docs](https://aka.ms/dotnet/containers/auth).
skills/sdk-container-publishing/references/self-contained-and-aot.md
skills/sdk-container-publishing/references/troubleshooting.md
- Network accessline 54
**Fix:** Use `ContainerRepository`. See the [sdk-container-builds customization notes](https://github.com/dotnet/sdk-container-builds/blob/main/docs/ContainerCustomization.md). - Network accessline 54
**Fix:** Use `ContainerRepository`. See the [sdk-container-builds customization notes](https://github.com/dotnet/sdk-container-builds/blob/main/docs/ContainerCustomization.md).
skills/serialization/SKILL.md
- Network accessline 368
See [Akka.NET Serialization Docs](https://getakka.net/articles/networking/serialization.html). - Network accessline 368
See [Akka.NET Serialization Docs](https://getakka.net/articles/networking/serialization.html). - Network accessline 409
- **System.Text.Json Source Generation**: https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/source-generation - Network accessline 409
- **System.Text.Json Source Generation**: https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/source-generation - Network accessline 410
- **Protocol Buffers**: https://protobuf.dev/ - Network accessline 410
- **Protocol Buffers**: https://protobuf.dev/ - Network accessline 411
- **MessagePack-CSharp**: https://github.com/MessagePack-CSharp/MessagePack-CSharp - Network accessline 411
- **MessagePack-CSharp**: https://github.com/MessagePack-CSharp/MessagePack-CSharp - Network accessline 412
- **Akka.NET Serialization**: https://getakka.net/articles/networking/serialization.html - Network accessline 412
- **Akka.NET Serialization**: https://getakka.net/articles/networking/serialization.html - Network accessline 413
- **Wire Compatibility**: https://getakka.net/community/contributing/wire-compatibility.html - Network accessline 413
- **Wire Compatibility**: https://getakka.net/community/contributing/wire-compatibility.html
skills/snapshot-testing/SKILL.md
- Network accessline 125
{ "InviteeName", "John Doe" }, { "InviterName", "Jane Admin" }, { "InvitationLink", "https://example.com/invite/abc123" }, - Network accessline 125
{ "InviteeName", "John Doe" }, { "InviterName", "Jane Admin" }, { "InvitationLink", "https://example.com/invite/abc123" }, - Network accessline 126
{ "InviterName", "Jane Admin" }, { "InvitationLink", "https://example.com/invite/abc123" }, { "ExpirationDate", "December 31, 2025" } - Network accessline 126
{ "InviterName", "Jane Admin" }, { "InvitationLink", "https://example.com/invite/abc123" }, { "ExpirationDate", "December 31, 2025" } - Network accessline 127
{ "InvitationLink", "https://example.com/invite/abc123" }, - Network accessline 127
{ "InvitationLink", "https://example.com/invite/abc123" }, - Network accessline 407
- **Verify GitHub**: https://github.com/VerifyTests/Verify - Network accessline 407
- **Verify GitHub**: https://github.com/VerifyTests/Verify - Network accessline 408
- **Verify.Xunit**: https://github.com/VerifyTests/Verify.Xunit - Network accessline 408
- **Verify.Xunit**: https://github.com/VerifyTests/Verify.Xunit - Network accessline 409
- **ApiApprover**: https://github.com/JakeGinnivan/ApiApprover - Network accessline 409
- **ApiApprover**: https://github.com/JakeGinnivan/ApiApprover - Network accessline 410
- **DiffPlex Integration**: https://github.com/VerifyTests/Verify.DiffPlex - Network accessline 410
- **DiffPlex Integration**: https://github.com/VerifyTests/Verify.DiffPlex
skills/testcontainers/infrastructure-patterns.md
skills/verify-email-snapshots/SKILL.md
- Network accessline 56
{ "InviteeName", "John Doe" }, { "InviterName", "Jane Admin" }, { "InvitationLink", "https://example.com/invite/abc123" }, - Network accessline 56
{ "InviteeName", "John Doe" }, { "InviterName", "Jane Admin" }, { "InvitationLink", "https://example.com/invite/abc123" }, - Network accessline 57
{ "InviterName", "Jane Admin" }, { "InvitationLink", "https://example.com/invite/abc123" }, { "ExpirationDate", "December 31, 2025" } - Network accessline 57
{ "InviterName", "Jane Admin" }, { "InvitationLink", "https://example.com/invite/abc123" }, { "ExpirationDate", "December 31, 2025" } - Network accessline 58
{ "InvitationLink", "https://example.com/invite/abc123" }, - Network accessline 58
{ "InvitationLink", "https://example.com/invite/abc123" }, - Network accessline 116
{ { "UserName", "John Doe" }, { "LoginUrl", "https://example.com/login" } - Network accessline 116
{ { "UserName", "John Doe" }, { "LoginUrl", "https://example.com/login" } - Network accessline 117
{ "UserName", "John Doe" }, { "LoginUrl", "https://example.com/login" } }); - Network accessline 117
{ "UserName", "John Doe" }, { "LoginUrl", "https://example.com/login" } }); - Network accessline 118
{ "LoginUrl", "https://example.com/login" } - Network accessline 118
{ "LoginUrl", "https://example.com/login" } - Network accessline 133
{ { "UserName", "John Doe" }, { "ResetLink", "https://example.com/reset/abc123" }, - Network accessline 133
{ { "UserName", "John Doe" }, { "ResetLink", "https://example.com/reset/abc123" }, - Network accessline 134
{ "UserName", "John Doe" }, { "ResetLink", "https://example.com/reset/abc123" }, { "ExpirationMinutes", "30" } - Network accessline 134
{ "UserName", "John Doe" }, { "ResetLink", "https://example.com/reset/abc123" }, { "ExpirationMinutes", "30" } - Network accessline 135
{ "ResetLink", "https://example.com/reset/abc123" }, - Network accessline 135
{ "ResetLink", "https://example.com/reset/abc123" }, - Network accessline 206
.AddInMemoryCollection(new Dictionary<string, string?> { ["SiteUrl"] = "https://example.com" - Network accessline 206
.AddInMemoryCollection(new Dictionary<string, string?> { ["SiteUrl"] = "https://example.com" - Network accessline 207
{ ["SiteUrl"] = "https://example.com" }) - Network accessline 207
{ ["SiteUrl"] = "https://example.com" }) - Network accessline 208
["SiteUrl"] = "https://example.com" - Network accessline 208
["SiteUrl"] = "https://example.com" - Network accessline 238
inviterName: new PersonName("Jane Admin"), organizationName: new OrganizationName("Acme Corp"), invitationUrl: new AbsoluteUri("https://example.com/invite/abc123"), - Network accessline 238
inviterName: new PersonName("Jane Admin"), organizationName: new OrganizationName("Acme Corp"), invitationUrl: new AbsoluteUri("https://example.com/invite/abc123"), - Network accessline 239
organizationName: new OrganizationName("Acme Corp"), invitationUrl: new AbsoluteUri("https://example.com/invite/abc123"), expiresAt: new DateTimeOffset(2025, 12, 31, 0, 0, 0, TimeSpan.Zero)); - Network accessline 239
organizationName: new OrganizationName("Acme Corp"), invitationUrl: new AbsoluteUri("https://example.com/invite/abc123"), expiresAt: new DateTimeOffset(2025, 12, 31, 0, 0, 0, TimeSpan.Zero)); - Network accessline 240
invitationUrl: new AbsoluteUri("https://example.com/invite/abc123"), - Network accessline 240
invitationUrl: new AbsoluteUri("https://example.com/invite/abc123"), - Network accessline 322
- **Verify**: https://github.com/VerifyTests/Verify - Network accessline 322
- **Verify**: https://github.com/VerifyTests/Verify - Network accessline 323
- **Verify.Xunit**: https://github.com/VerifyTests/Verify#xunit - Network accessline 323
- **Verify.Xunit**: https://github.com/VerifyTests/Verify#xunit - Network accessline 324
- **Diff Tools**: https://github.com/VerifyTests/DiffEngine - Network accessline 324
- **Diff Tools**: https://github.com/VerifyTests/DiffEngine
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 500 facts
- Network access in prose of documentationagents/akka-net-specialist.md:8Low confidence
- Network access in prose of documentationagents/akka-net-specialist.md:9Low confidence
- Network access in prose of documentationagents/akka-net-specialist.md:10Low confidence
- Network access in prose of documentationagents/akka-net-specialist.md:11Low confidence
- Network access in prose of documentationagents/docfx-specialist.md:8Low confidence
- Network access in prose of documentationagents/docfx-specialist.md:9Low confidence
- Network access in prose of documentationagents/roslyn-incremental-generator-specialist.md:10Low confidence
- Network access in prose of documentationagents/roslyn-incremental-generator-specialist.md:456Low confidence
- Network access in prose of documentationagents/roslyn-incremental-generator-specialist.md:475Low confidence
- Network access in prose of documentationagents/roslyn-incremental-generator-specialist.md:476Low confidence
- Network access in prose of documentationagents/roslyn-incremental-generator-specialist.md:477Low confidence
- Executable script in code of a file that runsscripts/generate-skill-index-snippets.sh:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuescripts/generate-skill-index-snippets.sh:92Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuescripts/generate-skill-index-snippets.sh:95Low confidence
- Executable script in code of a file that runsscripts/validate-marketplace.sh:1High confidence
- Executable script in code of a file that runsscripts/validate-marketplace.sh:1High confidence
- Network access in prose of documentationskills/akka-testing-patterns/anti-patterns-and-reference.md:220Low confidence
- Network access in prose of documentationakka-testing-patterns/anti-patterns-and-reference.md:220Low confidence
- Network access in prose of documentationskills/akka-testing-patterns/anti-patterns-and-reference.md:221Low confidence
- Network access in prose of documentationakka-testing-patterns/anti-patterns-and-reference.md:221Low confidence
- Network access in prose of documentationskills/akka-testing-patterns/anti-patterns-and-reference.md:222Low confidence
- Network access in prose of documentationakka-testing-patterns/anti-patterns-and-reference.md:222Low confidence
- Network access in prose of documentationskills/akka-testing-patterns/anti-patterns-and-reference.md:223Low confidence
- Network access in prose of documentationakka-testing-patterns/anti-patterns-and-reference.md:223Low confidence
- Network access in prose of the SKILL.mdskills/aot-trimming/SKILL.md:154Low confidence
- Network access in prose of the SKILL.mdaot-trimming/SKILL.md:154Low confidence
- Network access in prose of the SKILL.mdskills/aot-trimming/SKILL.md:155Low confidence
- Network access in prose of the SKILL.mdaot-trimming/SKILL.md:155Low confidence
- Network access in prose of the SKILL.mdskills/aot-trimming/SKILL.md:156Low confidence
- Network access in prose of the SKILL.mdaot-trimming/SKILL.md:156Low confidence
- Network access in prose of the SKILL.mdskills/aot-trimming/SKILL.md:157Low confidence
- Network access in prose of the SKILL.mdaot-trimming/SKILL.md:157Low confidence
- Network access in prose of the SKILL.mdskills/aot-trimming/SKILL.md:158Low confidence
- Network access in prose of the SKILL.mdaot-trimming/SKILL.md:158Low confidence
- Network access in prose of the SKILL.mdskills/aspire-configuration/SKILL.md:157Low confidence
- Network access in prose of the SKILL.mdaspire-configuration/SKILL.md:157Low confidence
- Network access in prose of the SKILL.mdskills/aspire-configuration/SKILL.md:158Low confidence
- Network access in prose of the SKILL.mdaspire-configuration/SKILL.md:158Low confidence
- Network access in prose of the SKILL.mdskills/aspire-integration-testing/SKILL.md:212Low confidence
- Network access in prose of the SKILL.mdaspire-integration-testing/SKILL.md:212Low confidence
- Network access in prose of documentationskills/aspire-integration-testing/advanced-patterns.md:292Low confidence
- Network access in prose of documentationaspire-integration-testing/advanced-patterns.md:292Low confidence
- Network access in prose of documentationskills/aspire-integration-testing/ci-and-tooling.md:193Low confidence
- Network access in prose of documentationaspire-integration-testing/ci-and-tooling.md:193Low confidence
- Network access in prose of documentationskills/aspire-integration-testing/ci-and-tooling.md:194Low confidence
- Network access in prose of documentationaspire-integration-testing/ci-and-tooling.md:194Low confidence
- Network access in prose of documentationskills/aspire-integration-testing/ci-and-tooling.md:195Low confidence
- Network access in prose of documentationaspire-integration-testing/ci-and-tooling.md:195Low confidence
- Network access in prose of the SKILL.mdskills/aspire-mailpit-integration/SKILL.md:26Low confidence
- Network access in prose of the SKILL.mdaspire-mailpit-integration/SKILL.md:26Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/akka-aspire-configuration/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/akka-aspire-configuration/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/akka-aspire-configuration/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/akka-aspire-configuration/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/aaronontheweb-dotnet-skills/)