CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

codeart2d

Explicit-only last resort. Draws game art from code, with no image model - pixel sprites from a PixelSpec, flat vector props, UI and icons from portable SVG, rigged characters with planted feet, FX with a JS runtime, seam-proven autotiles, playable top-down layouts with collision, stylized parallax and ambient plate motion - palette-exact, with QA and review sheets. Use only when the user explicitly asks for code-drawn art, or when generate2dmedia route_media.py finds no image or video route (no-route, exit 3). Never the default - image generation (generate2dsprite, generate2dmap, video2dsprite) comes first for characters, props, maps and FX. Not for painterly, detailed or likeness art, HD-2D plates or realistic fire, smoke or water. Always disclose the result as code-drawn.

Quality

91%

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

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

An exceptionally actionable, dense skill body: every need maps to a runnable command, validation is baked into the tools and reinforced with feedback loops, and detailed formats live in real one-level-deep reference files. The only deductions are minor: the routing rule is repeated across three sections plus host notes, and the referenced examples/ directory is absent from the bundle.

Suggestions

State the routing rule (code art last resort, image generation first) once — e.g. in 'Do not use when' — and let the 'Art source' paragraph and host notes carry only their unique details.

Ship the examples directory referenced in 'Commands' ('Examples to copy: examples/') or remove the pointer so every referenced path resolves.

Consider folding the per-host notes into a short table (host | art tooling | how to view previews) to cut the repeated framing text.

DimensionReasoningScore

Conciseness

The body is dense and operational with zero concept-teaching (no 'what is SVG' padding; it assumes Claude knows parallax, collision, IoU). However, the routing rule (code art is the last resort; image generation comes first) is restated in 'Do not use when', the 'Art source' paragraph, and all three host notes — minor duplication that could be consolidated. That matches anchor 4 ('Efficient; minor instances of over-explanation that could be trimmed') rather than anchor 5, and it is well above anchor 3 since nothing explains things Claude already knows.

4 / 5

Actionability

Fully executable throughout: a copy-paste Hello sprite ('python "<skill-dir>/scripts/render_pixelspec.py" --spec gem.pixelspec.json --output-dir out/gem-v1 --preview-scale 8 --strict-qc'), a Pipeline table mapping every need to an exact command with flags, pinned install commands ('python -m pip install "resvg-py>=0.5,<0.6"'), and explicit error semantics ('Success prints one JSON line; errors print "error: ..." and exit 1'). This matches anchor 5 ('fully executable; copy-paste ready; specific examples cover the common cases') — no pseudocode or vague direction anywhere.

5 / 5

Workflow Clarity

Clear sequences with explicit validation and feedback loops: a numbered Hello sprite walkthrough, a capability check with remediation ('If encoding.stdout fails, set PYTHONUTF8=1'), QA gates that fail closed ('with --strict-qc a failed check publishes nothing', tilesets 'seam-proven before they are published'), and a warn-fix-retry loop ('render_pixelspec.py warns half_cycle_duplicates ... fix the legs, or pass --allow-duplicate-half-cycle only after the review sheet shows the stride reads'). The Acceptance section adds a reporting checklist. This matches anchor 5 ('explicit validation steps; feedback loops for error recovery'); the anchor-4 profile ('minor validation gaps') does not apply.

5 / 5

Progressive Disclosure

Well-structured overview with one-level-deep, clearly signaled references: all ten linked reference files (pixelspec.md, svg-profile.md, rig-animation.md, fx-language.md, fx-runtime-contract.md, tiles-and-maps.md, layouts-and-parallax.md, style-envelope.md, rasterizers.md, schemas/codeart.schema.json) exist and are substantial, and detail is correctly split out of SKILL.md. However, the body points to an examples directory ('Examples to copy: examples/') that is not present in the bundle, and the pipeline/hand-off detail is excellent but the missing referenced path is a minor navigation gap — anchor 4 ('good structure ... minor organization gaps') rather than anchor 5, since scoring is against the actual bundle.

4 / 5

Total

18

/

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 highly specific, well-bounded description that states concrete capabilities, explicit positive and negative triggers, and precedence relative to sibling image-generation skills. Its only weakness is trigger-term breadth: it lacks a few natural synonyms and file extensions users would say, and leans on internal tooling jargon for the routing clause.

Suggestions

Add natural user synonyms and file extensions to the trigger clause (e.g. 'pixel art', 'vector art', 'sprite sheets', '.svg', '.png') alongside 'code-drawn art'.

Trim internal jargon from the trigger sentence ('generate2dmedia route_media.py finds no image or video route (no-route, exit 3)') to something a user-facing summary keeps readable, e.g. 'or when no image or video route is available'.

DimensionReasoningScore

Specificity

Quotes: "pixel sprites from a PixelSpec, flat vector props, UI and icons from portable SVG, rigged characters with planted feet, FX with a JS runtime, seam-proven autotiles, playable top-down layouts with collision, stylized parallax and ambient plate motion - palette-exact, with QA and review sheets" — a comprehensive list of concrete, distinct capabilities with output qualities. It covers the full capability range (sprites, props, UI, icons, rigs, FX, tiles, maps, parallax, ambient, QA) with no generic filler, so it fits the anchor-5 'multiple specific concrete actions; comprehensive coverage' better than anchor 4 ('minor gaps in coverage').

5 / 5

Completeness

Explicitly answers both questions: what — "Draws game art from code, with no image model ... palette-exact, with QA and review sheets"; when — "Use only when the user explicitly asks for code-drawn art, or when generate2dmedia route_media.py finds no image or video route (no-route, exit 3)". It also adds negative triggers ("Not for painterly, detailed or likeness art, HD-2D plates or realistic fire, smoke or water") and a precedence rule, matching anchor 5 ('clearly and explicitly answers both what AND when with concrete trigger phrases') rather than anchor 4 where the 'when' could be more explicit.

5 / 5

Trigger Term Quality

Good natural keyword coverage: "code-drawn art", "pixel sprites", "UI and icons", "autotiles", "top-down layouts", "parallax", "game art" — phrases a game developer would plausibly say. It falls short of anchor 5 because it misses common synonyms and file extensions users would naturally use (e.g. "pixel art", "vector art", "sprite sheet", ".svg", ".png"), and spends tokens on internal jargon ("route_media.py", "exit 3") that no user would say, keeping it above anchor 3 ('missing common variations or synonyms') but below comprehensive.

4 / 5

Distinctiveness Conflict Risk

It carves a clear niche ("Explicit-only last resort", "Never the default") and names the competing skills it must not displace ("image generation (generate2dsprite, generate2dmap, video2dsprite) comes first"), plus explicit exclusions for painterly/likeness art. Third-person/imperative voice is used consistently with no first/second person. This is a clear niche with distinct triggers and minimal conflict risk — anchor 5; it is far more discriminating than anchor 4's 'minor overlap risk with closely related skills'.

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

relative_links

Relative link issues: 3 suspicious

Warning

referenced_paths_exist

Referenced path issues: 1 deeper-than-1-level

Warning

Total

14

/

16

Passed

Repository

0x0funky/agent-sprite-forge

Path

skills/codeart2d/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.