CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

type-design-performance

Design .NET types for performance. Seal classes, use readonly structs, prefer static pure functions, avoid premature enumeration, and choose the right collection types.

Quality

72%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/csharp-type-design-performance/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%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 is a well-organized, highly actionable pattern reference with concrete DO/DON'T C# examples and useful decision tables, and it commendably avoids explaining basic concepts. Its weaknesses are token redundancy from restating the same points in three summary sections and a monolithic single-file structure where advanced topics could be offloaded to reference files.

Suggestions

Collapse the redundancy: keep the per-topic sections and one summary (either the Quick Reference table or Anti-Patterns, not both plus the Core Principles list) to cut the token cost meaningfully.

Move advanced topics (async enumeration, ValueTask rules, Span/ArrayPool patterns) into a references/ file linked from a short overview section, so SKILL.md acts as a lean index with one-level-deep references.

Fill in or remove stub code bodies ("// Use buffer...", "// All inputs visible", the undefined FetchUserAsync) so every example is copy-paste executable.

DimensionReasoningScore

Conciseness

The body avoids explaining basics Claude already knows and leads with DO/DON'T code, but the same guidance is restated three times — the "Core Principles" list, the "Quick Reference" table, and the "Anti-Patterns" section all restate the identical points. This triple-layer recap plus filler comments ("// What does this actually depend on?") goes beyond the minor trimming of anchor 4, matching anchor 3's "mostly efficient but could be tightened".

3 / 5

Actionability

Concrete, mostly executable DO/DON'T pairs throughout — "public sealed record OrderCreated", "IAsyncEnumerable<OrderResult> ... [EnumeratorCancellation]", "stackalloc byte[256]", "ToFrozenDictionary()" — plus decision tables for struct-vs-class and collection return types. Not a 5 because several snippet bodies are stubs or placeholders ("// Use buffer...", "// All inputs visible", undefined FetchUserAsync), so they are not fully copy-paste ready.

4 / 5

Workflow Clarity

This is a design-guidance reference rather than a multi-step process, and it involves no destructive or batch operations that would demand validation checkpoints; the decision tables ("When to Use Structs", "Collection Guidelines") make applying each rule unambiguous. It is not a 5 because there is no explicit sequence or checklist tying the principles into an applied workflow, and it is not a single-action simple skill that the simple-skill exception covers.

4 / 5

Progressive Disclosure

The single SKILL.md (~390 lines) is well-sectioned with headers and tables, but no bundle files exist and all content — including self-contained advanced topics like async enumeration, ValueTask rules, and Span/ArrayPool patterns — is inlined in one file. This matches anchor 3's "content that should be separate is inline"; the under-50-line exception for inline-only skills clearly does not apply, and the only depth navigation is external Microsoft URLs rather than well-signaled one-level-deep bundle references.

3 / 5

Total

14

/

20

Passed

Description

66%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.

The description is specific and domain-distinct, naming five concrete .NET performance techniques in third-person imperative voice. Its main weakness is the complete absence of a "Use when..." clause, which caps completeness at 3 and leaves trigger guidance implicit.

Suggestions

Add an explicit trigger clause, e.g. "Use when designing or reviewing C#/.NET types, choosing between class/struct/record, or optimizing collection and allocation patterns in APIs."

Include the natural synonyms "C#" and "struct vs class" among the trigger terms, since users often phrase the need that way rather than saying ".NET types".

Consider mentioning the async/ValueTask and Span guidance the body covers so the description's coverage matches the skill's actual scope.

DimensionReasoningScore

Specificity

The description lists several concrete, imperative actions ("Seal classes, use readonly structs, prefer static pure functions, avoid premature enumeration"), but "choose the right collection types" is comparatively generic and it omits the ValueTask/Span topics the body covers, leaving minor gaps in coverage.

4 / 5

Completeness

The "what" is clear ("Design .NET types for performance" plus five concrete techniques), but there is no "Use when..." clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. It is not a 4 because the "when" is not even weakly worded — it is entirely absent, exactly matching anchor 3.

3 / 5

Trigger Term Quality

Terms like ".NET", "performance", "seal classes", "readonly structs", and "collection types" are phrases a .NET developer would naturally say, matching the anchor-4 example's level of coverage. It misses common variations such as "C#" and "struct vs class", keeping it below the comprehensive synonym coverage of anchor 5.

4 / 5

Distinctiveness Conflict Risk

The combination of ".NET", "readonly structs", and "premature enumeration" carves out a clear niche that would rarely trigger the wrong skill, though it could mildly overlap with a broader C# coding-standards or general performance skill. It is not a 5 because without a "use when" clause the trigger boundary is implicit rather than distinct.

4 / 5

Total

15

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

Aaronontheweb/dotnet-skills

Path

skills/csharp-type-design-performance/SKILL.md

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.