CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cswin32-interop

Guides CsWin32 P/Invoke interop in MSBuild. Consult when working with the PInvoke class, Windows.Win32 namespaces, FEATURE_WINDOWSINTEROP, HANDLE/HMODULE/HRESULT types, the generic BufferScope type, replacing [DllImport] with CsWin32, or conditioning Windows-only code for source builds.

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

SKILL.md
Quality
Evals
Security

Quality

Content

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

An exemplary dense, repo-specific skill body: fully actionable rules, concrete code and commands, and a strong source-build validation loop with named failure diagnostics. The only deductions are minor — slight cross-reference repetition, no unified ordered migration procedure, and a monolithic length that could benefit from splitting catalogs into a reference file.

Suggestions

Deduplicate the cswin32-com parity-table link (Rules §6 and the ThrowOnFailure bullet both cite it) and the ComTypes.FILETIME vs Win32.Foundation.FILETIME note (stated in both FILETIME Conversions and Type Conversions) — cite each once and cross-reference the section.

Add a short numbered end-to-end migration checklist (inspect original DllImport semantics → replace with PInvoke.* → apply dual guard → map constants → run both builds) at the top to unify Rules, Blittable signatures, and Source-Build Verification into one sequence.

Consider moving the Constant Replacements catalog and Gotchas details into a references/ file, keeping SKILL.md as a leaner overview with well-signaled one-level-deep links.

DimensionReasoningScore

Conciseness

Dense and expert-level throughout — no padding, no explanation of concepts Claude already knows; every rule carries repo-specific information. Falls short of 5 due to minor redundancy: the cswin32-com parity-table link is repeated within ~15 lines (Rules §6 and the Blittable signatures section), and the ComTypes.FILETIME vs Win32.Foundation.FILETIME distinction is stated in both the FILETIME Conversions section and Type Conversions.

4 / 5

Actionability

Fully executable guidance: copy-paste-ready shell commands for both normal and source builds, concrete C# for the dual-guard and BufferScope patterns, exact constant mappings (NativeMethodsShared.S_OK → HRESULT.S_OK), exact file paths (src/Framework/NativeMethods.txt, Directory.BeforeCommon.targets), a guard-selection table, and named diagnostic codes. The common cases are covered with specifics.

5 / 5

Workflow Clarity

Rules 1–6 form a coherent migration sequence, and the Source-Build Verification section is an explicit REQUIRED validation checkpoint with a feedback catalog mapping failure codes (IDE0005, IDE0051/52, CA1823, CS1587) to fixes. Not a 5 because no single ordered end-to-end migration procedure ties the rules, error-parity checks, and verification builds into one checklist — the sequence must be assembled from separate sections.

4 / 5

Progressive Disclosure

Well-sectioned single file with clearly signaled, one-level-deep references (paired-skill anchors like #error-handling-parity-when-migrating and repo source paths such as CorOpenFlags.cs); no bundle files exist to verify beyond these. Not a 5 because at ~185 lines, self-contained catalogs (Constant Replacements, Gotchas) could reasonably be split into a reference file to keep SKILL.md a leaner overview.

4 / 5

Total

17

/

20

Passed

Description

95%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: third-person, concise, with an explicit 'Consult when' trigger clause listing concrete, domain-native terms. The only weakness is that the action list leans on topic nouns with just two fully expressed actions, keeping specificity just short of comprehensive.

DimensionReasoningScore

Specificity

Concrete actions are stated ('replacing [DllImport] with CsWin32', 'conditioning Windows-only code for source builds') alongside specific technical objects (PInvoke class, HANDLE/HMODULE/HRESULT, BufferScope, Windows.Win32). Not a 5 because 'Guides CsWin32 P/Invoke interop' is a broad verb and most listed items are topic nouns rather than discrete actions; clearly above the 3 anchor's '1-2 concrete actions'.

4 / 5

Completeness

Explicitly answers both: what ('Guides CsWin32 P/Invoke interop in MSBuild') and when ('Consult when working with the PInvoke class, ... or conditioning Windows-only code for source builds') with concrete trigger phrases. Uses third-person voice ('Guides', 'Consult') with no first/second person.

5 / 5

Trigger Term Quality

Covers the natural vocabulary of this niche comprehensively: 'P/Invoke', 'CsWin32', '[DllImport]', 'Windows.Win32', 'FEATURE_WINDOWSINTEROP', 'source builds' — exactly the terms a developer would say when needing this skill. In this jargon-native domain the technical terms are the natural terms, matching the comprehensive-synonyms anchor.

5 / 5

Distinctiveness Conflict Risk

A clear niche (CsWin32 source-generated interop inside MSBuild) with distinct triggers (FEATURE_WINDOWSINTEROP, BufferScope, DllImport replacement) that would not plausibly fire for unrelated C#, interop, or build skills.

5 / 5

Total

19

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 9 suspicious

Warning

Total

14

/

16

Passed

Repository

dotnet/msbuild

Path

.github/skills/cswin32-interop/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.