CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

serialization

Choose the right serialization format for .NET applications. Prefer schema-based formats (Protobuf, MessagePack) over reflection-based (Newtonsoft.Json). Use System.Text.Json with AOT source generators for JSON scenarios.

Quality

71%

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/serialization/SKILL.md
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.

A well-organized, highly actionable reference with concrete code for all major .NET serialization formats and genuinely useful versioning/wire-compatibility guidance. It is held back by token-inefficient duplication, some fuzzy and pseudocode fragments, absent validation checkpoints in the migration/rollout workflows, and no use of progressive disclosure despite its length.

Suggestions

Trim the 'Best Practices' DO/DON'T section and the star-based performance table, or replace the stars with one concrete measured guideline, since both largely duplicate content already covered.

Move the Protobuf versioning rules, Akka.NET HOCON configuration, and detailed migration tables into one-level-deep reference files (e.g., references/protobuf.md, references/migration.md) to reduce SKILL.md's token footprint.

Add validation checkpoints to the migration and read-before-write rollout patterns (e.g., verify old readers can deserialize new payloads before enabling the V2 serializer).

DimensionReasoningScore

Conciseness

The body is largely dense tables and code with little basic-concept padding, but it includes unnecessary material: the 'Best Practices' DO/DON'T section repeats points already made earlier (BinaryFormatter danger, embedded type names, source generators), and the star-based 'Performance Comparison' table is fuzzy information Claude can reasonably infer. Several detailed sections (full Protobuf versioning rules, Akka.NET HOCON config) could be tightened or trimmed to respect token budget. It sits between 'mostly efficient' and 'efficient with minor trims'.

3 / 5

Actionability

Most guidance is executable and copy-paste ready: complete JsonSerializerContext setup, protobuf schemas with safe/unsafe versioning examples, MessagePack contracts with keys, a Newtonsoft-to-STJ migration mapping table, and HOCON config. Minor gaps keep it below the top anchor: the 'Introduce Read Before Write' snippet references undefined methods (DeserializeV1, SerializeV2, _useV2Format) as illustrative pseudocode, and the MessagePack AOT setup shows an empty partial class without the actual generated-resolver wiring.

4 / 5

Workflow Clarity

This is primarily a decision reference rather than a sequenced workflow, and the guidance it does sequence is present but lacks checkpoints: the migration path and the two-phase 'deploy deserializers before serializers' rollout are clearly ordered, but there are no validation or verification steps (e.g., how to verify wire compatibility after a migration or format switch). The format-selection decision itself is unambiguous via the use-case table, but overall sequence and checkpoints remain implicit.

3 / 5

Progressive Disclosure

The body has clear section headers and is navigable, but at ~410 lines everything lives in SKILL.md with no bundle files — detailed material that would fit better in one-level-deep references (Protobuf versioning rules, Akka.NET configuration, the full migration tables) is inlined. Structure exists, but the split into reference files is absent, matching the 'some structure, could be better organized' anchor.

3 / 5

Total

13

/

20

Passed

Description

70%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, specific description with excellent distinctiveness and good natural trigger terms. Its main weakness is the absence of an explicit 'Use when...' trigger clause, which caps completeness at 3 and leaves the 'when should this skill be invoked' question only weakly implied.

Suggestions

Add an explicit trigger clause, e.g., 'Use when choosing a serialization format, migrating from Newtonsoft.Json to System.Text.Json, making serialization AOT-compatible, or designing wire formats for messaging or event sourcing.'

Include one or two more natural user phrasings such as 'wire compatibility', 'gRPC', or 'JSON serialization performance' to broaden trigger coverage.

DimensionReasoningScore

Specificity

The description gives concrete, directive actions: 'Choose the right serialization format for .NET applications', 'Prefer schema-based formats (Protobuf, MessagePack) over reflection-based (Newtonsoft.Json)', and 'Use System.Text.Json with AOT source generators for JSON scenarios'. It names multiple specific technologies and clear preferences rather than vague language, but the action list is less comprehensive than a full enumeration of covered capabilities (e.g., migration, wire compatibility, Akka.NET are not surfaced), so it falls just below the top anchor.

4 / 5

Completeness

The 'what' is clearly and concretely answered (choose format, prefer schema-based, use STJ source generators), but there is no 'Use when...' clause or equivalent explicit trigger guidance — 'Use System.Text.Json... for JSON scenarios' is a recommendation, not a usage trigger. Per the judging guidelines, a missing explicit trigger clause caps completeness at 3.

3 / 5

Trigger Term Quality

Natural terms a user would say are well covered: 'serialization format', '.NET', 'Protobuf', 'MessagePack', 'Newtonsoft.Json', 'System.Text.Json', 'JSON', 'AOT source generators'. These are exactly the keywords a .NET developer would mention. A few natural variations are missing (e.g., 'migrate/migration from Newtonsoft', 'wire format', 'versioning', 'gRPC'), keeping it just short of the comprehensive-synonyms anchor.

4 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (.NET serialization format selection) with distinct trigger technologies (Protobuf, MessagePack, Newtonsoft.Json, System.Text.Json, AOT). These terms are unlikely to fire for unrelated skills, giving minimal conflict risk.

5 / 5

Total

16

/

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/serialization/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.