CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

dotnet-aot-compat

Make .NET projects compatible with Native AOT and trimming by systematically resolving IL trim/AOT analyzer warnings. USE FOR: making projects AOT-compatible, fixing trimming warnings, resolving IL warnings (IL2026, IL2070, IL2067, IL2072, IL3050), adding DynamicallyAccessedMembers annotations, enabling IsAotCompatible. DO NOT USE FOR: publishing native AOT binaries, optimizing binary size, replacing reflection-heavy libraries with alternatives. INVOKES: no tools — pure knowledge skill.

Quality

89%

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

The canonical home for this skill is dotnet-aot-compat in dotnet/skills

SKILL.md
Quality
Evals
Security

Quality

Content

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

A strong, highly actionable procedure with an excellent warning-driven build/fix/rebuild loop and explicit validation checkpoints. Main weaknesses are repetition of the anti-exploration guardrail and a background section re-teaching known concepts, plus one non-compiling attribute in the Strategy C code sample.

Suggestions

Consolidate the repeated 'do not explore the codebase / stay warning-driven' guidance (currently stated in the procedure blockquote, Step 3, Step 4, and Stop Signals) into a single prominent section to cut ~20 lines of redundancy.

Remove the nonexistent '[JsonSerializerContext]' attribute from the Strategy C sample so the JsonSerializerContext snippet compiles as written; the source generator only needs the base class plus [JsonSerializable] entries.

Trim or remove the Background section's explanation of trimmer reachability analysis (concepts Claude already knows), and consider moving the warning-code catalog and Common Gotchas into a references/ file to shorten the main SKILL.md.

DimensionReasoningScore

Conciseness

The body is mostly high-value non-obvious domain knowledge, but there is more than minor padding: the Background section re-explains trimmer/reachability basics Claude already knows, and the 'do not explore the codebase' guardrail is repeated four times (procedure blockquote, Step 3, Step 4, Stop Signals). Not 4: the repetition and concept re-explanation go beyond 'minor instances that could be trimmed'. Not 2: most sections (fix recipes, gotchas, commands) earn their tokens.

3 / 5

Actionability

Nearly everything is copy-paste ready: exact csproj XML with MSBuild condition, build/grep commands, and before/after C# for each strategy. Not 5: the Strategy C sample decorates the context class with a nonexistent '[JsonSerializerContext]' attribute (the generator keys off the JsonSerializerContext base class), so that snippet fails to compile as written; the rest is executable.

4 / 5

Workflow Clarity

Steps 1–6 are clearly sequenced with explicit feedback loops: 'fix a small batch of warnings (5-10), then rebuild immediately', Step 5 rebuild-and-repeat until 0 warnings, and Step 6 validation across all TFMs (0 IL warnings, no NETSDK1210, clean older-TFM builds) plus a final checklist. Not 4: validation checkpoints are explicit and repeated at every stage, not merely present.

5 / 5

Progressive Disclosure

Clean section structure with a real, verified one-level reference (references/polyfills.md, correctly linked from the Polyfills section) and clearly labeled external links. Not 5: the body inlines content that could be split out — the full warning-code catalog, the Common Gotchas with long code samples — making the SKILL.md longer than an overview-plus-pointers ideal.

4 / 5

Total

16

/

20

Passed

Description

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

An exemplary description: concrete actions, exact warning-code triggers, explicit USE FOR / DO NOT USE FOR boundaries, and third-person voice. Any user facing an IL2xxx warning or asking for AOT compatibility would unambiguously match this skill.

DimensionReasoningScore

Specificity

The description lists multiple specific concrete actions — 'systematically resolving IL trim/AOT analyzer warnings', 'fixing trimming warnings', 'resolving IL warnings (IL2026, IL2070, IL2067, IL2072, IL3050)', 'adding DynamicallyAccessedMembers annotations', 'enabling IsAotCompatible' — covering the full workflow comprehensively. Not 4: there are no minor gaps in coverage; every action in the skill's scope is named.

5 / 5

Completeness

Both what and when are explicit: 'Make .NET projects compatible with Native AOT and trimming by systematically resolving IL trim/AOT analyzer warnings' (what) followed by explicit 'USE FOR:' and 'DO NOT USE FOR:' clauses with concrete triggers (when). Not 4: the when-guidance is explicit and enumerated rather than merely present.

5 / 5

Trigger Term Quality

Trigger terms are exactly what an affected user would say: 'make my project AOT-compatible', 'fix trimming warnings', plus the specific IL codes (IL2026, IL2070, IL2067, IL2072, IL3050) that users paste directly from build output. Not 4: coverage includes the natural synonyms ('AOT-compatible', 'trimming', 'IL warnings') and the exact technical tokens users search on.

5 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (.NET Native AOT/trimming compatibility) with explicit boundary setting via 'DO NOT USE FOR: publishing native AOT binaries, optimizing binary size, replacing reflection-heavy libraries'. Conflict risk with adjacent skills (e.g., a publishing skill) is explicitly managed.

5 / 5

Total

20

/

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

dotnet/msbuild

Path

.github/skills/dotnet-aot-compat/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.