CtrlK
BlogDocsLog inGet started
Tessl Logo

dotnet-backend-patterns

Master C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.

77

1.19x
Quality

70%

Does it follow best practices?

Impact

85%

1.19x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./tests/ext_conformance/artifacts/agents-wshobson/dotnet-contribution/skills/dotnet-backend-patterns/SKILL.md

The canonical home for this skill is dotnet-backend-patterns in wshobson/agents

SKILL.md
Quality
Evals
Security

Quality

Content

57%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body delivers highly concrete, modern C# pattern code with correct/wrong contrast and useful DO/DON'T and pitfalls lists, but it overflows the SKILL.md role: it re-teaches standard .NET knowledge Claude already has and inlines full implementations that duplicate the existing references and assets. There is also no sequenced workflow with validation checkpoints, leaving the guidance declarative rather than process-oriented.

Suggestions

Move the full EF Core and Dapper repository implementations and the xUnit/Integration-testing boilerplate into the existing references/ and assets/ files, keeping only short illustrative snippets in SKILL.md and pointing to them in-context.

Trim sections that re-teach standard .NET knowledge (async/await basics, DI lifetimes, the IOptions variants) down to the DO/DON'T and pitfalls lists, which already capture the same guidance.

Add a short end-to-end workflow (e.g., scaffold a new service: register DI → implement with Result<T> → write unit + integration test → verify) with an explicit validation checkpoint, and surface the asset templates early in the body instead of only in the terminal Resources section.

DimensionReasoningScore

Conciseness

The ~810-line body spends large sections on concepts Claude already knows — DI lifetime comments ("Scoped: One instance per HTTP request"), basic async/await do's and don'ts, the IOptions/IOptionsSnapshot/IOptionsMonitor trio, and standard xUnit/Moq and WebApplicationFactory test boilerplate — and the "When to Use This Skill" list duplicates the description. The code is dense rather than prose-padded and includes genuinely non-obvious patterns (keyed services, Result type, stale-while-revalidate), so it sits at "mostly efficient but could be tightened" rather than "noticeably verbose".

3 / 5

Actionability

Code examples are modern, concrete, and mostly executable (raw-string SQL, CommandDefinition with cancellation tokens, keyed services, Dapper multi-mapping, a full Result<T> implementation), but minor gaps keep it from copy-paste ready: CheckoutService assigns an undeclared _processor field, snippets reference undefined types (Product, StockResult, ProductSearchCriteria), and the nested record CacheEntry<TValue> accesses the enclosing class's instance fields (_freshDuration), which will not compile.

4 / 5

Workflow Clarity

The body is a pattern catalog rather than a sequenced process: there is no end-to-end workflow (e.g., scaffolding a new service or endpoint) and no validation checkpoints or feedback loops. The DO/DON'T lists and "Common Pitfalls" checklist provide declarative decision guidance, which partially compensates but matches the "checkpoints missing or implicit" anchor rather than the clear-sequence anchors.

3 / 5

Progressive Disclosure

All four referenced bundle files exist and match their one-line descriptions (assets/service-template.cs, assets/repository-template.cs, references/ef-core-best-practices.md, references/dapper-patterns.md) and are one level deep — but they are only listed in a terminal "Resources" section with no in-context pointers, and substantial content duplicating the bundle (full EF Core and Dapper repository implementations, service and cache patterns) is inlined in the body, matching "content that should be separate is inline".

3 / 5

Total

13

/

20

Passed

Description

83%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: it clearly states what the skill covers and gives an explicit 'Use when' clause with concrete, natural trigger phrases in third person. The only weakness is mild: the 'what' leans partly on a technology topic list rather than pure action verbs, and a few common synonyms (ASP.NET Core, Web API) are absent.

DimensionReasoningScore

Specificity

The description lists several concrete actions ("building robust APIs, MCP servers", "reviewing C# code", "designing API architectures") plus an explicit technology inventory ("async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit"), but "Master... patterns" and "Covers..." are mission-statement/topic-list framing rather than pure action verbs, so it falls short of the comprehensive 5 anchor.

4 / 5

Completeness

It explicitly answers both what ("Master C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection...") and when ("Use when developing .NET backends, reviewing C# code, or designing API architectures") with concrete trigger phrases, in third person, matching the top anchor exactly.

5 / 5

Trigger Term Quality

Good natural keyword coverage ("developing .NET backends", "reviewing C# code", "API architectures", "EF Core", "Dapper", "xUnit") that users would plausibly say, though common synonyms like "ASP.NET Core", "Web API", or "C# backend" are missing, keeping it below the 5 anchor.

4 / 5

Distinctiveness Conflict Risk

The C#/.NET backend niche with named technologies (EF Core, Dapper, xUnit) is mostly distinct from other skills, with only minor overlap risk against a general C# or a single-ORM-specific skill.

4 / 5

Total

17

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (818 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

Repository
Dicklesworthstone/pi_agent_rust
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.