CtrlK
BlogDocsLog inGet started
Tessl Logo

test-discipline

Update tests when changing APIs — no exceptions

62

Quality

73%

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 ./.copilot/skills/test-discipline/SKILL.md

The canonical home for this skill is test-discipline in FritzAndFriends/BlazorWebFormsComponents

SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is a tight, well-structured policy skill: every pattern is a concrete condition→action rule, examples use real file and array names, and nothing pads the token budget. Its only flaws are minor — slight duplication between Incorrect examples and Anti-Patterns, and no pointer for finding assertion arrays in a codebase.

DimensionReasoningScore

Conciseness

The body is lean and assumes competence — terse condition→action bullets with no explanation of concepts Claude already knows ("If you change a function signature... update the corresponding tests before committing"). It is not a 5 because the "✗ Incorrect" examples and the "Anti-Patterns" section restate the same violations ("committed without updating casting.test.ts" vs "Committing API changes without test updates"), which could be consolidated.

4 / 5

Actionability

Concrete, actionable guidance throughout: named artifacts ("EXPECTED_FEATURES", "distributed-mesh.md", "auth.test.ts"), explicit sequencing ("in the same commit"), and a diagnostic rule ("verify test assertion arrays match filesystem state"). It is not a 5 because it never tells how to locate the assertion arrays (e.g., grep for EXPECTED_) — the one gap between instruction and execution.

4 / 5

Workflow Clarity

This is a simple single-purpose skill (~30 lines) whose single action — sync tests/assertions in the same commit — is unambiguous, so the simple-skill exception applies. It also includes a checkpoint pattern ("CI failures → check assertions first") that orders diagnosis before debugging; nothing is incoherent or missing for the skill's scope.

5 / 5

Progressive Disclosure

The skill is under 50 lines with no need for external references (no references/, scripts/, or assets/ bundle exists, and no body link is broken), and its four clearly-labeled sections (Context, Patterns, Examples, Anti-Patterns) are well organized — the rubric's stated condition for a 5 in this case.

5 / 5

Total

18

/

20

Passed

Description

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

The description is concise, concrete, and in third person, cleanly answering what and when in one clause. Its main weaknesses are narrow scope — it hides the assertion-sync half of the skill — and thin trigger-term coverage that omits the natural vocabulary (CI, assertions, test suite) users would employ.

Suggestions

Broaden the 'what' to cover the skill's full scope, e.g.: "Update tests and assertion arrays (e.g. EXPECTED_FEATURES, EXPECTED_SCENARIOS) in the same commit when APIs or counted content files change."

Add an explicit 'Use when...' clause with natural trigger terms: "Use when modifying function signatures or public interfaces, adding or removing files referenced by test assertions, or debugging CI failures caused by stale tests."

Include common synonyms users would say — test suite, CI, assertions, coverage, failing tests — to improve trigger-term coverage.

DimensionReasoningScore

Specificity

"Update tests" is one concrete action anchored to the domain "when changing APIs", matching the anchor for naming a domain plus 1-2 concrete actions. It is not a 4 because it lists only a single action and omits the skill's other capabilities (assertion-array sync, CI triage).

3 / 5

Completeness

Both what ("Update tests") and when ("when changing APIs") are explicitly stated in the single clause, so the missing-trigger cap at 3 does not apply. It falls short of 5 because the when-clause covers only one trigger and gives no concrete trigger phrases for the assertion-sync and CI-failure cases the body covers.

4 / 5

Trigger Term Quality

"tests" and "changing APIs" are natural terms a user might say, but common variations users actually use — "CI", "test suite", "assertions", "coverage", "failing tests" — are absent. This matches "some relevant keywords but missing common variations or synonyms" rather than the good-coverage anchor.

3 / 5

Distinctiveness Conflict Risk

"Update tests when changing APIs" carves a clear niche (test hygiene tied to interface changes) that is mostly distinct from generic skills. It is not a 5 because a general testing or CI skill could plausibly trigger on the same phrasing.

4 / 5

Total

14

/

20

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.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository
microsoft/waza
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.