CtrlK
BlogDocsLog inGet started
Tessl Logo

gdi-rendering-tests

Instructions for writing unit tests for Graphics, Bitmap, GraphicsPath, and Font rendering APIs in System.Drawing. Covers bitmap-based verification, integer/float overload testing, version-guarded test blocks, and FluentAssertions patterns for path-point validation.

67

Quality

80%

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 ./.github/skills/gdi-rendering-tests/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.

A highly actionable, well-sequenced testing guide with executable code, embedded validation steps, and a closing checklist. Its weaknesses are repeated identical code examples that inflate token cost and the absence of any file-based progressive disclosure for the longer reference material.

Suggestions

Show the Graphics_DrawRoundedRectangle_Integer example once and reference it from sections 4 and 6, displaying only the variant differences (Fill vs Draw, Float vs Integer) to cut redundant tokens.

Move the full VerifyBitmapNotEmpty/VerifyBitmapEmpty helper implementations into a references/ file and keep SKILL.md as an overview that points to them, improving progressive disclosure and reducing inline length.

DimensionReasoningScore

Conciseness

The body is mostly lean and directive with no explanations of basic concepts Claude already knows, but the identical Graphics_DrawRoundedRectangle_Integer code block is repeated verbatim in sections 2, 4, and 6, which is tightening opportunity. It is not a 3 because not every token earns its place given that duplication; it is not a 1 because the prose itself is efficient rather than padded.

2 / 3

Actionability

It provides fully executable, copy-paste-ready code — the complete VerifyBitmapNotEmpty/VerifyBitmapEmpty helpers, concrete test methods with using declarations, and the path-point verification example — plus a table of exact test file locations. The one elided snippet ('… remaining expected points …') is explicitly justified by the following 'how to obtain expected path points' procedure, so it is not a 2.

3 / 3

Workflow Clarity

The bitmap-verification pattern is laid out as a clear 4-step sequence whose final step is an explicit validation ('Verify the bitmap is not empty'), and section 9 provides a checklist for the whole process. This matches the 'clear sequence with explicit validation steps … checklists for complex processes' anchor; the missing validate→fix→retry loop does not cap it at 2 because test writing is not a destructive or batch operation.

3 / 3

Progressive Disclosure

Content is organized into nine clearly labeled sections, but everything is inline in a ~330-line SKILL.md with no bundle-file references, and the full helper implementations and repeated examples could be split out. It is not a 3 because no material is separated into one-level-deep references; it is not a 1 because the sections are well structured rather than a monolithic wall with nested references.

2 / 3

Total

10

/

12

Passed

Description

82%

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 specific, well-scoped description that names concrete testing activities and natural domain terms. Its main weakness is the absence of an explicit 'Use when...' trigger clause, which leaves the invocation condition implied rather than stated.

Suggestions

Add an explicit 'Use when...' trigger clause (e.g., 'Use when writing or updating unit tests for System.Drawing rendering APIs') to clearly signal when Claude should invoke this skill and raise completeness.

Include natural trigger phrasings users would say (e.g., 'test a Graphics/Bitmap method', 'add rendering tests for a drawing API') to strengthen discoverability alongside the type names already present.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'bitmap-based verification, integer/float overload testing, version-guarded test blocks, and FluentAssertions patterns for path-point validation' — alongside the named API types, matching the 'lists multiple specific concrete actions' anchor. It is not the level below because it goes beyond naming a domain plus a couple of actions to enumerate four distinct testing activities.

3 / 3

Completeness

It clearly answers 'what' (instructions for writing unit tests for these rendering APIs and what they cover) but provides no explicit 'Use when...' trigger, so the 'when' is only implied. The judging guideline caps completeness at 2 when an explicit trigger clause is missing, so it cannot reach 3.

2 / 3

Trigger Term Quality

It includes natural terms a user working in this domain would actually say — 'unit tests', 'Graphics', 'Bitmap', 'GraphicsPath', 'Font', 'rendering APIs', and 'System.Drawing' — giving good coverage rather than abstract jargon. It is not a 2 because it names the concrete type names users reference, not just a single generic phrase like 'Works with PDF files'.

3 / 3

Distinctiveness Conflict Risk

The scope is tightly bounded to System.Drawing rendering API tests (Graphics, Bitmap, GraphicsPath, Font) with a verification/testing focus, forming a clear niche unlikely to trigger a generic testing skill. It is not a 2 because the named types and 'rendering APIs' specificity prevent overlap with broader document- or control-testing skills.

3 / 3

Total

11

/

12

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.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
dotnet/winforms
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.