CtrlK
BlogDocsLog inGet started
Tessl Logo

using-and-extending-gdi-plus

Instructions for using GDI, GDI+ for drawing primitives, shapes and processing/rendering bitmaps and rendering Fonts. Also, tenets for adding new APIs to System.Drawing for modernization and improving drawing, imaging, and font features.

57

Quality

72%

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/using-and-extending-gdi-plus/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%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 dense, highly actionable rulebook: nearly every rule ships with concrete, executable C#, and the closing checklist ties the API-addition workflow together. Weaknesses are structural and repetitive rather than substantive — duplicated code blocks inflate length, and the whole skill is monolithic when the API-pattern and complete-example material would sit better in reference files.

Suggestions

Move §5's full API-addition patterns (RoundedRectangle overloads, docs, placement) and §6's complete examples into a references/ file, keeping SKILL.md to the rules and one compact example per rule.

Drop the duplicated DrawRoundedRectangle float overload between §5.1 and §5.2 — show the guard once and reference it, or merge the two code blocks.

Add an explicit validate-fix-retry step to the API-addition workflow (e.g. build, then run the gdi-rendering-tests suite for both overloads before submitting).

DimensionReasoningScore

Conciseness

The rule style is imperative and free of concept explanations Claude already knows, but it could be tightened: the full DrawRoundedRectangle float overload is repeated verbatim in §5.1 and §5.2, and §6's "Complete Examples" recombine patterns already shown in §1–§4. That is more than the "minor instances" of the anchor-4 example.

3 / 5

Actionability

Mostly executable, copy-paste-ready C# covering cached scopes, save/restore state, quality-settings restore, version guards, and overload pairs. Kept below anchor 5 because the AddRoundedRectangle example elides "… arc calls for each corner …", leaving one incomplete snippet.

4 / 5

Workflow Clarity

Numbered sections build coherently from object caching through API-addition patterns, and the final checklist (including "Tests written for both overloads") is a genuine checkpoint. Below anchor 5 because there is no validate/fix/retry feedback loop (e.g. a build-and-test cycle) for the API-addition workflow.

4 / 5

Progressive Disclosure

Section headers are clear and adjacent concerns are correctly deferred to sibling skills, but the skill is a single ~410-line file with no bundle references; the detailed API-addition patterns (§5) and complete examples (§6) are exactly the material that belongs in one-level-deep reference files.

3 / 5

Total

14

/

20

Passed

Description

66%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 communicates a clear, fairly specific domain (GDI+/System.Drawing drawing, imaging, fonts, and API modernization) with several concrete capabilities, but it entirely lacks a "when to use this" trigger clause and never mentions WinForms, its actual runtime context. Wording is also slightly muddled ("processing/rendering bitmaps and rendering Fonts"). Adding an explicit use-when clause and the WinForms keyword would lift it substantially.

Suggestions

Append an explicit trigger clause, e.g. "Use when working in the WinForms/System.Drawing runtime, when drawing or rendering with GDI+, or when adding new drawing APIs to System.Drawing."

Mention "WinForms" (and "graphics" as a synonym) so users searching with those natural terms find the skill.

Tighten the run-on phrasing ("processing/rendering bitmaps and rendering Fonts") into a parallel list of capabilities, and drop the vague "modernization and improving ... features" tail.

DimensionReasoningScore

Specificity

Lists several concrete actions — "drawing primitives, shapes", "processing/rendering bitmaps", "rendering Fonts", "adding new APIs to System.Drawing" — with only minor gaps. Below anchor 5 because the trailing "modernization and improving drawing, imaging, and font features" is generic padding rather than a concrete capability.

4 / 5

Completeness

The "what" is clear (using GDI+ for drawing/imaging/fonts and adding new APIs to System.Drawing), but there is no "Use when..." clause or any equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines.

3 / 5

Trigger Term Quality

Good keyword coverage with natural terms users would say: GDI, GDI+, drawing, bitmaps, fonts, System.Drawing. Not anchor 5 because common variations are missing — notably "WinForms" (the runtime this skill targets) and "graphics".

4 / 5

Distinctiveness Conflict Risk

Clear niche — GDI+/System.Drawing drawing and API modernization — with distinct trigger terms. Minor overlap risk with closely related sibling skills (e.g. control-level API work or rendering tests), which the description does not itself disambiguate.

4 / 5

Total

15

/

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