CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

changewaves

Manage MSBuild Change Waves: create new waves, condition features behind opt-out flags, write tests for wave-gated features, document change waves in ChangeWaves.md, and retire expired waves. Use when adding changes that need an opt-out or rotating out old change waves. Changes that introduce a user-visible behavior change should consider whether to use a changewave.

Quality

85%

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

75%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-structured, lean overview with a clear decision step, sequenced lifecycle steps, concrete file targets, and appropriate deferral of detail to wiki references. The main gaps are the absent inline code example for conditioning a feature, no error-recovery guidance, and slightly repetitive external links.

Suggestions

Inline a minimal C# example of the AreFeaturesEnabled check (or the wave version lookup) so the core conditioning pattern is executable without opening ChangeWaves-Dev.md.

Add brief recovery guidance for the failure points, e.g., what to do when the wave version in Versions.props does not match any wave in ChangeWaves.cs, or when the wiki heading for the wave version already exists with a conflicting format.

Reference each wiki document once and reuse short textual mentions afterward, reducing the repeated ChangeWaves-Dev.md/ChangeWaves.md links.

DimensionReasoningScore

Conciseness

The body is efficient and shares only project-specific knowledge Claude cannot know (the MSBUILDDISABLEFEATURESFROMVERSION mechanism, wave rotation policy, good/bad candidate criteria). It is not a 5 because the 'Decide Whether a Change Wave Is Appropriate' section partially duplicates the boundary already delegated to the assessing-breaking-changes skill, and a few sentences could be tightened.

4 / 5

Actionability

Concrete guidance includes exact file paths (src/Framework/ChangeWaves.cs, eng/Versions.props, documentation/wiki/ChangeWaves.md), a copy-paste markdown entry example, and the named API (AreFeaturesEnabled). It falls short of 5 because the core code pattern for conditioning a feature is entirely deferred to ChangeWaves-Dev.md with no inline example.

4 / 5

Workflow Clarity

A clear sequence (decide, then Steps 1–4) with checkpoints: the opt-out test in Step 3 verifies old behavior is preserved, and a closing checklist validates completion; the destructive retire step is explicitly gated on request. It is not 5 because there is no error-recovery/feedback loop (e.g., what to do if the wave version lookup or wiki heading conflicts).

4 / 5

Progressive Disclosure

Detail is appropriately split into one-level-deep, clearly signaled references (developer-facing ChangeWaves-Dev.md vs public-facing ChangeWaves.md), keeping SKILL.md an overview. It is not 5 because the same wiki links are repeated three and two times respectively and the references live outside the skill bundle, adding minor navigation noise.

4 / 5

Total

16

/

20

Passed

Description

92%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: concrete, lifecycle-complete, third-person, with an explicit 'Use when' trigger clause and a well-scoped niche. The only gap is modest synonym coverage (e.g., the disabling environment variable or 'feature flag' phrasing) that would make triggering marginally more reliable.

DimensionReasoningScore

Specificity

The description lists five concrete actions spanning the full lifecycle — "create new waves, condition features behind opt-out flags, write tests for wave-gated features, document change waves in ChangeWaves.md, and retire expired waves" — which matches the comprehensive-coverage anchor rather than the minor-gaps anchor at 4.

5 / 5

Completeness

It explicitly answers both questions: what (the five manage/test/document/retire actions) and when ("Use when adding changes that need an opt-out or rotating out old change waves"), plus an additional decision cue. Third-person voice is used throughout, matching the 5 anchor's 'concrete trigger phrases' standard.

5 / 5

Trigger Term Quality

Good natural-term coverage ("MSBuild Change Waves", "opt-out", "rotating out old change waves", "user-visible behavior change"), but a few natural terms are missing such as the environment variable name MSBUILDDISABLEFEATURESFROMVERSION and synonyms like "feature flag". It clearly sits above the 3 anchor's 'missing common variations' and below the 5 anchor's exhaustive synonym/extension coverage.

4 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (MSBuild Change Waves) with triggers a user would naturally say, and its scope is sharply bounded by the assessing-breaking-changes skill boundary — minimal conflict risk, matching the 5 anchor.

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: 6 suspicious

Warning

Total

14

/

16

Passed

Repository

dotnet/msbuild

Path

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