CtrlK
BlogDocsLog inGet started
Tessl Logo

dpg-migration

Migration logic for Azure SDK for .NET data-plane libraries migrating from AutoRest/Swagger to TypeSpec-based generation. Uses MCP tools from the generator-agent server for automated deterministic fixes.

61

Quality

72%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./.github/skills/dpg-migration/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

77%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is highly actionable and clearly sequenced with strong validation feedback loops, but it is a monolithic single-file document with notable internal redundancy and a dangling reference to a non-existent error-reference.md, leaving conciseness and progressive disclosure at 2.

Suggestions

Extract the large, reusable blocks (the ApiCompat error table, the generator-bug reporting template, the migration-status.md template) into a references/ file (e.g., error-reference.md) and create that file so the existing in-body reference resolves, moving the SKILL.md toward a one-level-deep overview.

Deduplicate the restated rules — the 'never edit Generated/' guard, the 'regenerate after editing CodeGen attributes' rule, and the ApiCompatBaseline prohibition each appear 2–3 times; state each once authoritatively in Safety Rules and link to it.

Tighten or relocate the migration-status.md template (lines ~113–170) to a reference file; it is a large static block that inflates the SKILL.md token budget without aiding the core workflow.

DimensionReasoningScore

Conciseness

The skill is dense and mostly earned (concrete commands, tool mappings, error codes) rather than explaining concepts Claude already knows, but at ~850 lines it repeats several rules verbatim — the Generated/ guard, the 'regenerate after editing CodeGen attributes' rule, and the ApiCompat-baseline prohibition each appear multiple times — so it 'could be tightened.'

2 / 3

Actionability

It provides fully executable commands (`dotnet build /t:GenerateCode`, `/p:LocalSpecRepo=<path>`), concrete MCP tool invocations with parameters, exact CS error codes mapped to specific tools, and copy-paste-ready C#/YAML examples, matching the 'copy-paste ready' anchor.

3 / 3

Workflow Clarity

The 13 phases are explicitly sequenced with validation checkpoints (snapshot_generated → build_and_classify auto-verification → verify_generated_unchanged with autoRevert) and feedback loops (build-fix loop with iteration caps and a stop-and-report path for confirmed generator bugs), matching the 'clear sequence with explicit validation steps' anchor.

3 / 3

Progressive Disclosure

No bundle files exist (references/scripts/assets are absent), so all content sits in one ~850-line SKILL.md; the one in-body file reference (error-reference.md in Safety Rules point 4) does not exist in the bundle, and large blocks (ApiCompat table, bug-report template, status template) are inline rather than split out, fitting the 'some structure but could be better organized' anchor.

2 / 3

Total

10

/

12

Passed

Description

67%

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 well-scoped to a distinct niche, but it lacks an explicit 'Use when...' trigger clause and relies on technical jargon rather than natural user phrasing, capping completeness and trigger-term quality at 2.

Suggestions

Add an explicit 'Use when ...' clause naming the natural trigger phrases a user would say (e.g., 'Use when migrating an Azure SDK for .NET data-plane library from AutoRest/Swagger to TypeSpec, or when the user says dpg migration / migrate to TypeSpec / swagger to TypeSpec migration').

Surface a couple of plain-language trigger keywords in the description itself rather than only in the body's 'When Invoked' section, so the frontmatter alone signals when to invoke.

DimensionReasoningScore

Specificity

The description names concrete actions — 'Migration logic ... migrating from AutoRest/Swagger to TypeSpec-based generation' and 'Uses MCP tools ... for automated deterministic fixes' — matching the anchor that lists multiple specific concrete actions.

3 / 3

Completeness

It clearly states what the skill does but contains no 'Use when...' clause or equivalent explicit trigger guidance; per the rubric a missing explicit-when clause caps completeness at 2.

2 / 3

Trigger Term Quality

It uses domain-relevant terms (data-plane, AutoRest/Swagger, TypeSpec, generator-agent) but leans on technical jargon and omits the natural user-facing trigger phrases that appear only in the body, so it has 'some relevant keywords but missing common variations.'

2 / 3

Distinctiveness Conflict Risk

The niche is tightly scoped — Azure SDK for .NET data-plane libraries, AutoRest/Swagger → TypeSpec migration via the generator-agent MCP server — making it clearly distinguishable and unlikely to trigger for the wrong skill.

3 / 3

Total

10

/

12

Passed

Validation

93%

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

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (863 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

Repository
Azure/azure-sdk-for-net
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.