CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

api-design

Design stable, compatible public APIs using extend-only design principles. Manage API compatibility, wire compatibility, and versioning for NuGet packages and distributed systems.

Quality

77%

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-api-design/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

78%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 reference skill: nearly all guidance is concrete, correct, and covers the common API-evolution cases with executable commands and complete patterns. Its main weaknesses are moderate length with everything inlined in SKILL.md (no progressive disclosure via reference files) and a few sections re-explaining basics Claude already knows.

DimensionReasoningScore

Conciseness

The body is dense with tables and code and focuses on non-obvious .NET specifics (e.g., 'ADD optional parameters to EXISTING methods (binary incompatible!)' with the MissingMethodException explanation, PublicApiGenerator approval testing). Minor over-explanations of concepts Claude already knows keep it below a 5: the SemVer patch/minor/major table, the interface-segregation basics, and the 'Benefits' bullet list under Extend-Only Design.

4 / 5

Actionability

Guidance is fully concrete and covers the common cases: copy-paste-ready commands ('dotnet add package PublicApiGenerator'), a complete approval test with its .verified.txt output, a step-by-step deprecation pattern with a real [Obsolete("Obsolete since v1.5.0...")] attribute, and an explicit safe-vs-unsafe change catalog with correct/incorrect variants shown side by side. It is not a 4 because the executable units (commands, test, attributes, config keys like 'akka.cluster.use-heartbeat-v2 = on') are complete rather than having minor gaps.

5 / 5

Workflow Clarity

Multi-step processes are clearly sequenced (deprecation 'Step 1/2/3', wire evolution 'Phase 1/2/3' with read-side-first deployment ordering, and the 4-step PR Review Process) and there is an explicit validation gate ('Any API change fails the test - reviewer must explicitly approve changes') plus a PR checklist. It falls short of 5 because no explicit error-recovery/feedback loop is described and the guidance is organized by topic rather than as one coherent end-to-end workflow.

4 / 5

Progressive Disclosure

The ~380-line body is well-sectioned and navigable, but everything is inline in SKILL.md with no bundle files at all — advanced material that would naturally be one-level-deep references (the wire-compatibility phase rollout, the serialization format comparison, encapsulation patterns) is inlined, matching the anchor 'content that should be separate is inline'. The only external pointer is 'See dotnet/serialization skill for details', so it does not reach 4's 'most content is appropriately placed' with bulk material in separate files.

3 / 5

Total

16

/

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.

A solid, specific description that clearly communicates what the skill does and carves out a distinct NuGet/distributed-systems niche. Its main gap is the absence of any 'Use when...' trigger clause, which both caps completeness and leaves the most natural trigger phrase ('breaking changes') unused.

Suggestions

Add an explicit trigger clause, e.g. 'Use when designing or modifying public APIs, reviewing PRs for breaking changes, planning wire format migrations, or deciding version bumps for NuGet packages.'

Include the most natural user phrasing 'breaking changes' (and 'semantic versioning'/'SemVer') as trigger terms in the description.

Mention the API approval-testing capability (PublicApiGenerator/Verify) so the 'what' covers the skill's verification workflow, not just design principles.

DimensionReasoningScore

Specificity

It lists several specific actions with named domains — 'Design stable, compatible public APIs using extend-only design principles' and 'Manage API compatibility, wire compatibility, and versioning for NuGet packages and distributed systems' — which matches 'lists several specific actions; minor gaps in coverage'. It is not a 5 because the actions stay at design/manage altitude and omit capabilities the body actually covers, such as reviewing PRs for breaking changes and API approval testing.

4 / 5

Completeness

The 'what' is clear (design and manage compatible APIs), but there is no 'Use when...' clause or any equivalent explicit trigger guidance, which per the judging guidelines caps completeness at 3 ('when' is missing or only weakly implied). It is not a 2 because the 'what' half is concrete and specific, not vague.

3 / 5

Trigger Term Quality

Good keyword coverage with natural terms users would say: 'public APIs', 'API compatibility', 'wire compatibility', 'versioning', 'NuGet packages', 'distributed systems'. It is not a 5 because common variations are missing — most notably 'breaking changes' (the phrase users most naturally utter for this need) and 'SemVer'/'semantic versioning'.

4 / 5

Distinctiveness Conflict Risk

It occupies a clear niche — API compatibility, wire compatibility, and versioning specifically for NuGet packages and distributed systems — so it is mostly distinct with only minor overlap risk against closely related skills (e.g., a serialization or general code-review skill). It is not a 5 because 'design public APIs' and 'versioning' alone could plausibly surface for adjacent skills.

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-api-design/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.